Python で期待値を計算する方法 (例付き)
確率分布は、確率変数が特定の値を取る確率を示します。
たとえば、次の確率分布は、特定のサッカー チームが特定の試合で特定の数のゴールを獲得する確率を示します。
確率分布の期待値を求めるには、次の式を使用できます。
μ = Σx * P(x)
金:
- x: データ値
- P(x): 値の確率
たとえば、サッカー チームの予想ゴール数は次のように計算されます。
μ = 0*0.18 + 1*0.34 + 2*0.35 + 3*0.11 + 4*0.02 = 1.45ゴール。
Python で確率分布の期待値を計算するには、単純な関数を定義できます。
import numpy as np def expected_value(values, weights): values = np. asarray (values) weights = np. asarray (weights) return (values * weights). sum ()/weights. sum ()
次の例は、この関数を実際に使用する方法を示しています。
例: Python での期待値の計算
次のコードは、前に定義したExpected_value()関数を使用して確率分布の期待値を計算する方法を示しています。
#define values
values = [0, 1, 2, 3, 4]
#define probabilities
probs = [.18, .34, .35, .11, .02]
#calculate expected value
expected_value(values, probs)
1.450000
期待値は1.45です。これは、以前に手動で計算した値と一致します。
値配列と確率配列の長さが等しくない場合、この関数はエラーを返すことに注意してください。
例えば:
#define values
values = [0, 1, 2, 3, 4]
#define probabilities
probs = [.18, .34, .35, .11, .02, .05, .11]
#attempt to calculate expected value
expected_value(values, probs)
ValueError : operands could not be broadcast together with shapes (5,) (7,)
最初の配列の長さが5 であるのに対し、2 番目の配列の長さは7であるため、エラーが発生します。
この期待値関数が機能するには、両方の配列の長さが等しい必要があります。
追加リソース
次のチュートリアルでは、Python で他のメトリクスを計算する方法を説明します。
Python でトリミング平均を計算する方法
Python で幾何平均を計算する方法
Pythonで平均値の標準誤差を計算する方法