統計ER

R, EZR, SPSS, KH Coder を使ったデータ分析方法を紹介するブログ。ニッチな内容が多め

分散分析のサンプルサイズ計算―pwr.anova.test()を使う方法

分散分析のサンプルサイズ計算を統計ソフトRで行う方法を解説。

分散分析は三群以上の平均値を比較する分析方法。

少なくともどれか一つの群がほかの群とは異なることを証明するための分析方法だ。

>>もう統計で悩むのを終わりにしませんか?


↑1万人以上の医療従事者が購読中

分散分析のサンプルサイズ計算を行うために必要なデータ

分散分析のサンプルサイズ計算を行うために必要な数値は以下の通りだ。

  • k: 群の数
  • f: Effect Size  = \sqrt{\frac{\eta^2}{1-\eta^2}} \eta^2 イータ 2 乗については後述)
  • sig.level: 有意水準(デフォルトでは0.05)
  • power: 検出力

サンプルデータは以下の記事のデータを用いる。

三群で4例ずつのデータセットである。

このデータの分散分析の結果を用いて、事前にサンプルサイズ計算をしていたらどうだったかを見てみるということだ。

toukeier.hatenablog.com

EZRで分散分析を実行した結果を掲示する。

> summary(AnovaModel.1)
              Df Sum Sq Mean Sq F value  Pr(>F)   
factor(A.all)  2  969.5   484.7   13.52 0.00194 **
Residuals      9  322.7    35.9                   
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

上記、分散分析表の factor(A.all) と Residuals の Sum Sq を合計すると Total の Sum Sq となる

factor(A.all) の Sum Sq と Total の Sum Sq の比が、上述の  \eta^2 である

その  \eta^2 を上述の式で f に変換すると Effect size になる

分散分析のサンプルサイズ計算のためのパッケージを準備する

分散分析のサンプルサイズ計算の関数が含まれるパッケージは、pwr というパッケージだ。

インストールして、使用する準備をする。

install.packages("pwr") #一回のみ

library(pwr) #使用するとき

>>もう統計で悩むのを終わりにしませんか?


↑1万人以上の医療従事者が購読中

分散分析のサンプルサイズ計算の例

分散分析のサンプルサイズ計算を以下の例で計算する。

  • 三群(k=3)
  • Effect Size (f) は、 \sqrt{\frac{\eta^2}{1-\eta^2}} で計算できる
  •  \eta^2 は、969.5/(969.5+322.7) = 0.7502709
  • 検出力は80%

使う関数は pwrパッケージの pwr.anova.test() だ。

> pwr.anova.test(k=3, f=sqrt(0.7502709/(1-0.7502709)), power=0.8)

     Balanced one-way analysis of variance power calculation 

              k = 3
              n = 2.393323
              f = 1.733303
      sig.level = 0.05
          power = 0.8

NOTE: n is number in each group

結果として一群3例と計算された。実際は4例であり、解析結果も統計学的有意ではあった。

ゆえにサンプルサイズは妥当であったことがわかる。

このとき Effect Size (f) は、以上の通り 1.7 を超えていた。

分散分析のサンプルサイズ計算のための Effect Size が全く見積もれないとき

分散分析のサンプルサイズ計算をしたくても、先行研究やパイロットデータが全くなく、Effect Sizeが見積もれないとき、行動科学分野であれば、参考にできる目安がある。

  • Small Effect: f=0.1
  • Medium Effect: f=0.25
  • Large Effect: f=0.4

これらの時のサンプルサイズ計算を計算してみる。三群で、検出力は80%に固定する。

それぞれ、一群323例(Small)、53例(Medium)、22例(Large)という結果であった。

> #small: 0.1

> pwr.anova.test(k=3,f=0.1,power=0.8)

     Balanced one-way analysis of variance power calculation 

              k = 3
              n = 322.157
              f = 0.1
      sig.level = 0.05
          power = 0.8

NOTE: n is number in each group


> #medium: 0.25

> pwr.anova.test(k=3,f=0.25,power=0.8)

     Balanced one-way analysis of variance power calculation 

              k = 3
              n = 52.3966
              f = 0.25
      sig.level = 0.05
          power = 0.8

NOTE: n is number in each group


> #large: 0.4

> pwr.anova.test(k=3,f=0.4,power=0.8)

     Balanced one-way analysis of variance power calculation 

              k = 3
              n = 21.10364
              f = 0.4
      sig.level = 0.05
          power = 0.8

NOTE: n is number in each group

まとめ

分散分析のサンプルサイズ計算を pwrパッケージの pwr.anova.test()を使ってサンプルサイズ計算をしてみた。

Effect Sizeが見積もれないときの目安も示した。

参考過去記事(別の見積もり方法)

toukeier.hatenablog.com

参考文献

以下の書籍PDFの Chapter 8 The Analysis of Variance を参考にした。

http://www.utstat.toronto.edu/~brunner/oldclass/378f16/readings/CohenPower.pdf

イータ 2 乗について

Effect Sizes for ANOVAs

Frontiers | Calculating and reporting effect sizes to facilitate cumulative science: a practical primer for t-tests and ANOVAs

分散分析サンプルサイズ計算【無料統計ソフトRで簡単統計】【改訂版】【動画】

youtu.be