Python で信頼区間を計算する方法
平均値の信頼区間は、一定の信頼レベルで母集団平均が含まれる可能性が高い値の範囲です。
次のように計算されます。
信頼区間 = x +/- t*(s/√n)
金:
- x :サンプル平均
- t:信頼水準に対応する t 値
- s:サンプルの標準偏差
- n:サンプルサイズ
このチュートリアルでは、Python で信頼区間を計算する方法を説明します。
t 分布を使用した信頼区間
小規模なサンプル (n < 30) を扱う場合は、scipy.stats ライブラリのt.interval() 関数を使用して母集団平均の信頼区間を計算できます。
次の例は、15 個の植物のサンプルを使用して、特定の植物種の真の平均個体群高さ (インチ単位) の信頼区間を計算する方法を示しています。
import numpy as np import scipy.stats as st #define sample data data = [12, 12, 13, 13, 15, 16, 17, 22, 23, 25, 26, 27, 28, 28, 29] #create 95% confidence interval for population mean weight st.t.interval(alpha=0.95, df=len(data)-1, loc=np.mean(data), scale=st.sem(data)) (16.758, 24.042)
真の平均母集団サイズの 95% 信頼区間は(16.758, 24.042)です。
信頼水準が高くなるほど、信頼区間が広くなることがわかります。たとえば、まったく同じデータの 99% CI を計算する方法は次のとおりです。
#create 99% confidence interval for same sample st.t.interval(alpha= 0.99 , df=len(data)-1, loc=np.mean(data), scale=st.sem(data)) (15.348, 25.455)
真の平均母集団サイズの 99% 信頼区間は(15.348, 25.455)です。この区間は前の 95% 信頼区間よりも広いことに注意してください。
正規分布を使用した信頼区間
より大きなサンプル (n≥30) を扱う場合は、(中心極限定理のおかげで) サンプル平均のサンプル分布が正規分布していると仮定でき、代わりにノルム関数を使用できます。 scipy .statsライブラリのinterval() 。
次の例は、50 個の植物のサンプルを使用して、特定の植物種の真の平均個体群高さ (インチ単位) の信頼区間を計算する方法を示しています。
import numpy as np import scipy.stats as st #define sample data np.random.seed(0) data = np.random.randint(10, 30, 50) #create 95% confidence interval for population mean weight st.norm.interval(alpha=0.95, loc=np.mean(data), scale=st.sem(data)) (17.40, 21.08)
真の平均母集団サイズの 95% 信頼区間は(17.40, 21.08)です。
t 分布と同様に、信頼水準が高いほど信頼区間も広くなります。たとえば、まったく同じデータの 99% CI を計算する方法は次のとおりです。
#create 99% confidence interval for same sample st.norm.interval(alpha= 0.99 , loc=np.mean(data), scale=st.sem(data)) (16.82, 21.66)
真の平均母集団サイズの 95% 信頼区間は(17.82, 21.66)です。
信頼区間の解釈方法
植物種の真の平均高さの 95% 信頼区間が次のようになると仮定します。
95% 信頼区間 = (16.758, 24.042)
この信頼区間を解釈する方法は次のとおりです。
[16.758, 24.042] の信頼区間に集団の真の平均草丈が含まれる確率は 95% です。
同じことを別の言い方で言えば、母集団の真の平均値が 95% 信頼区間の外にある可能性は 5% しかないということです。つまり、実際の平均植物の高さが 16.758 インチ未満になるか、24.042 インチを超える可能性は 5% しかありません。