8 推定・検定

佐久間 智広

神戸大学大学院経営学研究科

2024/06/03


0.1 準備

Code
1if (!require("pacman")) install.packages("pacman")
pacman::p_load(tidyverse, magrittr,
               estimatr,car,modelsummary,
2               ggrepel,patchwork,psych, here)
1
複数のパッケージを一度に読み込めるpacmanパッケージが入っていない場合は,インストールする
2
パッケージの読み込み
pacman

複数のパッケージを読み込めるパッケージ。そのパッケージの中のp_loadコマンドを使うと,()内に指示したパッケージを読み込める。さらにそのパッケージがそもそもインストールされていない場合にはインストールした後に読み込んでくれる

tidyverse

Rのコードを楽にするたくさんのパッケージをパッケージにしたもの

magrittr

tidyverseに含まれる%>%などのコードをさらに拡張するもの。これがあると%$%とか%<>%が使える

1 推定・統計的仮説検定

1.1 考え方

前回やった通り,統計的分析の良いところは少ないサンプルから全体を推定できることにあります。

  • 手元のデータを使って,全体を推測する

特に,以下の性質を利用することで,母集団がどんなものなのかを推定できるということでした。

  1. 母集団から無作為に標本を集める(無作為抽出
  2. 母集団がどんな分布でも,標本平均は不偏(不偏性)で,なおかつ正規分布に従う(中心極限定理
  3. 正規分布に従うとわかると,標本平均がどれぐらいの信頼度で母集団を推定できているかを把握できる

無作為抽出という手順と,確率の性質を組み合わせて利用することで,未知の母集団を推測できる!

1.1.1 統計的推測

このように,データを元に母集団の形(特にそれを特徴づけるパラメータ\(\theta\))を推測することを統計的推測と言います。

統計的推測には,大きく分け二つ

  • 推定:未知のパラメータ\(\theta\) を当てる
  • 検定:未知のパラメータ\(\theta\)がある仮説を満たすかどうかを検証する

推定を行い,検定をする,というイメージ

1.2 検定

1.2.1 帰無仮説と対立仮説

標本を用いて計算された母集団の推定結果について,どちらか一方を選ぶような形で推定結果を検証する手続きをとります。これを統計的仮説検定と言います。

帰無仮説

考察の基準となる仮説

対立仮説

帰無仮説が棄却されたときに解釈される仮説

統計的仮説検定では,このような二つの仮説を立て,一方を選ぶような手続きを取ります。

1.2.2 検定は背理法

統計的検定は,データに基づいて得られた検定統計量について,以下のような手続きで帰無仮説か対立仮説かを選びます

  1. 帰無仮説を仮定する
  2. データから検定統計量を計算する
  3. 検定統計量が帰無仮説のもとでは確率的にほとんどあり得ないような値を取った時,帰無仮説を棄却し,対立仮説をとる
  • 確率的にほとんどあり得ない,の程度を有意水準という
    • 分野によって採用されがちな有意水準は違うけれど,社会科学でよくみられるのは5%水準
    • つまり,帰無仮説が正しかったとしたら今回得られた検定統計量の値が出る確率は5%以下,という時に対立仮説をとる。

1.2.3 例:有給所得率と企業業績

「有給取得率が高いほど純利益も大きい」のではないかと予測している

  1. 命題が正しくないと仮定する
    「世の中の会社全体でも、有給取得率が高いほど純利益も大きい」が正しくないと仮定する
    • 「世の中の会社全体で見ると、有給取得率と純利益には特に関係はない」
    • 「 (もう少し具体的に)有給取得率と純利益の相関係数はゼロ」
  2. その結果,矛盾してしまう
    本当の相関係数がゼロの時に、今回のようなデータはあり得るのだろうか?
    • 多少の偏りがあるとして,相関係数0.1くらいならギリありそうだが、0.32はさすがにレア
  3. よって,命題は正しい
    統計の世界では「絶対」は無いので 「有給取得率と純利益の相関係数はゼロ」では無さそう というくらいにとどめておきます

1.3 コイン投げの例

歪みのない1コインを投げた場合,表が出る確率は1/2です。今手元にあるコインが歪みのないものかどうかを検証するためには,「歪みがない」ことを仮説として持ちます。これを帰無仮説と言います。逆にこの仮説が否定されたもの「コインが歪んでいる」という仮説を対立仮説と言います。

  • 帰無仮説:コインに歪みがない
  • 対立仮説:コインが歪んでる

これらの仮説を以下のプロセスで検討します。

  1. どれぐらいの確率なら仮説を否定するか,という基準を先に決めておく。この基準を有意水準という。
  2. 母集団の確率分布について,帰無仮説を立てる
  3. 母集団からサンプルを取得する
  4. 母集団から抽出したサンプルが母集団から得られる確率を計算し,1で決めた有意水準と比較する。優位水準より低い確率だった場合,帰無仮説が真実ではなかったとして棄却する。有意水準より大きかった場合,仮説を受容する。

1.4 シミュレーション

  1. 有意水準は(経済学や経営学では)5%や10%あたりが用いられます。5%としてみます。
    • これは,母集団が帰無仮説の通りだったときに,今回計算した推定値が95%起こりうる範囲に入っているかどうかで判断する,ということを意味します。
  2. 帰無仮説を設定する。コインを投げて表になる確率を\(p\) とすると,帰無仮説\(H_0\)\(p = \frac{1}{2}\),対立仮説\(H_1\)\(p \ne \frac{1}{2}\)と設定。
  3. コインを100回投げる。結果が表65,裏35だとする
  4. 帰無仮説が正しいとして,100回中おもてが60-40回に収まる確率を計算してみる
Code
1p40 <- pbinom(q = 40, size = 100, prob = 0.5)
2p60 <- pbinom(q = 60, size = 100, prob = 0.5)
3p60 - p40
1
表が40回以下の確率
2
表が60回以下の確率
3
表が60回以下の確率 - 表が40回以下の確率,つまり60回から40回表が出る確率
[1] 0.9539559


この0.9539は,コインを100回投げて,60回から40回表が出る確率を表しています。95%以上の確率で60-40回表が出る,逆に65回は5%以下と解釈できます。事前に設定された有意水準5%を下回るので,帰無仮説は棄却され,対立仮説である\(H_1\)\(p \ne \frac{1}{2}\)が採択されます。

2 平均値の検定

2.1 母集団の分散が既知の場合

母集団の分布が平均\(\mu\)標準偏差1と判明しているケースで,仮に平均が0かどうかを検定したいとします。以下のような手続きを取ります。

  1. 有意水準は5%とします。
  2. 帰無仮説\(H_0 : \mu = 0\)とすると対立仮説\(H_1 : \mu \ne 0\)となります。
  3. 検定の対象の母集団から標本を抽出します。ここから平均値を計算します。
  4. もし帰無仮説が正しいのであれば,母集団は\(N(0,1)\)つまり標準正規分布であるはずです。標準正規分布に従う確率変数について,\(|X|>1.96\)となる確率が(有意水準である)5%であることが知られています。つまり,平均値の絶対値が1.96より小さかったら帰無仮説を採択,大きかったら帰無仮説を棄却して,対立仮説をとる,ということです。

2.2 t検定

母集団の分布があらかじめわかっているということは基本的にはありません。しかし,母集団の分布がわからないという条件でも上のような検定が行える場合があります。

  1. 有意水準は,5%とします
  2. 帰無仮説\(H_0 : \mu = 0\)とすると対立仮説\(H_1 : \mu \ne 0\)となります。
  3. 検定の対象の母集団から大きさnの標本を抽出します。もし,nが十分に大きいと,中心極限定理によって,以下の\(Z_n\)は近似的に標準正規分布\(N(0,1)\)に従います。 \[ Z_n = \frac{\sqrt{n}(\bar{X_n} - \mu)}{\sqrt{V_n}} \] ただし,\(\bar{X_n}\)は標本平均,\(V_n\)は標本分散です(母分散がわからないので)
  4. もし帰無仮説が正しいのであれば,\(\mu = 0\)なので,\(Z_n\)\[ t_n = \frac{\sqrt{n}\bar{X_n}}{\sqrt{V_n}} \] と書き換えることができて,これが標準正規分布\(N(0,1)\)に従います。

上記\(t_n\)をt値,これを用いた検定をt検定と言います。

2.3 p値

  • 上のt検定ではあらかじめ5%とか有意水準を決めていました。しかし,t値に対応させる形で,tの値がある数の時,その数字で帰無仮説を棄却するには有意水準をどこまで大きくする必要があるのか,という確率を直接求めることもできます。それをp値と言います。
  • t検定において,t値を見るのと,p値を見るのは本質的には同義です。p値5%がt値2ぐらい(厳密にはサンプルサイズによって違う)を表しています。

2.4 信頼区間

  • 一致性が満たされていたら,サンプルサイズの増加に伴い分散が0に。
    • ある1つの数値に収束する
  • ただし,サンプルサイズは無限大ではないので,推定値は確率変数。
  • 推定値がある確率で特定の範囲に収まる,その範囲を信頼区間という。
    • 狭ければ狭いほどある一定の点に近づくので嬉しい。
  • サンプルサイズ(The size of the study population)が大きい(小さい)ほど,信頼区間は狭く(広く)。

Note

前回課題で求めた54%から62%の範囲はこの95%信頼区間

2.4.1 信頼区間の導出

  • サンプルが母集団からの無作為抽出であるという前提のもと,標準誤差(se)を計算する
    • 例えば95%なら,± se × 1.96 で計算する。

2.4.2 信頼区間の意味

  • 母集団からのサンプリングを繰り返し行った場合,95%はこの範囲の中に入る。

  • 95%真のパラメータがこの範囲の中に入っている。

  • 特定の研究における95%信頼区間は,「95%の確率でestimand(母集団のパラメータ)がこの範囲の中に入る」ということを意味しているわけではない

    • estimandは固定された値(確率変数ではない)だから。
  • 信頼区間は,頻度論的な解釈しか与えない。

    • 信頼区間の数値(95%)は,複数の研究(もしくは仮想上の研究の繰り返し)において,未知の母集団の数値が入る頻度を表している
    • 「データをサンプルして信頼区間を構成する」という 手続きを100回を繰り返したときに、概ね95回は真の パラメータを含む
  • 三重大学奥村先生の説明が丁寧

2.5 平均値の検定の例

(ハンバーガー統計学より引用)

ハンバーガー屋であるワクワクバーガーは自身のハンバーガーの味とモグモグのハンバーガーの味とで,評価が違っているのかを調べたい。

街頭試食アンケートとして,改札を通る人を10人ごとに1人選びだして調査を協力してもらいました。1人目にはワクワクのハンバーガーを食べてもらい100点満点で味の採点をしてもらいます。2人目は,モグモグのハンバーガーで同じようにしてもらいます。3人目はワクワクに戻ります。このようにして,それぞれのハンバーガーについて8人ずつのデータを取りました。

Code
ham <- here('data', '8_ham1.csv') |> 
  read_csv()
ham
Code
summary(ham)
      wak             mog       
 Min.   :70.00   Min.   :70.00  
 1st Qu.:70.00   1st Qu.:78.75  
 Median :75.00   Median :80.00  
 Mean   :76.88   Mean   :81.88  
 3rd Qu.:81.25   3rd Qu.:86.25  
 Max.   :90.00   Max.   :95.00  
Code
describe(ham)

わくわくバーガーの平均は76.875,もぐもぐバーガーの平均は81.875。これだけみたらもぐもぐバーガーの方が評価が高い。

ただし,これはあくまで町行く人からランダムに募った16名の意見から生じた差。この差は全体の差として意味があるかを検定したい。

  • 帰無仮説は,2つのハンバーガーの評価に差はない
  • 対立仮説は,2つのハンバーガーの評価に差がある

以上の仮説をもとに,平均値の差の検定を行う。判断の基準はp値5%とする。ここで行う検定はt検定。コマンドはt.test()

Code
ham %$% 
  t.test(wak,mog)

    Welch Two Sample t-test

data:  wak and mog
t = -1.2881, df = 13.951, p-value = 0.2187
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
 -13.327988   3.327988
sample estimates:
mean of x mean of y 
   76.875    81.875 

t値は,-1.2881,p値は0.2187。

帰無仮説が真の確率が,0.2187,つまり約22%。判断の基準である5%よりも大きいので,帰無仮説を採択する

  • 帰無仮説が違うという確率が十分に高くないので,帰無仮説を選んだ。
  • 2つの点数の差は,偶然の差であることが否定できない。差があるとは言えない

なお,t.test()コマンドでは既定で95%信頼区間が出力される。これが

95 percent confidence interval:
 -13.327988   3.327988

として表示されている。95%あり得る区間の中に0が入っているので,差が0という可能性が否定できない。

ちなみに,もっと厳しい99%信頼区間を表示するには

Code
ham %$% 
  t.test(wak,mog,
         data = ham,
         conf.level = .99)

    Welch Two Sample t-test

data:  wak and mog
t = -1.2881, df = 13.951, p-value = 0.2187
alternative hypothesis: true difference in means is not equal to 0
99 percent confidence interval:
 -16.561187   6.561187
sample estimates:
mean of x mean of y 
   76.875    81.875 

3 相関の検定

データice3_1.csvには,アイスクリーム屋さんの年齢(age)と今年の来店回数(raiten)が含まれています。このアイスクリーム屋さんは,「年齢層と来店頻度には関係があるのではないか」と考え,ポイントカード会員のデータから,20名の年齢と来店回数を集計しました。

Code
ice3_1 <- here('data', '8_ice3.csv') |> read_csv()

ice3_1 |> 
1  describe()
1
%$%とか,%>%といったコード(パイプ演算子)は,前のコードをそのまま受ける時,次のコードの()内を(.)として省略できます

平均年齢は19.55,最小値13,最大値26

平均来店回数は5.70,最小2,最大8

Code
ice3_1 %$%
  cor(age,raiten)
[1] 0.2665227

2つの変数の相関係数は0.266。正の相関だけど,大きいわけではない。

この相関は,20名というデータの中で生じたものだけど,母集団全体として正の相関があるのか,それともこの正の値は偶然生じたものなのか?

  • 帰無仮説は相関なし(相関0)
  • 対立仮説は相関あり


分析の際には,相関の検定を実行するcor.test()を行います。()の中には相関を検定したい2つの変数を入れます。

Code
ice3_1 %$%
  cor.test(age,raiten)

    Pearson's product-moment correlation

data:  age and raiten
t = 1.1732, df = 18, p-value = 0.256
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
 -0.1995311  0.6342401
sample estimates:
      cor 
0.2665227 

 この結果の一番下に,相関係数( 0.2665227)が書かれています。t値は1.17,また, p-value = 0.256が検定の結果算出された有意確率です。約26% > 5% なので,有意ではない。つまり,相関なしという帰無仮説を棄却できない(帰無仮説を採択)

4 課題

4.1 背景

(ハンバーガー統計学より引用)

平均値の検定の例では,不特定の16名にわくわくバーガーともぐもぐバーガーの「どちらか1つ」を食べてもらって,その味を評価してもらいました。もう少し精度よく味の違いを比べるには,同じ人に両方食べてもらう方が良いのでは?以上の背景から,8人を集めて2種類のハンバーガーを食べて比較してもらい,それぞれのハンバーガーに点数をつけてもらいました。ただし,どちらのハンバーガーを先に食べるかによって評価に偏りがでるといけないので,半分の人にはワクワクを先に,残りの半分にはモグモグを先に食べてもらいました。

集計したデータが8_ham2.csvです。

Code
ham2 <- read_csv('data/8_ham2.csv')
Code
ham2

4.2 実習課題

以下の内容をmanabaの2024/06/10課題に記入してください。

  1. わくわくバーガー,もぐもぐバーガーそれぞれの平均と標準偏差,最大値,最小値をそれぞれ算出してください。コードと結果両方を記載してください。
  2. 授業でやった方法と同じ方法でわくわくバーガーともぐもぐバーガーの平均値の差の検定(t検定)をしてください。実行コードとp値,検定結果から読み取れることを記入してください。
  3. 今回は同じ人が評価した得点,つまりwakとmogはそれぞれペアデータです。それを反映したt検定を行うためには,t.test()コマンドの中に paired = TRUEを記載します(対応ありのt検定と言います)。対応ありのt検定を行い,それを課題2のt検定と比較してください。
  4. ハンバーガーの評価に人による傾向があるかを知りたいと思っています(例えば全体的に高い,低い得点をつける傾向があるか)。そこで相関係数の検定をしてください。コードと相関係数,検定結果を記載し,検定結果から読み取れることを記入してください。

対応ありのt検定は,対応なしのt検定の分析上の仮定を変えて,「同じ人が評価した」ということを反映させた形の検定をしています。