Take a Risk:林岳彦の研究メモ

自らの研究に関連するエトセトラについてのメモ的ブログです。主にリスク学と統計学を扱っています。

今回は因果関係があるのに相関関係が見られない4つのケースをまとめてみた(前編:検定力が低い)

どもお久しぶりです。林岳彦です。ローソンなどで売ってるいなばのタイカレーそうめんのつけ汁として使ってもマジうまいのでオススメです。


さて。


今回は前々回の記事:

因果関係がないのに相関関係があらわれる4つのケースをまとめてみたよ(質問テンプレート付き) - Take a Risk:林岳彦の研究メモ

の続編として、逆のケースとなる「因果関係があるのに相関関係が見られない」ケースについて見ていきたいと思います。あんまり長いと読むのも書くのも大変なので、今回はまずは前編として「検定力の問題」に絞って書いていきます。

(*今回は上記の前々回の記事での記述を下敷きに書いていきますので、分からないところがあったら適宜前々回の記事をご参照ください)


まずは(今回の記事における)用語の定義:「相関」と「因果」

今回も少しややこしい話になると思うので、まずは用語の定義をしておきたいと思います。(*細かいところはあまり気にしない方はこの節は飛ばしてもらってもたぶん大丈夫です)

前々回の記事と同じく、今回の記事内では「因果」の定義については:

「要因Aを変化させた(介入)とき、要因Zも変化する」ときに、「要因A→要因Zの因果関係がある」と呼ぶ

ことにしたいと思います(詳しくは、前々回のエントリーをご参照ください)。今回の記事の後編では、この「因果」定義自体の難点にも触れることにもなっていきます。

また、今回の記事内では、「相関」については:

得られたデータにおける項目Aと項目Zのあいだに何らかの関連がみられる(=独立でない)ときに、両者間に「相関がある」と呼ぶ

ことにします。より一般には、「相関」というと、 ピアソンの相関係数で示されるような項目間での「直線的な関連性」を指すことが多いですが、今回の記事で言及するのは基本的に「直線的な関連」に限定した話ではないので、上記のようなかなりユルい定義を使っていきます(より詳しい議論は前回の記事をご参照ください)。

そして「相関が見られる/見られない」という表現については、「データにおける項目間にある関連性が、偶然に生じたものと区別できるほど大きい*1/区別できないほど小さい」という意味で用いていきます。(そもそも相関は本質的に連続量的なものなので、「見られる/見られない」という二分法自体がスジが悪いともいえますが、ここでは日常的用語法に従い「見られる/見られない」という表現を使っていきます*2

また、今回の記事では、あくまでも狭義の相関( ピアソンの相関係数r)ではなく、データにおける項目間に「何らかの関連性」が見られるかどうかを問題としていくので、例えばt検定で「2群間の平均値に差がある(=2群間での「処理の違い」と「結果」の間に関連性がある)」ことをもって「相関がある」という言い方もしていきます(まあ基本的に、2群間で平均値に差が見られれば相関も見られるので同じことになります)。

因果関係があるのに相関が見られないケース:(1)検定力が低い

はい。では「因果関係があるのに相関が見られない」ケースを見て行きましょう。

まずは、なんといっても、そもそも「検定力が低い」ケースです。

検定力とは、「(偶然によるものではない)差や関連性がある場合に、それを統計的に有意な差や関連性として検出できる確率」です。そして、結論から言うと、その「検定力」の大きさは、「サンプル数サンプルサイズ*3」「影響(関連性)の大きさ」「データにおけるバラつきの大きさ」「有意水準」に本質的に依存します。


では、具体的な理解のために、仮想例を見ていきましょう。

今回は、「新開発のキンギョのエサが、キンギョの体重に与える影響」のケースを考えていきます。

あなたはキンギョのエサの開発者で、「新しく開発したエサが(従来のエサに対して)どのくらいキンギョの体重を増加させるのか」を知りたいとします。ここで、生まれたばかりのキンギョの稚魚をA群/B群へとランダムに分け、A群には「従来のエサ」を、B群には「新しく開発したエサ」を与えつづけて1年間育ててみるという実験をしてみます:


ここで、「従来のエサで育てたときの平均体重は30g標準偏差は5gで、新開発のエサはキンギョの1年後の体重を平均+3g増加させる(標準偏差は変化させない*4)」という状況を考えていきましょう。

果たして、各群に何匹のキンギョを用いればこの2群の「差」を検出できるでしょうか?


では、Rで色々と計算していきたいと思います。まずは、試しに散布図の例から描いてみます*5


この図は各群のキンギョが10匹(各群がn=10)のケースについて、横軸の左側は従来のエサ(A群)、右側は新開発のエサ(B群)、縦軸はそれぞれの群における「1年後の体重(g)」を表しています(RコードはKingyo_Ex.R 直)。このプロットを見ると、新開発エサのB群の体重の方が大きいように見えますが、その差の程度はビミョウなかんじですね。。

では、実際にサンプルサイズがA群、B群ともにn=10匹の場合のp値を計算してみましょう。今回は「正規分布する2群のサンプルにおける平均値の差を見る」のが目的なのでt検定になります*6

Rで解析を行うと次のようになります:

> n <- 10; controlmean <- 30;
> truedifference <- 3; truesd <- 5;
>
> weightA.data <- rnorm(n,mean=controlmean,sd=truesd)
> weightB.data <- rnorm(n,mean=controlmean+truedifference,sd=truesd)
>
> ttest.res <- t.test(weightA.data, weightB.data, var.equal=T, alternative="less")
> ttest.res

     Two Sample t-test

data:  weightA.data and weightB.data
t = -0.6752, df = 18, p-value = 0.2541
alternative hypothesis: true difference in means is less than 0
95 percent confidence interval:
     -Inf 2.454056
sample estimates:
mean of x mean of y
 31.15390  32.71873

今回の各群n=10匹の例では、p値(p-value)はp=0.25になりました*7。有意水準をp=0.05とすると、この場合では"統計的に有意な差"を検出できなかったことになります。

さて。では、このような各群n=10匹の場合のシミュレーションを100回繰り返してみましょう(A群、B群のデータは各回のシミュレーションごとに新たなものを生成しています:RコードはKingyo_ttest100sim.R 直):


各群n=10のシミュレーションを100回繰り返すと、以上のような結果になりました。横軸は100回のシミュレーションを、縦軸はそれぞれのシミュレーションで得られたp値を示しています。赤色の破線はp=0.05の水準を示しています。この例では、有意水準をp=0.05とすると100回中の37回において(のみ)統計的に有意な差(p<0.05)を検出できているという結果になりました。

この「(偶然によるものではない)差がある場合に、それを統計的に有意な差として検出できる確率」が、「検定力」と呼ばれるものになります。
この「検定力」がなぜ重要かというと、要するに:

「検定力」が低い場合に、「因果関係があるのに相関関係が見られない」というケースが数多く生じる

からです。

例えば、上記の図の例では、本当は「新開発のエサによって体重が+3g変化している(=因果関係がある)」にもかかわらず、「100回中37回」しかそこに「統計的有意差が見られない(=相関関係が見られない)」という状況になっています。

もし、こんな検定力の低い(10回に4回弱しか差を検出できない)デザインの実験結果に基づいて「差がない」という結論になり、あなたが心血を注いで新開発したエサがお蔵入りになってしまったら悲しいですよね。。。


検定力が低い(あるいは、検定力に関する意識が低い)というのは、とても由々しき問題なのです。

どのような場合に検定力が低くなるのか

では、どのような場合に検定力が低くなるのかを見ていきましょう。

まずは、上記と同じキンギョの実験の例を念頭に、「コントロール群の平均体重30g標準偏差5g、新エサ投与時の増加体重+3g各群n=10有意水準p=0.05(片側検定)」の条件における検定力をRを用いて計算してみます。t検定を対象とした検定力の計算には、power.t.test()という関数を用います:

> power.t.test(n=10,delta=3,sd=5,sig.level=0.05,type="two.sample",alternative=("one.sided"))

     Two-sample t test power calculation

              n = 10
          delta = 3
             sd = 5
      sig.level = 0.05
          power = 0.3617837
    alternative = one.sided

検定力(power)は0.36と計算されました。同じパラメータ値を用いた上述のシミュレーションで得られている結果(100回中37回で有意差あり)と良く整合してますね。この検定力の「0.36」という値は低いのか高いのかというと、「よく分からないからもうコイントスで決めようぜ(←やけくそ)」というのでも検定力は0.5あるわけなので、まあ少なくともとても高いとは言えない値です*8


次は、検定力に対するサンプルサイズの影響をみていきましょう。上記と同じ「コントロール群の平均体重30g、標準偏差5g、新エサ投与時の増加体重+3g、有意水準p=0.05(片側検定)」という状況でサンプルサイズn(1群あたりのキンギョの匹数)だけを変化させた検出力の算出を行います:


はい。サンプルサイズが増すに従って検定力が上昇するのが見て取れます(Rコードはkensyutsuryoku.R 直)。もし8割の確率で「群間で体重に差がある場合に*9、それを統計的に有意なものとして検出できる」こと(検定力=0.8)を目指すのなら、サンプルサイズとして少なくとも各群40匹程度は必要となることが分かります。

一方、サンプルサイズが各群20匹程度の場合には、検定力が0.5くらいであり、おおよそ半々の確率で「新エサと体重の間に、因果関係があるのに(統計的に有意な)相関がみられない」ことが予測されます。


では、次は体重における「影響の大きさ」「ばらつきの大きさ」の影響を見てみます。今までと同じくデフォルトは「コントロール群の平均体重30g、標準偏差5g、新エサ投与時の増加体重+3g、有意水準p=0.05(片側検定)」で、体重の変化量標準偏差のみを変えてみましょう(Rコードはkensyutsuryoku.R 直):


他の要因が同じ場合、「変化量(影響の大きさ)」が大きくなるにつれて検定力は増加します(左図)。上図の例では、新エサによる体重の変化量が+6gを超えると検定力も0.8以上になっていますが、体重の変化が+3gくらいだと検定力は0.4以下に留まります。つまり、「変化量」が小さいほど検定力が低下するため、例えば、変化量が小さい場合にも同じ検定力を維持するためには「サンプルサイズを増す」などの対処が必要になってくる、というわけです。

また、他の要因が同じ場合、「体重のバラツキ」が大きくなると検定力は減少します(右図)。上図の例では、体重の標準偏差が2gくらいであれば検定力は0.8を超えますが、標準偏差が5gくらいになると検定力は0.4を下回ってきます。これは例えば、「同じ実験デザインの実験を行っても、実験の下手な人がやると(結果におけるバラツキが増えるため)有意差が出にくくなる」という現象に相当するものです。逆の言い方をすると、検定力を上げるための方法として「バラツキ」を抑える工夫をする、という方向性もあることになります。

で、実は、上の「変化量の大きさ」と「バラツキの大きさ」は相対的なもので、検定力は「変化量/標準偏差」に依存する、とよりシンプルに両者の影響をまとめることができます。例えば、左図ではデフォルトの標準偏差として5gが用いられていますが、「変化量/標準偏差=1」(=変化量5g)のとき、検定力は0.6強になっています。一方、右の図ではデフォルトの変化量として+3gが用いられていますが、こちらも「変化量/標準偏差=1」(=標準偏差3g)のとき、検定力は同じ値(0.6強)になっているのが分かるかと思います。

この「変化量/標準偏差」の値(つまり、変化量のスケールを標準偏差で標準化した値)は一般に「効果量(effect size)」と呼ばれるものに対応します*10


最後に、有意水準を変化させてみましょう。今までと同じく「コントロール群の平均体重30g、標準偏差5g、新エサ投与時の増加体重+3g、各群のサンプルサイズn=10匹」で、有意水準だけを変化させてみます(Rコードはkensyutsuryoku.R 直):


(あたりまえなのですが)有意水準が大きくなるにつれ、検定力が上がっていきます。有意水準が大きく(緩く)なると「本当は差がないのに、差があると判定」する確率(第一種の誤りが大きくなる一方で、検定力は大きくなり、「本当は差があるのに、差がないと判定」(第二種の誤り)する確率が小さくなります。このように、有意水準と検定力は本来的にトレードオフの関係にあるわけです。

ここで、「有意水準」と「検定力」のどちらを重視する必要があるのかは本来はケースバイケースなのですが、多くの場合、「第一種の誤り」の方を制御することを重視して*11、有意水準の方を先ず固定(p=0.05やp=0.01とか)にして考えていく方法が一般的となっています。

ここまでの小まとめ

この辺で、いったんまとめてみます:

  • 検定力が低いと、「因果関係があるのに相関関係が見られない」ケースが多く生じる
  • 検定力が低くなるのは以下のケースである:
    • (1) サンプルサイズが小さい
    • (2) 効果量(=変化量/標準偏差*12)が小さい
    • (3) 有意水準が小さい

というかんじになるかと思います。(ここまではよろしいでしょうか?)

でも「やみくもにサンプルサイズを増せばいい」というわけでもないの:本質は効果量にあり

さて。

ここまで、「検定力」は「サンプルサイズ」「効果量」「有意水準」に依存することを見てきました。仮説検定の枠組みにおいて、これらの4つの量は常にお互いに依存し合う"カルテット"的な量になっています。そして、これらの中でも、多くの場合に実験や調査の前にわれわれが主体的に大きく変えられる余地があるものは「サンプルサイズ」です。そのため、検定力と聞くと「とにかくサンプルの数を増せばいいんでしょ?」と思われる方もいるかもしれません。

まあそれはそうなのです。が、ただ、そうは言っても「やみくもにサンプルの数を増せばいい」というわけでもありません


そもそも、検定における「検定力」「サンプルサイズ」「効果量」「有意水準」の中で、私たちが知りたい「調査対象において実際に起きていること」を最も直接的に反映しているのは何といっても「効果量」なのです。その一方、「有意水準」「検定力」というのは「実験・調査デザイン(のクオリティ)」の方をより直接的に反映する量といえます。

その意味で、特に論文の査読という「実験・調査デザインのクオリティ」を重視するプロセスにおいて「有意水準」や「検定力」が重視されてきたのは理解できますが、そのせいで「効果量」の方が軽視されるようになってしまったら、それはもう本末転倒と言えるでしょう(例えばこちら)。

(殆どの場合において)大事なのは「調査対象において実際に起きていること」を理解することであり、そのためには「効果量」を中心に考えを進めていくことが重要です。


サンプルサイズを決定する際にも、そもそもの本来的な目的に照らして「どの程度の"差"が実質的な差と言えるのか?」という点をまず明確にし、その「実質的な差(実質的な効果量)を検出するためにはどの程度のサンプルサイズが必要なのか?」という順番で考えていくことが王道といえます。(ここでちゃんと考えることをサボると、あとで「nが足りな〜い...」という番町皿屋敷的な状態になるので気をつけましょう)

逆に言うと、サンプルサイズをやみくもに多くして、「瑣末な差」に統計的有意性を見いだしたとしても、それは「現実を知る/現実に対処する」ためには何の役にも立ちません*13


(ついつい忘れがちですが)統計解析の際にはいつでもその本来的な目的を見失わないように注意しましょう。

今回のまとめ:

では、今回の内容をまとめます。(殆どさっきのまとめと重複しますが)

  • 検定力が低いと、「因果関係があるのに相関関係が見られない」ケースが多く生じる
  • 検定力が低くなるのは以下のケースである:
    • (1) サンプルサイズが小さい
    • (2) 効果量(=変化量/標準偏差)が小さい
    • (3) 有意水準が小さい
  • 検出力はやみくもに高ければ良いというものでもない(本質は「効果量(effect size)」にあり)
  • わたしの検定力は530000です


はい。


ちなみに今回の記事では仮説検定の枠組みを基にして書きましたが、またそもそも論を言うと、「効果量」に着目するのであればそもそも仮説検定の枠組みよりも「効果量の信頼区間」や「効果量の推定分布」を求めたほうが断然スジが良いと言えます。この辺りを書きはじめるととても長くなるので、ぜひ以下の本をご一読いただければ幸いです(すごく良い本だと思うので):

伝えるための心理統計: 効果量・信頼区間・検定力

伝えるための心理統計: 効果量・信頼区間・検定力

(もしくは、みんな仮説検定のことなんか忘れてベイジアンになっちゃえばよいのにと思います)


はい。


では、次回の後編では、「因果関係があるのに相関関係が見られないケース」の中でも、交絡要因や中間変量が関連するものについて書いていきたいと思います。

(今後はコンスタントに更新していきます)

今回の参考文献:

検定力分析入門

検定力分析入門

検定力分析の入門書。さすがの分かりやすさ。事例(心理学中心)も多くオススメです。
伝えるための心理統計: 効果量・信頼区間・検定力

伝えるための心理統計: 効果量・信頼区間・検定力

上記の豊田本より高レベルですが、読み応えはあります。仮説検定が廃れてきた理由と経緯についても詳しく書かれています(あまりその辺りのところを詳しく書いてくれている本はあまりないので大変ありがたい)。こちらも大変オススメです。

(単なる宣伝)

私が寄稿させていただいた自主制作文芸誌が こちらこちらで買えます(まだまだ赤字らしいのでどぞ4649です)。



.

*1:counterfactualさんのブコメを見てここに量的な表現がくるのはおかしいかなと思ったので改変

*2:ちなみに、私は因果関係に対しては「ある/なし」、相関に対しては「見られる/見られない」「現れる/現れない」の語を使うことが多いですが、これは因果は本質的に存在論的なものであるのに対し、相関は本質的に現象論的なものである、という理解の仕方が背景にあります

*3:ブコメで「サンプル数」の語は誤りとの指摘あり。まじどもサンクスです。勉強になります。以下の文では瑣末になるのでこっそり修正しました

*4:つまり等分散性を仮定

*5:各群のデータは正規分布すると仮定します

*6:体重の「増加」に興味があるので片側検定を用います

*7:その都度サンプルをランダムに発生させているので、コードを実行するごとに値は変わります

*8:一般には検定力は0.8くらいあることが望ましいと言われていたりします→詳しくは大久保・岡田(2012)

*9:厳密に言えば片側検定なので「B群の体重の方が大きい場合に」

*10:ここはちょっと大雑把な言い方になっています。実際には効果量の定義にはいろいろあります。詳しくは大久保・岡田(2012)などをご参照ください

*11:あるいは、何も考えずに単に慣習に従って

*12:「効果量」の定義はいろんな形があり得ますが、ここではとりあえずこの形で

*13:もちろんそこで得られた「効果量」には意味があります/まあそれがサンプルサイズの増加に費やした努力量に見合ったものかは分かりませんが