統計ER

統計ソフトRの使い方を中心に、統計解析方法の解説をするブログ。ありそうでなかなか見つからないサンプルサイズ計算などニッチな方法について紹介しています。

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

ブログランキングに参加しています。
まずはぽちぽちっとお願いします。
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
にほんブログ村 科学ブログ 数学へ

分散分析のサンプルサイズ計算を統計ソフトRで行う方法を解説。分散分析は三群以上の平均値を比較する分析方法。少なくともどれか一つの群がほかの群とは異なることを証明するための分析方法だ。

分散分析のサンプルサイズ計算を行うために必要なデータ(2020年10月4日訂正)

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

サンプルデータは以下の記事のデータを用いる。三群で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)の行のMean Sqが群間平均平方で、一群のサンプルサイズ(n=4)で割った値を使う。Residualsの行のMean Sqが群内平均平方。それぞれの平方根の比をEffect sizeとする。

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

分散分析のサンプルサイズ計算の関数が含まれるパッケージは、pwr というパッケージだ。インストールして、使用する準備をする。

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

library(pwr) #使用するとき

分散分析のサンプルサイズ計算の例(2020年10月4日訂正)

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

  • 三群(k=3)
  • Effect Size (f) は、factor(A.all)のMean Sq/nの平方根と、ResidualsのMean Sqの平方根の比
  • 検出力は80%

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

結果として一群3例と計算された。実際は4例であり、解析結果も統計学的有意ではあった。ゆえにサンプルサイズは妥当であったことがわかる。

> pwr.anova.test(k=3, f=sqrt(484.7/4)/sqrt(35.9), power=0.8)

     Balanced one-way analysis of variance power calculation 

              k = 3
              n = 2.289809
              f = 1.837212
      sig.level = 0.05
          power = 0.8

NOTE: n is number in each group

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

分散分析のサンプルサイズ計算のための 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

分散分析サンプルサイズ計算【無料統計ソフトRで簡単統計】【改訂版】【動画】(2020年10月4日改訂)

youtu.be