概要
先日は、Pythonで「区間推定(正規母集団で母分散未知の場合)」を行いました。コード的には、「区間推定(正規母集団で母分散既知の場合)」と同じくstats.norm.interval 関数を用い母平均の信頼区間を求めるだけです。その引数として「信頼度:alpha」「標本平均:loc」「標準誤差:scale」「自由度:df」を必要としました。95%信頼区間を求める際、基本は標準化得点$Z$について、
$P(−1.96≤Z≤1.96)=0.95$
が成り立つたちます。今回は母比率の信頼区間を求めるために上手い具合に式を変形して算出します。
前回の記事
統計的推定と検定をPythonで解く「区間推定(正規母集団で母分散未知の場合)」
今回は、「区間推定(一般母集団で大標本の場合)」について解いていこうと思います。今回も「とけたろうさんのチートシート」を使わせて頂きます。今回の問題はアンケート調査になっています。
問題
【問題】20歳〜29歳までの男性会社員300人にアンケートをとったところ,毎朝入浴する人は45人いた。この調査結果は,母集団を20歳〜29歳までの男性会社員全体とし,標本サイズ300の単純無作為抽出に基づくとみなす。20歳〜29歳までの男性会社員全体における毎朝入浴する人の割合(母比率)pの信頼度90%の信頼区間を求めなさい。
解答
今回の記事から、Pythonでの解法を示してから理論的な解法を見ていきます。答えを出すだけならPythonで十分だと思いますが、求めた答えを使う側としては、ちゃんと分かっていて答えを出して欲しいですね。つまり、自分で出した答えが合ってそうかどうか何となくでも分かって報告なり調査なり出来るようにしたいって事です。
話が反れましたね。
どういう問題か(問題の分類)
今回は、母比率の区間推定です。確率分布としては正規母集団を想定していると思いますが、二項分布のサンプル数が大きいので正規分部を近似できるという事だと思います。
どのように解けるか(Python)
import numpy as np
from scipy import stats
X=45
n=300
p=X/n
#区間推定
low, high = stats.binom.interval(alpha=0.90, n=n, p=p)
print(f"母比率pの信頼区間は{low/n:.3f}≦p≦{high/n:.3f}")
母比率$p$の信頼度90%の信頼区間は
$$0.117≦p≦0.183$$
になります。これは「とけたろうさん」の答えとは若干ずれますが、まずは理解優先という事で先に進めます。
次に、このコードの解説をしていきます。今回は二項分布の正規分布近似のため、stats.binom.interval 関数を使いました。これを使うためには、「信頼度:alpha」「標本の大きさ:n」「標本比率:p」が必要になります。
標本比率$p$は、$$\frac{毎朝入浴する人:45}{標本の大きさ:300}=0.15$$
となります。
どのように解けるか(解法)
信頼区間90%を求めるので、
$$P(−1.64≤Z≤1.64)=0.90$$
となります。この時、Z(標準化得点?)は
$$Z=\frac{\frac{X}{n}-p}{\sqrt{\frac{p(1-p)}{n}}}$$
です。以上より、$X$と$n$を用いて、母比率の90%信頼区間は次のように求めることが出来ます。
以上より、信頼区間90%の母比率は
$$
0.116≦p≦0.184
$$
となります。先程の答えと比べると小数点第3位で微妙に違いますが、今回は言及しません。
感想
- この記事を作ってみて
今回は、統計的推定の簡単な問題その3です。前回までは「母平均の推定」でしたが、今回は「母比率の推定」でした。違いは「標準化得点Z」の求め方くらいだったと思います。母平均と母比率の推定を通して、信頼区間の推定は基本的には
$$
P(-z_{\alpha/2} \leq Z \le z_{\alpha/2})=1-\alpha
$$
で求められると考えています。この時$Z$はその時、想定する確率分布で変わると思っています。
私の表現の仕方に癖があり、受け入れられない方も多くいらっしゃると思いますが、そこは生暖かい目で見守って頂ければと思います。また、間違いの指摘やご意見などありましたら遠慮なく仰って下さい。
参考
- とけたろう(2020.4)、二項分布と母比率の区間推定【中学の数学からはじめる統計検定2級講座第10回】
- かめ@米国データサイエンティスト(2020.4)、比率の区間推定を超わかりやすく解説【統計学入門24】