一元配置分散分析(rstatixパッケージ)

  • 分散分析 

3つのグループに対しbmiを測定したデータについて、グループ間の平均値に下がるのかを分散分析で調べます。読み込んだデータは以下の通りです。

groups

bmi

a

18.3

a

17.89

a

17.55

中略

中略

b

20.23

b

21.03

b

19.1

中略

中略

c

22.87

c

21.96

c

22.37

コードと結果は以下の通りです。

> anova_test(data1, bmi ~ groups)
ANOVA Table (type II tests)

  Effect DFn DFd       F        p p<.05  ges
1 groups   2  57 121.351 2.86e-21     * 0.81

このコードでは、anova_test関数を( )内の内容にしたがって実行しています。( )内では、データの指定と解析対象の目的変数と説明変数の指定を行います。最初にデータの指定です。ここでは、data1です。次に、bmiとgroupsを ~ で結びます。bmiについてgroupsの影響を分析するという意味になります。

結果ですが、DFnとDFdは自由度で、FはF値、pはp値です。gesは効果量です。p値は極めて小さい値となっており、0.05を有意水準と設定した場合、主効果がある、と判断できます。

  • 多重比較

ここからさらに水準間での差を確認したい場合、多重比較を行ってきます。2群間の比較になるので、基本的にはt検定を行い、p値を補正していきます。rstatixパッケージでは、多重比較補正はholm法がデフォルトです。なおholm法はRのベースパッケージでもデフォルトになっています。

コードと結果は以下の通りです。

> t_test(data1, bmi ~ groups)
# A tibble: 3 × 10
  .y.   group1 group2    n1    n2 statistic    df        p    p.adj p.adj.signif
* <chr> <chr>  <chr>  <int> <int>     <dbl> <dbl>    <dbl>    <dbl> <chr>       
1 bmi   a      b         20    20     -9.30  31.4 1.55e-10 3.10e-10 ****        
2 bmi   a      c         20    20    -16.4   30.4 1.18e-16 3.54e-16 ****        
3 bmi   b      c         20    20     -6.29  37.9 2.29e- 7 2.29e- 7 ****      

コードは、対応のないt検定と全く変わりません。多重比較の指定をしなくても、t検定の関数を知っているだけで、シンプルにできてしまうのがこの関数のすばらしいところです。水準が3(グループが3つ)の場合、組み合わせは3つ(a vs b、 a vs c、 b vs c)になりますが、特にそのことをコードで指定しなくても、結果として組み合わせを検出し、t検定を行います。

 結果です。group1とgroup2は比較した2群を、n1とn2を、statisticはt値、dfは、pはp値、p.adjはholm補正後のp値です。この結果から、すべての群間に有意差があることが理解できます。


コメント