事象を条件とする条件付き期待値の計算
条件付き期待値は、特定の事象が起きたと分かった後の確率変数の平均値を表します。この計算機では、有限個の候補値、各結果に対応する同時確率、その結果が条件とする事象に含まれるかを示す印を入力します。事象内の確率質量を合計し、選択された結果を再正規化して、得られた期待値を返します。途中で求めた確率と加重和も表示するため、計算内容を確認したり、より大きな分析に組み込んだりできます。
無料で実行
処理はブラウザ内で完結します。ファイルは送信されません。無料でご利用いただけます。
同時結果と条件事象を表形式で入力します
離散モデルで起こり得る同時結果ごとに、1 行ずつ入力してください。value フィールドには確率変数 X が取る値を、probability にはその完全な結果に割り当てられた確率質量を指定します。条件としたい事象 A に結果が含まれる場合に限り、in_event を true に設定してください。基礎となる結果が異なれば、事象への所属や確率が違っていても X の値が同じになることがあるため、値の重複は許容されます。すべての行を合わせて完全な確率分布を表す必要があり、各確率は負でなく、合計は 1 でなければなりません。この明示的な行形式では、各確率が同じ行の結果に対応するため、周辺確率、条件付き確率、同時確率の混同を防げます。モデルの記録に役立つ場合は確率ゼロの結果も入力できますが、計算結果には影響しません。選択した行だけを事前に正規化せず、元の同時確率を入力してください。計算機が P(A) を求め、正しく条件付けを行います。
条件付き期待値の計算方法を確認します
計算機は最初に、in_event が付いたすべての行の確率を合計し、条件事象の確率 P(A) を求めます。それとは別に、選択された各値へ元の同時確率を掛け、それらの積を合計します。条件付き期待値は、この加重和を P(A) で割った値です。つまり E[X given A] は、x と P(X equals x and A) の積の合計を P(A) で割ったものです。事象の確率で割ることで、選択された確率質量が再正規化され、事象が判明した後の完全な分布として扱えるようになります。応答には conditional_expectation、conditioning_probability、weighted_event_sum のほか、選択行数と全行数が含まれます。これらの中間値は、結果の監査やモデル化の誤りの発見に役立ちます。P(A) がゼロなら除算は定義されないため、Infinity、NaN、誤解を招く数値ではなく、無効入力エラーを返します。計算はすべて決定的で、入力された有限数をそのまま使用します。
結果を利用する前に前提を点検します
条件付き平均の意味は、入力した事象と分布の妥当性に左右されます。行同士が相互排他的で、全体としてすべての可能性を網羅していることをご確認ください。行が重複すれば確率を二重に数え、行が不足すれば分布が不完全になります。合計が 1 かどうかの検証で多くの漏れは見つかりますが、意味の異なる 2 つの結果が重複しているかまでは判定できません。また、in_event が実際に観測した情報を表しているかもご確認ください。関連していても別の事象で条件付けすると、もっともらしく見えても別の問いへの答えになる場合があります。非常に大きい値や小さい値を扱う際は、weighted_event_sum と conditioning_probability を簡単な数値確認にお使いください。まれな事象では、わずかな確率質量が条件付き期待値を大きく左右することがあります。これは数学的に正しい一方、入力確率には追加確認が必要かもしれません。自動処理では、同じ決定的計算を 1 リクエスト $0.002 の API で利用でき、リスクモデル、品質管理、教育、意思決定分析で再現可能な確認を行えます。
活用例
条件発生後の期待損失
保険条件、債務不履行条件、運用上のしきい値が発生したシナリオについて、平均損失を計算します。
検査後の品質結果
品目が指定の検査に合格または不合格だったという条件の下で、期待される測定値を求めます。
離散条件付けの学習
事象確率、選択された加重和、正規化後の条件付き平均を、分かりやすい 1 つの表で学習者に示します。
よくある質問
どのような式を使用しますか?
A に属すると指定された行について、E[X | A] = x と P(X = x and A) の積の合計を P(A) で割る式を使用します。
条件事象の確率がゼロの場合はどうなりますか?
この有限計算では確率ゼロの事象を条件とする期待値が定義されないため、リクエストは無効入力エラーを返します。
確率の合計は 1 でなければなりませんか?
はい。入力行は完全な同時分布を表すため、各確率の合計は小さな浮動小数点許容誤差の範囲内で 1 になる必要があります。
複数の行に同じ値を指定できますか?
はい。各行は同時結果を表すため、確率や事象への所属が異なる複数の結果で、確率変数の値が同じになる場合があります。
API リクエストの料金はいくらですか?
API リクエスト 1 回の料金は $0.002 です。計算は決定的で、モデルや外部サービスを呼び出しません。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/stat/conditional-expectation \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"outcomes":[{"value":10,"probability":0.2,"in_event":true},{"value":20,"probability":0.3,"in_event":true},{"value":40,"probability":0.5,"in_event":false}]}'const res = await fetch("https://api.kit.forhosting.com/stat/conditional-expectation", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"outcomes": [
{
"value": 10,
"probability": 0.2,
"in_event": true
},
{
"value": 20,
"probability": 0.3,
"in_event": true
},
{
"value": 40,
"probability": 0.5,
"in_event": false
}
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/stat/conditional-expectation",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"outcomes": [
{
"value": 10,
"probability": 0.2,
"in_event": true
},
{
"value": 20,
"probability": 0.3,
"in_event": true
},
{
"value": 40,
"probability": 0.5,
"in_event": false
}
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/stat/conditional-expectation", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"outcomes":[{"value":10,"probability":0.2,"in_event":true},{"value":20,"probability":0.3,"in_event":true},{"value":40,"probability":0.5,"in_event":false}]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"outcomes":[{"value":10,"probability":0.2,"in_event":true},{"value":20,"probability":0.3,"in_event":true},{"value":40,"probability":0.5,"in_event":false}]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/stat/conditional-expectation", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"outcomes": [
{
"value": 10,
"probability": 0.2,
"in_event": true
},
{
"value": 20,
"probability": 0.3,
"in_event": true
},
{
"value": 40,
"probability": 0.5,
"in_event": false
}
]
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "stat.conditional_expectation",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |