目的
前回の続きです。
区間推定
区間推定の問題をPythonを使って解いていきます。
実際の計算手順を意識します。
区間推定を直接返すライブラリは使いません。(未学習です。)
インポートするもの
import numpy as np import scipy.stats as stats
母分散が分かっている場合の、母平均の区間推定
母集団は正規分布に従うとする
Zは標準正規分布
前提条件
#標本の個数 n = 9 #標本分散 x_bar = 10 #母分散 sigma_m = 16 #有意水準 alpha_r = 0.05 #信頼係数 level_s = 1 - alpha_r
信頼区間の推定
$$ \bar{ X } -Z_{(\frac{\alpha}{2})} \sqrt{ \frac{ \sigma^2 }{ n }} \leq \mu \leq \bar{ X } + Z_{(\frac{\alpha}{2})}\sqrt{ \frac{ \sigma^2 }{ n }} $$
z = abs(stats.norm.ppf(alpha_r/2)) #標準正規分布 z_value = np.sqrt(sigma_m)/np.sqrt(sigma_m) #下限 theta_1 = x_bar - z_value *z #上限 theta_2 = x_bar + z_value *z print("信頼区間\n{0}<μ<{1}".format(theta_1 ,theta_2))
答え
母分散が分かってない場合の、母平均の区間推定
母集団は正規分布に従うとする
Tは、自由度(n-1)のt分布に従う
前提条件
x = [9.8, 10.3, 11.9, 8.7, 8.5, 10.2, 10.9, 8.2, 9.4, 10.5] n = len(x) #標本平均は同じ x_bar = np.mean(x) #標本分散は、n-1で割るので、母分散と計算が異なる s2_x = np.var(x, ddof=1) #標本標準偏差も同様です s_x = np.std(x, ddof=1) #有意水準 alpha_r = 0.05
信頼区間の推定
$$\bar{ X } -t_{(\frac{\alpha}{2}, n-1)} \sqrt{ \frac{ S^2 }{ n }} \leq \mu \leq \bar{ X } + t_{(\frac{\alpha}{2}, n-1))}\sqrt{ \frac{ S^2 }{ n }} $$
t = abs(stats.t.ppf(alpha_r/2, df = n-1)) #下限 theta_1 = x_bar - t*(s_x/np.sqrt(n)) #上限 theta_2 = x_bar + t*(s_x/np.sqrt(n)) print("信頼区間\n{0} < μ < {1}".format(theta_1,theta_2))
答え
母分散の区間推定
母集団は正規分布に従うとする
χは、自由度m=(n-1)のカイ2乗分布に従う
前提条件
x = [9.8, 10.3, 11.9, 8.7, 8.5, 10.2, 10.9, 8.2, 9.4, 10.5] n = len(x) #標本平均は同じ x_bar = np.mean(x) #標本分散は、n-1で割るので、母分散と計算が異なる s2_x = np.var(x, ddof=1) #標本標準偏差も同様です s_x = np.std(x, ddof=1) #有意水準 alpha_r = 0.05
信頼区間の推定
$$ \frac{(n-1) S^2 }{\chi^2_{(1-\frac{\alpha}{2}, m)}} \leq \sigma^2 \leq \frac{(n-1) S^2 }{\chi^2_{(\frac{\alpha}{2}, m)}} $$
chi_2_1 = stats.chi2.ppf(alpha_r/2, df = n-1) chi_2_2 = stats.chi2.ppf(1-(alpha_r/2), df = n-1) #下限 theta_1 = ((n-1) * s2_x )/chi_2_2 #上限 theta_2 = ((n-1) * s2_x ) / chi_2_1 print("信頼区間\n{0} < σ2 < {1}".format(theta_1,theta_2))