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: 両側検定か片側検定か

11.1 関連動画

## 
##  次のパッケージを付け加えます: 'kableExtra'
##  以下のオブジェクトは 'package:dplyr' からマスクされています: 
## 
##      group_rows
## 
##  次のパッケージを付け加えます: 'gt'
##  以下のオブジェクトは 'package:modelsummary' からマスクされています: 
## 
##      escape_latex