最近Youtubeで**ヨビノリさんの「推定・検定入門」**の動画を見ました
今まで検定というものに対してなんとなくの理解しか持っていなかったのですが、この動画を見ることで、実際にどのような原理で統計ソフトがp値や信頼区間を計算してくれていたのか、かなり詳細なレベルまで理解できた気がします
そこで今回はヨビノリさんの動画で学んだことを実用すべく、Rでt検定を実装してみたいと思います.Rを選んだ理由としては、組み込み関数で推定・検定が実装されているので自作のコードの検証がしやすいからです
みなさんもぜひ動画を見ながら追ってみてください
一標本の母平均の検定(t検定)
この検定は平均に関する検定で一番ベーシックなものですが、私自身は実践でやったことがなくてヨビノリさんの動画で初めて知った検定です
具体的には、あらかじめ決められた値とサンプルの平均を比較して、サンプルの母平均があらかじめ決められた値と異なるかどうかを検定します
問題設定
ヨビノリさんの動画で紹介されている例はこんな感じです
10年前の20台の平均身長は171.4cmだった.近年の栄養状態の改善を考えるとこの数値は増えているのではと思い9人を無作為に抽出した.抽出した結果から平均身長は増えたと言えるか.有意水準5%で検定せよ
ここで母集団(身長の分布)は正規分布に従うと仮定しています
また、ヨビノリさんの動画では問題文でサンプルの平均値と分散が与えられていますが,今回はせっかくRを使うので以下のようにサンプルを生成してみたいと思います
set.seeds(42)
x = rnorm(9, mean = 173, sd = 2)
このようなサンプルが生成されました
[1] 175.7419 171.8706 173.7263 174.2657 173.8085 172.7878 176.0230 172.8107 177.0368
さて、このサンプルから現代の20代の平均身長は171.4より大きいと言えるのでしょうか?
帰無仮説・対立仮説の記述
まずは、帰無仮説・対立仮説を記述しましょう
問題設定によれば、それぞれ以下のようになるはずです
帰無仮説 $H_0:\mu=171.4$
対立仮説 $H_1:\mu>171.4$
対立仮説の記述から、今回の検定は片側検定をすればいいことが分かります
T値の計算
サンプルの値からT値を計算してみましょう
T値は以下のような式で定義されます
$T=\frac{\bar{X}-\mu}{\frac{U}{\sqrt{n}}}$
ここでUはサンプルの不偏分散の平方根です
Rで実装してみると以下のように表現できます
mu = 171.4
# T値を計算
calcT = function(x, mu) {
n = length(x)
U = sqrt(var(x))
(mean(x)-mu)/(U/sqrt(n))
}
T = calcT(x, mu)
T
[1] 4.956662
分布から確率を計算する
突然ですが、このように定義した生成値Tは自由度n-1のt分布に従うことが知られています
なんでそうなるかは動画でも詳しくは説明されてないんですが、一連の動画を見ていけばイメージはつかめます
ざっくりとした説明ですが、こんな感じでどうでしょうか.先ほどの式で不偏分散$U^2$が真の分散$\sigma^2$だった場合は生成量は正規分布に従います.ここで不偏分散はサンプルが多くなれば真の分散に近づく性質があったことを思い出してください.t分布もnが∞で正規分布に漸近する性質がありますので,理にかなっているというわけです
さっそくRに用意されているt分布の確率密度関数からT>4.95の区間の確率を求めます
これがいわゆるp値というやつです
# P値を計算
df = length(x)-1
p = 1-pt(T, df)
p
[1] 0.0005557726
仮説を棄却する
あらかじめ設定した有意水準をもとに帰無仮説か対立仮説のどちらかを棄却します
今回はp値が0.05を下回っているので帰無仮説を棄却します
どうやら10年前と比べて平均身長は増えていると結論して良さそうです
自作コードの検証
ここまで一連の流れをRの組み込み関数でやってみるとこんな感じです
> t.test(x, mu=171.4, alternative = "greater")
One Sample t-test
data: x
t = 4.9567, df = 8, p-value = 0.0005558
alternative hypothesis: true mean is greater than 171.4
T値、p値ともにほぼ同じ値が現れました
それにしても、自分で自作してみることでRの組み込み関数のスマートさがよくわかります
ヨビノリさんの動画をみての感想
これまでいろいろな統計の本、動画を見てきましたが、個人的な印象ではヨビノリさんの動画が圧倒的にわかりやすかったです
統計はヨビノリさんご自身の専門ではないと思うので、最初はちょっと胡散臭いかななんて思ったりしたんですが、なんてことはない、統計の専門家よりも分かりやすく、そしてコンパクトな解説で驚きました
ヨビノリさんの動画を見るまでは自分で検定を実装してみようなんて考えたこともなかったので、やはり学習教材の力は偉大です
こんなに良質な教材を日本語で用意してくれたヨビノリさんに感謝です