高いp値を持つ強い相関係数の例


21

私は、非常に強い相関係数(たとえば.9以上)と高いp値(たとえば.25以上)を持つことは可能だろうかと思っていました。

これは、高いp値を持つ低い相関係数の例です。

set.seed(10)
y <- rnorm(100)
x <- rnorm(100)+.1*y
cor.test(x,y)

cor = 0.03908927、p = 0.6994

高い相関係数、低いp値:

y <- rnorm(100)
x <- rnorm(100)+2*y
cor.test(x,y)

cor = 0.8807809、p = 2.2e-16

低相関係数、低p値:

y <- rnorm(100000)
x <- rnorm(100000)+.1*y
cor.test(x,y)

cor = 0.1035018、p = 2.2e-16

高い相関係数、高いp値:???

回答:


36

ボトムライン

真の(ピアソン)相関係数がゼロであるという仮説を棄却するために必要なサンプル相関係数は、サンプルサイズが大きくなるにつれて非常に速く小さくなります。したがって、一般的に、いいえ、大きな(大きさで)相関係数と同時に大きな値を同時に持つことはできませんp

トップライン (詳細)

関数のピアソン相関係数に使用されるテストは、以下で説明する方法をわずかに修正したバージョンです。Rcor.test

仮定相関を持つIID変量正規ランダムベクトルで。対という帰無仮説をテストします。してみましょうサンプルの相関係数も。標準線形回帰理論を使用すると、検定統計量 にがあることを示すことは難しくありません。 帰無仮説の下の分布。大きい、分布は標準正規に近づきます。したがって、ρ ρ = 0 ρ 0 、R T = R (X1,Y1),(X2,Y2),,(Xn,Yn)ρρ=0ρ0r TのN-2NT、N-2T2T2F1N-2χ21

T=rn2(1r2)
tn2ntn2T2は、1自由度でほぼカイ二乗分布です。(我々が行った仮定の下では、実際にはですが、近似により、何が起こっているかがより明確になると思います。)T2F1,n2χ12

したがって、 ここでは、1自由度のカイ2乗分布の分位数です。Q 1 - α1 - α

P(r21r2(n2)q1α)α,
q1α(1α)

今、なお、のように増加している増加します。確率ステートメントで数量を並べ替えると、すべての レベルで帰無仮説の棄却が得られます。明らかに右側はとともに減少します。r 2 | r | 1r2/(1r2)r2 αN

|r|11+n2/q1α
αn

計画

これは、棄却域のプロットですサンプルサイズの関数として。したがって、たとえば、サンプルサイズが100を超える場合、レベルでnullを拒否するには、(絶対)相関関係は約0.2でです。α = 0.05|r|α=0.05

シミュレーション

簡単なシミュレーションを実行して、正確な相関係数を持つゼロ平均ベクトルのペアを生成できます。以下はコードです。これから、の出力を見ることができますcor.test

k <- 100
n <- 4*k

# Correlation that gives an approximate p-value of 0.05
# Change 0.05 to some other desired p-value to get a different curve
pval <- 0.05
qval <- qchisq(pval,1,lower.tail=F)
rho  <- 1/sqrt(1+(n-2)/qval)

# Zero-mean orthogonal basis vectors
b1 <- rep(c(1,-1),n/2)
b2 <- rep(c(1,1,-1,-1),n/4)

# Construct x and y vectors with mean zero and an empirical
# correlation of *exactly* rho
x <- b1
y <- rho * b1 + sqrt(1-rho^2) * b2

# Do test
ctst <- cor.test(x,y)

コメントで要求されているように、ここにプロットを再現するコードがあります。これは上記のコードの直後に実行できます(そこで定義された変数の一部を使用します)。

png("cortest.png", height=600, width=600)
m  <- 3:1000
yy <- 1/sqrt(1+(m-2)/qval)
plot(m, yy, type="l", lwd=3, ylim=c(0,1),
     xlab="sample size", ylab="correlation")
polygon( c(m[1],m,rev(m)[1]), c(1,yy,1), col="lightblue2", border=NA)
lines(m,yy,lwd=2)
text(500, 0.5, "p < 0.05", cex=1.5 )
dev.off()

1
それで、一番下の行は何ですか?サンプルサイズが小さい場合を除き、高い相関値は低いp値を意味すると言っていると思いますが、それを明示的に説明すると役立つと思います。
DW

@DW:コメントありがとうございます!一番下の線が写真から明確であり、固定値を維持するために必要な2乗相関がサンプルサイズの関数として単調に減少することを示す表示式があればいいと思いました。この効果をより明確に表明し、適切な場所に挿入する方法を見つけます。建設的なフィードバックをありがとう。p
枢機

@cardinal、あなたが生成したグラフのソースコードを投稿してください。
aL3xa

@DW、私はあなたの懸念に取り組む試みをしました。改善が見られる場合は、お知らせください。
枢機

1
@ aL3xa:使用したプロットコードを追加しました。お役に立てれば。
枢機


11

p値が高い相関係数の高い推定値は、サンプルサイズが非常に小さい場合にのみ発生します。イラストを提供しようとしていましたが、アーロンはちょうどそれをやったばかりです!


9

フィッシャーRZ変換により、nullの下のサンプル相関の双曲線アークタンは、平均がゼロで標準誤差がほぼ正常であると考えられます。1/n3ρ^>0p

p=22Φアタンρ^n3
ΦH0ρ=0

nρ^p

 #get n for sample correlation and p-value, 2-sided test of 0 correlation
 n.size <- function(rho.hat,p.val) {
   n <- 3 + ((qnorm(1 - 0.5 * p.val)) / atanh(rho.hat))^2
 }

ρ^=0.5p=0.2

print(n.size(0.5,0.2))

[1] 8.443062

npρ^


1

はい。p値はサンプルサイズに依存するため、小さなサンプルでこれを得ることができます。

真のエフェクトサイズが非常に小さく、小さなサンプルを描画するとします。運がよければ、非常に高い相関関係を持ついくつかのデータポイントを取得できます。p値は高いはずです。相関は高いですが、それほど信頼できる結果ではありません。

Rのcor()からのサンプル相関は、相関の最良の推定値(サンプルが与えられた場合)を示します。p値は相関の強さを測定しません。サンプルのサイズを考慮して、実際に効果がなかった場合に発生する可能性を測定します。

これを確認する別の方法:同じ効果サイズであるが、より多くのサンプルを取得する場合、p値は常にゼロになります。

(推定効果サイズの概念と推定値の信頼性をより密接に統合する場合は、信頼区間を使用するか、ベイジアン手法を使用することをお勧めします。)


α=0.05x <- seq(0,4); y <- seq(0,4) + rnorm(5); cor.test(x,y)
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.