NumPy の信頼区間
平均の信頼区間は、データ分析の分野のデータで広く利用されている統計の重要な部分です。Python は、データ分析の分野の専門家が使用する最も人気のあるプログラミング言語の 1つであり、配列に信頼区間を実装できます。
このチュートリアルでは、信頼区間について説明し、Python でそれを実装するために利用できるさまざまなアプローチを示します。
信頼区間
平均の信頼区間は、母集団を正確に反映できる値を計算することが予想される値の範囲として定義できます。
信頼区間の計算式は次のとおりです。
Confidence Interval = x̄ +/- t*(s/√n)
この式のパラメータを以下に説明します。
x̄
-サンプルデータの平均。t
-信頼水準に対応する t 値。s
-サンプルデータの標準偏差。n
-サンプルデータのサイズ。
次に、Python で信頼区間を計算するために利用できるさまざまなアプローチに移りましょう。2つの主要なメソッドを利用できます。どちらも Python の SciPy
ライブラリから機能を取得する必要があります。
Python の SciPy
ライブラリは Scientific Python
の略語であり、技術的および科学的コンピューティングに役立ついくつかの機能を提供するために使用されます。ライブラリの SciPy.stats
サブモジュールは、Python で統計を処理するさまざまな関数を提供します。
Python で信頼区間を計算するために T 分布を使用する
SciPy.stats
ライブラリは、t 分布アプローチを使用して信頼区間を計算するために利用できる t.interval()
関数を提供します。
t 分布アプローチは、より小さなデータセットを処理する場合、通常はデータの要素が 30 未満(n<30
)の場合に利用できます。
t.interval()
関数の構文とパラメーターの説明を以下に説明します。
scipy.stats.t.interval(alpha, length, loc, scale)
alpha
-選択した範囲から確率変数を取得する確率を定義します。length
-指定されたデータセットの長さを示します。loc
-位置パラメータ値を示します。scale
-スケールパラメータ値を示します。
次のコードは、1 暦年に 20 人のサッカー選手が獲得した目標を取り込んで、t 分布アプローチを使用して、指定されたデータの 90%信頼区間を計算します。
import numpy as np
import scipy.stats as st
# data of goals scored by 20 footballers in a calendar year
fb_data = [10, 11, 10, 14, 16, 24, 10, 6, 8, 10, 11, 27, 28, 21, 13, 10, 6, 7, 8, 10]
# create 90% confidence interval
print(
st.t.interval(
alpha=0.90, df=len(fb_data) - 1, loc=np.mean(fb_data), scale=st.sem(fb_data)
)
)
上記のコードは次の出力を提供します。
(10.395704943723088, 15.60429505627691)
Python で信頼区間を計算するために正規分布を使用する
同じ SciPy.stats
ライブラリは、正規分布アプローチを使用して信頼区間を計算するために利用できる norm.interval()
関数も提供します。
このアプローチは、データセットが比較的大きい場合に一般的に使用されます。つまり、要素の数が 30 を超えています(n>30
)。
norm.interval()
関数の構文とパラメーターの説明を以下に説明します。
scipy.stats.norm.interval(alpha, loc, scale)
alpha
-選択した範囲から確率変数を取得する確率を定義します。loc
-位置パラメータ値を示します。scale
-スケールパラメータ値を示します。
次のコードは、80 要素のデータセットの例を取り、正規分布アプローチを使用して、そのデータセットの 90%信頼区間を計算します。
import numpy as np
import scipy.stats as st
fb_data = np.random.randint(15, 20, 80)
# create 90% confidence interval
print(st.norm.interval(alpha=0.90, loc=np.mean(fb_data), scale=st.sem(fb_data)))
上記のコードは次の出力を提供します。
(16.763325839308074, 17.286674160691923)
Vaibhhav is an IT professional who has a strong-hold in Python programming and various projects under his belt. He has an eagerness to discover new things and is a quick learner.
LinkedIn