三浦(医療情報技師)
はじめに
サンプル数をどれだけ準備するかというのは、いつも気になる話題です。この数は使用する統計解析の手法や必要とされる精度によって変わってきます。検定などに必要なサンプル数は、パワーアナリシスとして知られています。R言語にはこれらについても関数がサポートされており、検定方法と関数の引数を設定してあげると、必要なサンプル数が結果として返されてきます。簡単にこれらについてご紹介します。
検定に必要なサンプル数
本TechコラムNo.2の「統計処理言語Rについて」で紹介したR言語には、仮説検定に必要なサンプル数を計算するための関数が標準機能としてサポートされています。power.t.testやpower.prop.test, power.anova.testといった関数です。
例えばt検定の場合、delta、sd、sig.level、powerの4つのパラメータを入力することで、必要なサンプル数が計算できます。
パラメータ | 説明 |
---|---|
delta | グループ間の平均の差 |
sd | データの標準偏差 |
sig.level | 差が無いのに間違ってあると判断する確率 (タイプ1エラー) |
power | 差があるときに正しくあると判断する確率 (検出力、power) |
実行例を以下に示します。1行目のスクリプトをタイプしてリターンキーを入力すると2行目以降のように、必要なサンプル数などが計算されて表示されます。
> power.t.test(delta=1.2,sd=3.5, sig.level = 0.05, power=0.8)
Two-sample t test power calculation
n = 134.5071
delta = 1.2
sd = 3.5
sig.level = 0.05
power = 0.8
alternative = two.sided
NOTE: n is number in each group
>
> power.t.test(delta=1.2,sd=3.5, sig.level = 0.05, power=0.8) Two-sample t test power calculation n = 134.5071 delta = 1.2 sd = 3.5 sig.level = 0.05 power = 0.8 alternative = two.sided NOTE: n is number in *each* group > |
リスト1 Rを利用したサンプル数の計算
ここでは、deltaを1.2、sdを3.5、powerを0.8とした場合の必要サンプル数が計算されています。結果のnの部分が必要なサンプル数を表しており、それぞれのグループで135個程度必要であることを示しています。 power=0.8の場合、8割は間違えずに差があると判定されるといった確率です。当然高いほど良いわけですが、必要なサンプル数は多くなります。統計的に最低限必要とされるpowerは一般的に0.8です。
ロジスティック回帰分析に必要なサンプル数
ロジスティック回帰分析で必要なサンプル数は、予測モデルに入れる説明変数の数から計算することが可能です。
説明変数の数 × 10 = 最低限必要なイベント発生サンプル数
上記の式から最低限必要な数が計算できますが、全サンプル数ではないことに注意してください。稀なイベントを解析する場合には、より多くのサンプル数が必要になります。以下の論文を参考にしてください。
ROCカーブを利用した解析などのサンプル数
ロジスティック回帰分析などでは、統計モデルの妥当性を評価するためにROCカーブとその下の面積AUCが計算されます。ヌルモデル(ランダムに決めるような全く機能していないモデル)と比較する場合に必要なサンプル数や、統計モデル相互に差があるかどうかといった検証を行なうために必要な数は異なります。後者のほうが多数のサンプルが必要です。これらの場合には、以下の論文が参考になります。