Chapter 11 t検定
【Section 11.1に関連動画を紹介しています。】
2群の平均値の差についての検定であるt検定を実施してみましょう。
t検定を行うコマンドはt.test()
です。t.test()
は以下のように記述します。
t.test(従属変数 ~ 独立変数, data = データフレーム名)
ここでは、black
を用いて、黒人とそれ以外で年間収入inc
に違いがあるかどうかを確認してみましょう。
t.test(inc ~ black, data = saving)
##
## Welch Two Sample t-test
##
## data: inc by black
## t = 1.8562, df = 7.3906, p-value = 0.1036
## alternative hypothesis: true difference in means between group 0 and group 1 is not equal to 0
## 95 percent confidence interval:
## -890.170 7726.938
## sample estimates:
## mean in group 0 mean in group 1
## 10180.527 6762.143
これでt検定を行うことができます。p値は0.103
なので、今回は有意ではありませんでした。(差があるようには見えますが、黒人のサンプルが少ないことが影響していると思われます)
なお、t.test()
はデフォルトで2群の分散が等しいと仮定しない「Welchのt検定」を実施します。
オプションでvar.equal = TRUE
とすれば分散が等しいと仮定した「スチューデントのt検定」が実施できますが、通常分散は異なることが多いため、デフォルトのままWelchのt検定を使用するのが良いでしょう。
t検定の結果はあまり見やすい形式にはなっていません。
broom
というパッケージの関数tidy
を使うと、結果を表形式で見やすくすることができます。
まずはbloom
をインストールしておきましょう。
install.packages("broom")
その上で、tidy()
を使ってみましょう。t.test
の結果をパイプでつないでtidy()
に渡してみます。
library(broom)
t.test(inc ~ black, data = saving) %>%
tidy()
## # A tibble: 1 × 10
## estimate estimate1 estimate2 statistic p.value parameter conf.low conf.high
## <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 3418. 10181. 6762. 1.86 0.104 7.39 -890. 7727.
## # … with 2 more variables: method <chr>, alternative <chr>
表示されている数値は以下のとおりです。
estimate
: 平均値の差estimate1
: グループ1の平均estimate2
: グループ2の平均statistic
: t値p.value
: p値parameter
: 自由度conf.low, conf.high
: 信頼区間の下限、上限method
: 使用した方法alternative
: 両側検定か片側検定か