R言語

【R言語】母比率の検定・母比率の差の検定

  1. HOME >
  2. R言語 >

【R言語】母比率の検定・母比率の差の検定

スポンサーリンク

R言語で母比率の検定を実行する方法を紹介します。

R言語ではt検定などと同様に、簡単に比率に関する検定を実行することが可能です。

今回は、母比率の検定に関する関数の説明やその実行例をまとめました。

この記事で紹介するプログラミングコードは以下のzipファイル中のRスクリプトにも保存しています。

また、母比率の検定の検定の手順を以下の記事で解説しています。

【統計学】母比率の検定・母比率の差の検定

通常の1標本の母比率の検定や2標本の母比率の差の検定を含む様々な母比率の検定を解説する。 ここでは、Z検定を用いた大標本の下で母比率の検定について紹介し、検定統計量や棄却域の導出を行う。 大標本におけ ...

続きを見る

Rでデータ解析を始めるならコレ
¥3,300 (2022/06/01 17:20時点 | Amazon調べ)
\楽天ポイント5倍セール!/
楽天市場
\ポイント5%還元!/
Yahooショッピング
RStudioで解析したい方へ
¥3,278 (2022/06/02 22:52時点 | Amazon調べ)
\楽天ポイント5倍セール!/
楽天市場
\ポイント5%還元!/
Yahooショッピング

母比率の検定

母比率の検定及び母比率の差の検定の概要とR言語の関数を以下にまとめました。

概要

母比率の検定と母比率の差の検定の検定統計量と棄却域は次のようになります。

母比率の検定

\(x_1, \ldots, x_n\)は\(Bernoulli(p)\)からの独立同一な標本であり、標本数\(n\)は十分に大きいと仮定する。このとき、次の「母比率\(p\)は特定の値\(p_0\)であるか」の仮説を検定する。

\begin{align}&H_0: p= p_0 \\&H_1: p\neq p_0\end{align}

検定統計量として次を用いる。

\begin{align} Z= \cfrac{\hat{p}- p_0}{\sqrt{ p_0 (1 - p_0) / n}} \sim N(0, 1). \end{align}

また、有意水準\(\alpha\)の検定の棄却域は次で与えられる。

\begin{align}(-\infty,- Z_{\alpha/2}) \cup (Z_{\alpha/2}, \infty),\end{align}

ここに、\(\hat{p}\)は次で与えられる母比率の推定値の確率変数であり、\(Z_{\alpha/2}\)は標準正規分布の上側\(\alpha/2\)の確率点である。

\begin{align}\hat{p} = \cfrac{1}{n}\sum_{i=1}^n X_i.\end{align}

母比率の差の検定

\(x_{11} ,\ldots, x_{1n_1}\)はパラメータ\(p_1\)のベルヌーイ分布\(Bernolli(p_1)\)からの独立同一な標本、\(x_{21} ,\ldots, x_{2n_2}\)はパラメータ\(p_2\)のベルヌーイ分布\(Bernolli(p_2)\)からの独立同一な標本とする。このとき次の仮説検定を考える。

\begin{align}&H_0:\ p_1= p_2\\ &H_1:\ p_1\neq p_2\end{align}

検定統計量として次を用いる。

\begin{align}Z = \cfrac{\hat{p}_1 -\hat{p}_2}{\sqrt{\hat{p}(1-\hat{p}) (1/n_1 + 1/n_2)}} \sim N(0,1),\end{align}

ここに

\begin{align}\hat{p} &= \cfrac{n_1\hat{p_1} + n_2\hat{p}_2}{n_1 + n_2},\\ \hat{p}_i &= \cfrac{1}{n_i}\sum_{j=1}^{n_i} x_j, i = 1,2.\end{align}

また、有意水準\(\alpha\)の棄却域は次で与えられる。

\begin{align}(-\infty, -Z(\alpha/2)) \cup (Z(\alpha/2), \infty),\end{align}

ここに、\(Z(\alpha/2)\)は標準正規分布の上側\(\alpha/2\)点である。

関数prop.test

母比率の検定を実行する関数であるprop.testについて紹介します。関数prop.testの詳細は以下の通りです。

prop.test(x, n, p = NULL, alternative = c("two.sided", "less", "greater"), conf.level = 0.95, correct = TRUE)
関数prop.testの引数
x成功回数を表すnumeric型のベクトル。または成功と失敗の回数から成る2次行列。
n試行回数を表すnumeric型のベクトル。xが行列である場合無視される。
p成功する確率。ベルヌーイ分布のパラメータ。
alternative対立仮説を指定するために用いる。"two.sided"で両側検定、"greater"で右片側検定、"less"で左片側検定を実行できる。
conf.level信頼区間の信頼度。
correctTRUEで連続補正を適用する。FALSEで適用しない。

実行例

関数prop.testを用いて母比率の検定と2群の母比率の差の検定の実行例を紹介します。

母比率の検定

まず1標本検定である母比率の検定についてみていきます。

今、次のような100回のベルヌーイ試行によるデータが得られたとします。

samplesは0と1の二値のデータから成ります。関数tableを用いると度数分布表を作成することができ、0と1の数を把握することが可能です。

この0と1が発生する確率はそれぞれ等しいか(p=0.5であるか)という仮説検定を実行したいと思います。

この仮説検定を実行するには、以下のようにprop.testの第一引数に0が発生した数、第二引数に試行回数を指定します。

2行目のように度数分布表を渡す方法でも実行することができます。

testResultを参照すると、母比率の検定の検定統計量やp値などの結果がコンソールに出力されます。

ポイント

「p-value = 0.6892 > 0.05」より有意水準0.05の下で、このベルヌーイ試行の成功確率は0.5であることがいえました。(成功と失敗の確率が異なるとはいえない)

検定結果を取得したい場合、以下のようにtestResultの後ろに「$」を付けます。

検定統計量や、p値、信頼区間といった検定において重要な指標を取得することができます。

これらの検定結果をcsvファイルへと保存する例を最後に紹介します。

関数data.frameを使いこれらの結果をデータフレームにまとめた後に、write.csvを用いることで以下の画像のように結果を保存することができます。

母比率の検定結果

母比率の差の検定

最後に母比率の差の検定の実行方法について紹介します。

母比率の差の検定の検定統計量と棄却域は次のようになります。

母比率の差の検定は母比率の検定と同様に、関数prop.testを用いることでできます。

まず、データセットを用意します。パッケージepitoolsをインストールし、データセットTitanicをデータフレームへと変換します。

datasetは次のようなClassSexAgeSurvivedの4つの項目から成ります。

SurvivedSexに関する二元分割表は次のようにして作れます。

ポイント

この表から、Female(女性)よりMale(男性)の方が生存率が低いことが推測できます。

女性のNoの割合が全体の半分未満なのに対して、男性のNoの割合がほとんどを占めているのが分かります。

男性の生存率と女性の生存率が等しいかどうか仮説検定をしていきたいと思います。

母比率の差の検定を行うには、関数prop.testの第一引数に各グループの生存数、第二引数に各グループの総数を指定します。

2行目のように、行列を引数に渡す方法でも母比率の差の検定を実行できます。

testResultを参照すると、母比率の差の検定の結果が出力されます。

ポイント

testResultを参照するとp値<2.2e-16より、男性の生存率と女性の生存率は等しいとは言えないことが分かりました。

性別間で生存率に差があることが仮説検定により示されました。

testResult中の検定統計量や、p値、信頼区間などの検定結果のは以下のようにして取得できます。

関数data.frameを用いてこれらの結果をデータフレームに格納し、write.csvを用いることで次の画像のように検定結果をcsvファイルへ保存することが可能です。

母比率の差の検定結果

まとめ

R言語で母比率の検定を実行する関数とその実行例を

標準で母比率の検定の関数が実装されており、簡単に検定を実施することができます。

また、t検定と同様に母比率の差(2群の差)の検定も同じ関数を用いて実行することが可能です。

 

スポンサーリンク

  • この記事を書いた人
  • 最新記事

usagi-san

統計学とゲームとかをメインに解説していくよ。 数式とかプログラミングコードにミスがあったり質問があったりする場合はコメントで受け付けます。すぐに対応します。

-R言語
-, , ,