相関係数が0.18でしたが

MikuHatsune2014-06-01

検査値Xによって、臨床的アウトカムYが変化する、という図で、こんな感じの図が出てた。

n <- 25 # 標本数
correlation <- 0.18 # 結果の相関

niter <- 100000 # シミュレーション回数
x <- replicate(niter, runif(n, min=5, max=9))  # X変数の取りうる値からデータを適当に作成
y <- replicate(niter, runif(n, min=-3, max=3)) # Y変数の取りうる値からデータを適当に作成
xl <- c(5, 9)
yl <- c(-3, 3)
plot(x[, i], y[, i], xlim=xl, ylim=yl,
     xlab="X variable", ylab="Y variable")
abline(lm(y[, i] ~ x[, i])$coefficients, lwd=3)

データだけ見たらランダムに分布してるだろう…と思った。なんらかのドメイン知識を入れたらこのプロットに意味があるのだろうか。それが自分にないのでわからないだけ?
線形回帰をしたっぽい直線が引かれていたので、相関係数が0.18というプレゼンをもとに、この回帰がどれほど意味があるのかを考える。
線形回帰として、単純に
y=\beta_0+\beta_1 x
を考える。Rでは\beta_0\beta_1のそれぞれについてH_0\beta=0の検定が行われていて、棄却されなければこの係数は0でもまぁよくね?となって、そうなるとXが上昇するとYが上昇する、という結果が怪しい…
相関が0.18±0.02くらいのところのデータをとってきて、線形回帰したときのパラメータがどうなるかをシミュレーションした。


ランダムに発生させたデータの相関が0.18程度のとき、回帰してまともな結果になるのはほとんどない。
意味のある相関関係のあるデータが、ランダムエラーでたまたま0.18になったときに、回帰にどれくらい意味があるのがは分からないが、本人が意味のあるデータだと思うのなら意味があるのだろう(適当