統計ER

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

EZR で効果量・事後検出力・事後サンプルサイズ計算を行う方法

統計解析を実施して、結果を見て初めて、検出力やサンプルサイズの問題が意識されることは多い

手元にすでにあるデータから効果量を計算し、事後検出力、事後サンプルサイズ計算に進む流れを紹介する

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


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

事後に検出力やサンプルサイズ計算が必要になることはよくある

サンプルサイズ計算は、試験開始前やデータ収集の前に行わなければいけないが、実際は必ずしも行われていない

事前に検討せず、データを集めて、検定結果を見て初めて、検出力や必要サンプルサイズが問われることはよくある

そのような場合に、手元にあるデータから効果量を計算し、事後検出力、必要サンプルサイズを計算する方法があるので、紹介する

参考にした書籍は、こちら

ちなみに、単変量解析を扱うが、最終的に多変量解析(例:群間比較を交絡因子調整した重回帰分析、共分散分析)がゴールであっても、単変量の検定のサンプルサイズ計算で事足りることは多いので、まずここで説明する単変量解析の効果量、事後検出力、事後サンプルサイズ計算をおさえてほしい

効果量とは

効果量とは、サンプルサイズ計算や検出力計算の際に必要な数値である

検定によって異なるが、平均値の差の検定(t 検定)であれば、平均値の差を標準偏差で割った値である

平均値の場合は、標準偏差で割ることを標準化と呼ぶ

一般的には、標準化された差を効果量と呼ぶ

EZR では、効果量を計算することはできないが、effsize というパッケージをインストールすることで、計算することができる(後述)

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


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

サンプルデータの説明

サンプルデータは、2 群の連続データで、group が群を表し、outcome が検定する連続データである

介入前後の変化量をイメージしている

こちらからダウンロードできる

two_group_numeric_values.csv

ファイル → データのインポート → ファイルまたはクリップボード、URL から テキストデータを読み込む を選択し、CSV ファイルを読み込んで使用する

データセット名は、Dataset とする

2 群の箱ひげ図を書くと以下のようになる

平均値の差の検定(Welch の検定)を行うと、以下のように、2 群の平均値の差は、統計学的有意ではなかった(P = 0.342)

効果量の計算

効果量を計算するには、まず、effsize パッケージをインストールする

インストールは、以下のスクリプトを R スクリプト枠に、手入力またはコピペして、実行ボタンをクリックし、出てきた窓内の Japan をクリックして OK すれば、インストール完了だ

install.packages("effsize")

次に、effsize パッケージを呼び出し、cohen.d 関数で計算する

一行ずつ書いて、実行ボタンをクリックしていく

library(effsize)
cohen.d(outcome ~ group, data=Dataset)

outcome が比較したい連続データ、group は群を表すカテゴリカルデータ、Dataset がデータセット名だ

結果は以下のように、-0.2474653 となった

group1 - group2 の計算で、マイナスの結果になっているが、group2 - group1 でも同じことなので、以後は、プラスで考える

事後検出力の計算は、プラスの値のほうが適切になる

事後検出力を計算する

EZR で検出力を計算するには、統計解析 → 必要サンプルサイズの計算 → 2 群の平均値の比較のための検出力の計算 を選択する

現れた窓の各枠に以下を入力する

  • 2 群間の平均値の差:0.2474653(効果量を書き入れる)
  • 2 群共通の標準偏差:1(平均値の差に効果量を入れているということは、標準偏差で割って標準化されているという意味なので、ここには 1 と入力する
  • グループ 1 のサンプルサイズ:30(手元データの実際の症例数を入れる)
  • グループ 2 のサンプルサイズ:30(手元データの実際の症例数を入れる)

OK をクリックすると計算される

検出力は、0.158 = 15.8 % と計算された

この低さでは、統計学的有意とはならない

事後サンプルサイズ計算

それでは、サンプルサイズはどのくらいの大きさだったらよかったのか

EZR でサンプルサイズ計算をするには、統計解析 → 必要サンプルサイズの計算 → 2 群の平均値の比較のためのサンプルサイズ計算 を選択する

  • 2 群間の平均値の差:0.2474653
  • 2 群共通の標準偏差:1

検出力計算のときと同じように、上記二つを入力する

OK をクリックすると必要サンプルサイズが計算される

今回の群間差が、統計学的有意となるためには、必要サンプルサイズは一群 257 例、合計で 514 例必要と計算された

いまデータから得られている差が、意味あるものであるならば、このような巨大な症例数が必要になる

逆に、こんなに症例数が必要になるならば、この群間差は意味のないものではないか? など、改めて、クリニカルクエスチョンから考え直してもよいかもしれない

まとめ

検出力計算、サンプルサイズ計算は、統計解析して、結果を見てから必要性に気づくことがよくある

EZR に effsize パッケージを追加して、cohen.d 関数で生データから効果量を計算する方法を紹介した

参考になれば

参考書籍