MENU

R で分散分析に必要なサンプル数を pwr.anova.test() で計算する方法

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

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

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

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

↑期間・数量限定で無料プレゼント中!

目次

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

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

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

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

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

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

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が見積もれないときの目安も示した。

関連記事(別の見積もり方法)

参考文献

以下の書籍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で簡単統計】【改訂版】【動画】

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

リサーチクエスチョン探し?データ分析?論文投稿?、、、で、もう悩まない!

第1章臨床研究ではなぜ統計が必要なのか?計画することの重要性
  • 推定ってどんなことをしているの?
  • 臨床研究を計画するってどういうこと?
  • どうにかして標本平均を母平均に近づけられないか?
第2章:研究目的をどれだけ明確にできるのかが重要
  • データさえあれば解析でどうにかなる、という考え方は間違い
  • 何を明らかにしたいのか? という研究目的が重要
  • 研究目的は4種類に分けられる
  • 統計専門家に相談する上でも研究目的とPICOを明確化しておく
第3章:p値で結果が左右される時代は終わりました
  • アメリカ統計協会(ASA)のp値に関する声明で指摘されていること
  • そうは言っても、本当に有意差がなくてもいいの…?
  • なぜ統計専門家はp値を重要視していないのか
  • 有意差がない時に「有意な傾向があった」といってもいい?
  • 統計を放置してしまうと非常にまずい
第4章:多くの人が統計を苦手にする理由
  • 残念ながら、セミナー受講だけで統計は使えません。
  • インプットだけで統計が使えない理由
  • どうやったら統計の判断力が鍛えられるか?
  • 統計は手段なので正解がないため、最適解を判断する力が必要
第5章:統計を使えるようになるために今日から何をすれば良いか?
  • 論文を読んで統計が使えるようになるための5ステップ
第6章:統計を学ぶために重要な環境
  • 統計の3つの力をバランスよく構築する環境

以下のボタンをクリックして、画面に出てくる指示に従って、必要事項を記入してください。

この記事を書いた人

統計 ER ブログ執筆者

元疫学研究者

統計解析が趣味

コメント

コメントする

目次