A way of thinking

筆者個人の思考過程です。意見には個人差があります。

どうやって統計的に有意な関係を導くか

以下は,研究室のメーリスに流したものです。最後のコメントなどちょっと粗いところもありますが,メモとしておいてきます。

統計使う方々へ


以下,ご参考までに:
なんらかの変数間で関係があるどうかを調べたい場合,
相関分析(あるいは回帰分析)とかを用いることになると思います。
では,どうやって統計的に有意な関係を導くか,
最も手っ取り早い方法は,相関をとる変数の組合せを沢山考えることです。
(もちろん,皮肉的な表現です,あしからず)

例えば,ある1つの変数(val.y)に対して
val.yとは独立な(リアルに無関係な)25個の変数と相関分析をすると,
偶然にp値が0.05未満になる可能性は,
平均で1回くらい出てきます。
(これは,p値がいかに小さくても本質的には同じです)


Rのコードだと,以下で非常に簡単にこれを再現できます。

                          • -

# ある変数val.yを乱数を引いて作る。
# この場合,平均100,標準偏差20の分布から,ランダムに10個データを作る
val.y <- rnorm(10, 100, 20)


# ここからシミュレーションの準備
n <- 25 # val.xを何個作るか:ここでは25個としている
pval <- 1:n # 計算したp値を入れる箱


# シミュレーション開始
for (i in 1:n){
# val.xは平均値10,標準偏差1の分布から,ランダムに10個値をとってくる
val.x <- rnorm (10, 10, 1)
# val.xとval.yの相関をとる
res <- cor.test(val.x, val.y)
# 相関分析のp値のみを抜き出して,pvalに入れる
pval[i] <- res$p.value
# 上の試行をn回繰り返す
}


# n回のうち,最小のp値を出す
min(pval)
# n回のうち,p値が0.05未満になった回数を出力する
length(which(pval<0.05))
# このコードを何回か回すと,平均して1回くらいは有意な関係が出てきます

                                        • -


ということで,以上のことから言えることは,
#1 むやみやたらに相関をとると,偶然有意になる可能性が出てくる
#2 p値が小さいからといって,証拠の強さにはならない


ということだと思います。


もちろん探索的に,色々試行錯誤することは重要なので
じゃあ,どうすればいいのか?というと,
ボクが言えるのは,
#1 有意な関係がみられた場合,それにきちんとした意味づけができること
すなわち,理論的あるいは経験的な知見から,
有意な関係を説明することができること。


#2 再度異なるデータ or さらなる実験で検証すること
実際に,これをやって,
どうも既往研究の有意な相関は,偶然っぽいという
研究結果も見たことがあります。


#3 という,危険性があることを理解して結果を解釈すること
t検定なども含めて,探索的な統計解析において,
統計はあくまで1つのツールで,あくまで1つの結果です。


かと思います。