Python

Python/Scipyで母比率の信頼区間の計算をしよう(binom)

今回は母比率の信頼区間推定をPythonでやってみたいと思います。

これまでに母平均の信頼区間推定の記事を書きましたが、母比率の方もやってみます。

 

母比率の信頼区間の復習

まずは母比率の信頼区間について復習しておきましょう。

 

そもそも信頼区間推定とは

「母比率の信頼区間の計算」は「ある母集団があり、その一部の標本から比率(割合)の範囲を推定する」というものです。

なのでこの区間推定では、「母集団からの標本」を対象にするということを理解しておく必要があります。

この記事を読めば、Pythonを使って信頼区間推定の計算はできるようになりますが、そもそもその問題背景・問題設定を理解していないと意味がありませんので注意しましょう。

あと、信頼区間では95%信頼区間などをよく使いますが、この95%信頼区間というのは平均が95%の確率でその区間に入るというわけではありません。

ベイズ信用区間などはこの考えでいいのですが、95%信頼区間といった場合には、
「母集団から標本を取り、その平均から95%信頼区間を計算する作業を100回行ったときに、95回はその区間の中に母平均が含まれるということ」です。
(統計WEB参照→https://bellcurve.jp/statistics/course/8891.html)

母平均は一つですが、標本によってはデータが変わり推定区間が変わるので、このような解釈になると思えばよいです。

 

母比率の信頼区間推定

まずは問題設定ですが、比率の信頼区間ということでよくあるのは確率の信頼区間を計算するものです。

ある現象が起きる確率pがあるとして、それを何回も行う状況を考えます。

この場合、確率分布は二項分布に従うわけですが、試行回数が大きい場合には二項分布は中心極限定理で標準正規分布に従うことがわかっていますね。

なので大前提として、母比率の信頼区間推定を行うときはサンプル数が大きいという条件から、二項分布を中心極限定理で正規分布に従うという仮定をおいて実施します。

そういう処理をしないとけっこう難しくなってしまうのです。

サンプル数が5とか10とかで比率を計算しようとすると厳しいです。

なので、十分サンプル数があるという状況で行うことにしましょう。

もしサンプル数が少ない状況でやらざるを得ない場合は、Clopper&Pearsonの信頼区間などを考えますが、そちらの詳細は割愛します。

では、信頼区間を二項分布を用いて考えましょう。

標準正規分布で考える場合は、下のようになりましたね。

[μ − z * σ/√n, μ + z * σ/√n]

ここで、比率なので二項分布を用いるわけですが、サンプル数が多ければ二項分布は正規分布に従うという仮定を思い出し、二項分布の場合はσ^2=p(1-p)ですから

[μ − z *√p(1-p)/n, μ + z *√p(1-p)/n]

となります。

zの値は信頼区間の%や両側・片側で値は変わってきますので、状況によって選びましょう。

最後に、母集団から標本抽出をして比率の計算ができますので、これを使って母集団の比率の信頼区間が計算できるというわけですね。

 

Scipyによる母比率の信頼区間推定

では、実際にScipyを使って母比率の信頼区間推定を行っていきましょう。

 

例題

例題は以下です。

「アンケートであるWEBサービスAを知っているか知らないかをランダムに1000人に質問した。すると、185人が知っていると答えた。このWEBサービスAの認知率の95%信頼区間を求めよ。」

 

Scipyコード

コードは以下のようになります。

 


 

Scipyで信頼区間を計算する場合は、scipy.statsからbinomをimportします。

binomはbinomial(二項)の略ですね。

そしてサンプル数nはn=1000、確率pは1000人中185人が知っていたわけですから、p=185/1000です。

alpha引数は95%信頼区間なので0.95とします。

最終的な計算はbinom.intervalで計算するのですが、引数は確率で返されるわけではなく回数が返されるので、確率値の推定区間にするにはnで割る必要があります。

このように、binomのintervalメソッドで簡単に計算できました。

もちろんこの程度でしたら手計算でも簡単ですが、pythonコードでもできるといいですよね!

おすすめ記事

1

こんにちわ、サトシです。33歳です。 今回は、データサイエンティストの3年間に3社で働いた僕が、データサイエンティストとしての転職活動についてまとめて書きたいと思います。 これまでSE→博士研究員→ポ ...

2

お疲れさまです! 久しぶりの更新になってしまいましたが、僕が未経験からデータサイエンティストになるまでの転職活動の全記録を書き残しておきたいと思います。 僕は博士号を取得後に研究員として仕事をしていま ...

3

こんにちわ、サトシです。 今回は、企業でデータサイエンティストとして働いていた僕が、フリーランスとしてどのような手順で独立していったかについて書いていきたいと思います。 僕はSIer SE→博士過程→ ...

-Python

Copyright© さとぶろぐ , 2024 All Rights Reserved Powered by AFFINGER5.