無から有(意差)を生む:多重比較でウソをつく方法
前回の記事では多重検定がキーワードとなりましたが、良い機会なので、今回は例を交えながら多重検定がもつ問題のインパクトについて説明したいと思います。
(*「多重検定って何?」という方はこちら)
結論を先に書くと、多重性を調整しない多重比較がなぜ忌むべきものかというと、それはそのような多重比較を悪用すると「いとも簡単に無から有(意差)を生むことができる」からです。
では、そのことを「マウスへ化学物質を投与して影響を調べる」という仮想実験を例に見てみましょう。
仮想実験:マウスへ5種類の化学物質を投与する
仮想例として、5つの化学物質(物質A, B, C, D, E)をマウスに投与してその影響を調べる実験を考えてみます。
影響のエンドポイントとしては5つの器官(肝臓・腎臓・脳・肺・皮膚)の各細胞における量的なバイオマーカーの変化を用います。
それぞれの「エンドポイント・化学物質」ごとのサンプルサイズ(マウス数)は10匹として、バイオマーカー量のバラツキは正規分布する(&標準偏差は器官ごとに異なる)とします。
まずはRで仮想データを生成してみましょう:
#Generating experiment data Control.kanzou <- rnorm(10,100,10) Control.zinzou <- rnorm(10,100,10) Control.nou <- rnorm(10,100,15) Control.hai <- rnorm(10,100,20) Control.hihu <- rnorm(10,100,25) A.kanzou <- rnorm(10,100,10) A.zinzou <- rnorm(10,100,10) A.nou <- rnorm(10,100,15) A.hai <- rnorm(10,100,20) A.hihu <- rnorm(10,100,25) B.kanzou <- rnorm(10,100,10) B.zinzou <- rnorm(10,100,10) B.nou <- rnorm(10,100,15) B.hai <- rnorm(10,100,20) B.hihu <- rnorm(10,100,25) C.kanzou <- rnorm(10,100,10) C.zinzou <- rnorm(10,100,10) C.nou <- rnorm(10,100,15) C.hai <- rnorm(10,100,20) C.hihu <- rnorm(10,100,25) D.kanzou <- rnorm(10,100,10) D.zinzou <- rnorm(10,100,10) D.nou <- rnorm(10,100,15) D.hai <- rnorm(10,100,20) D.hihu <- rnorm(10,100,25) E.kanzou <- rnorm(10,100,10) E.zinzou <- rnorm(10,100,10) E.nou <- rnorm(10,100,15) E.hai <- rnorm(10,100,20) E.hihu <- rnorm(10,100,25)
これで仮想実験データを生成することができました。変数名は"化学物質名"."エンドポイント名"になっており、それぞれ10匹ぶんのバイオマーカーの量のデータが含まれています。
このデータの生成においては、コントロール区と処理区の間に全く違いを与えていないことに注意してください。
統計解析:多重性を調整せずにペアワイズのt検定を行う
では説明のために、検定の多重性の調整を考えずに統計解析を行います。
それぞれのペアで、「コントロール群」と「各化学物質曝露を行った群」の間でバイオマーカー量の平均値に差があるかどうかを調べるためにt検定により検定してみましょう:
# t-test Ak.res <- t.test(Control.kanzou,A.kanzou) Az.res <- t.test(Control.zinzou,A.zinzou) An.res <- t.test(Control.nou,A.nou) Aha.res <- t.test(Control.hai,A.hai) Ahi.res <- t.test(Control.hihu,A.hihu) Bk.res <- t.test(Control.kanzou,B.kanzou) Bz.res <- t.test(Control.zinzou,B.zinzou) Bn.res <- t.test(Control.nou,B.nou) Bha.res <- t.test(Control.hai,B.hai) Bhi.res <- t.test(Control.hihu,B.hihu) Ck.res <- t.test(Control.kanzou,C.kanzou) Cz.res <- t.test(Control.zinzou,C.zinzou) Cn.res <- t.test(Control.nou,C.nou) Cha.res <- t.test(Control.hai,C.hai) Chi.res <- t.test(Control.hihu,C.hihu) Dk.res <- t.test(Control.kanzou,D.kanzou) Dz.res <- t.test(Control.zinzou,D.zinzou) Dn.res <- t.test(Control.nou,D.nou) Dha.res <- t.test(Control.hai,D.hai) Dhi.res <- t.test(Control.hihu,D.hihu) Ek.res <- t.test(Control.kanzou,E.kanzou) Ez.res <- t.test(Control.zinzou,E.zinzou) En.res <- t.test(Control.nou,E.nou) Eha.res <- t.test(Control.hai,E.hai) Ehi.res <- t.test(Control.hihu,E.hihu) # giving p-values Ak.res$p.value Az.res$p.value An.res$p.value Aha.res$p.value Ahi.res$p.value Bk.res$p.value Bz.res$p.value Bn.res$p.value Bha.res$p.value Bhi.res$p.value Ck.res$p.value Cz.res$p.value Cn.res$p.value Cha.res$p.value Chi.res$p.value Dk.res$p.value Dz.res$p.value Dn.res$p.value Dha.res$p.value Dhi.res $p.value Ek.res$p.value Ez.res$p.value En.res$p.value Eha.res$p.value Ehi.res$p.value
私が上の式でデータ生成→検定を10回繰り返したところ、以下のような結果がでました(5%有意水準を採用)*1。
- 1回目:化学物質Eが肝臓に影響(p= 0.034)
- 2回目:化学物質Eが皮膚に影響(p= 0.037)
- 3回目:どのケースにおいても有意差なし
- 4回目:化学物質Aが皮膚に影響(p= 0.035)
- 5回目:化学物質Eが肝臓に影響(p= 0.034)
- 6回目:化学物質Cが肝臓に影響(p= 0.034)
- 7回目:化学物質Aが脳に影響(p= 0.045)&化学物質Eが腎臓に影響(p= 0.028)
- 8回目:化学物質Bが脳に影響(p= 0.034)
- 9回目:化学物質Cが脳に影響(p= 0.024)
- 10回目:化学物質Cが皮膚に影響(p= 0.033)
というわけで、とても簡単に無から有(意差)を生むことができました。検定を25通り(5物質×5エンドポイント)も繰り返すと、ふつうに1つくらいは間違って有意差を拾ってきてしまうものなのです。おそろしいですね。
検定の多重性を考慮し、全体での危険率(偽陽性*2になってしまう確率)を5%水準とすると、ペアワイズのt検定における本来のp値はp=0.002ほどになります*3。このような多重性を考慮したp値は、偶然だけでは20回に1回ほどしか現れてきません。
ちなみにどのエンドポイントにおいて偽陽性が現れやすいかというのは、バイオマーカーのバラツキ(標準偏差)には依存しません*4。バラツキが小さいと、そのぶん有意差も検出されやすくなるからです。
完全犯罪:"トリミング"というブラック行為
さすがに、上記のようなケースでは「それは多重比較でしょ」というツッコミが来るかもしれません。
しかしながら、もし実験者が上記の実験を行い「化学物質Eが肝臓に影響(p= 0.034)」という結果を得たとして、そのうち有意差がでた「化学物質Eと肝臓」のことしか論文に書かないとしたらどうなるでしょうか(他の化学物質とエンドポイントの話は都合が悪いので"トリミング"してしまう)。
そうなると、本来の多重性はもう誰にも見えなくなってしまいます。完全犯罪です。こういうことをしたら、ダメ、絶対です。
グレーのグラデーション:非意図的な"トリミング"
さすがに、上記のような明確な悪意をもった"トリミング"が行われているケースは少ないとは思われます。たぶん。
しかし、例えば本当に「化学物質Eが肝臓に与える影響」を知ることが本来の目的で、他の化学物質やエンドポイントは測定の「デフォルト」として一応データをとっていた、というケースもあるかもしれません。そのような場合には、論文を書くときに「他の化学物質とエンドポイントの話」を"トリミング"しちゃうというのは、少なくとも心情的には理解できます。このような場合には必ずしろ「クロ」とは言い切れないものがあります。
また、調査観察データからスクリーニング的にいろいろなやり方でいろいろな方向から影響を調べていてたまたま「ある影響」を検出して、その「ある影響」に関するストーリーを中心に"トリミング"をして論文を発表する、みたいなケースもあるかもしれません。これも本人としては「黒い意図」はないかもしれませんが、ちょっと多重検定的な危うさは伴います。
みなさま、気をつけましょう。
結論:だから「追試は大事」なの
結論としてとりあえず言えるのは、「検定を繰り返して有意差を拾ってきて何とかする」という形のアプローチは、統計的に非常に危うい物であり、偽陽性を非常に拾いやすいということですかね。気をつけたいものです。
あと、上記で述べてきたような「偽陽性」の問題を解決する王道はやはり「追試」ということになるわけであり、大事な教訓として言えるのは「やっぱり追試は大事だよ」だということかもしれません。
科学的知見というのものは(方法論的に意外と危うい側面が拭えない)単一の研究だけからではなく、複数の研究による知見が積み重なってはじめて「信頼できるエビデンス」となるのだ、ということを改めて認識したいものです。
【追記:20110210】多重検定に関しては、粕谷さん&久保さんの2004年の生態学会自由集会のサイトも非常に勉強になりますのでオススメとして追記しておきます。
関連書籍(オススメ)
- 作者: 粕谷英一
- 出版社/メーカー: 文一総合出版
- 発売日: 1998/03
- メディア: 単行本
- 購入: 12人 クリック: 164回
- この商品を含むブログ (25件) を見る
- 作者: 永田靖,吉田道弘
- 出版社/メーカー: サイエンティスト社
- 発売日: 1997/12
- メディア: 単行本
- 購入: 3人 クリック: 31回
- この商品を含むブログ (10件) を見る