Garis bawah
Koefisien korelasi sampel diperlukan untuk menolak hipotesis bahwa koefisien korelasi benar (Pearson) adalah nol menjadi kecil cukup cepat seiring dengan meningkatnya ukuran sampel. Jadi, secara umum, tidak ada, Anda tidak dapat secara bersamaan memiliki besar (besarnya) koefisien korelasi dan secara bersamaan besar -nilaihal .
Baris Atas (Detail)
Tes yang digunakan untuk koefisien korelasi Pearson dalam fungsi adalah versi yang sangat sedikit dimodifikasi dari metode yang saya bahas di bawah ini.Rcor.test
Misalkan adalah iid bivariat vektor acak normal dengan korelasi . Kami ingin menguji hipotesis nol bahwa versus . Biarkan menjadi koefisien korelasi sampel. Menggunakan teori regresi linier standar, tidak sulit untuk menunjukkan bahwa statistik uji,
memiliki t n - 2 distribusi di bawah hipotesis nol. Untuk yang besarρ ρ = 0 ρ ≠ 0 r T = r √( X1, Y1) , ( X2, Y2) , ... , ( Xn, Yn)ρρ = 0ρ ≠ 0r tn-2T2T2∼F1,n-2χ21
T= r n - 2-----√( 1 - r2)------√
tn - 2,mendekati standar normal. Maka
ntn - 2T2kira-kira chi-squared didistribusikan dengan satu derajat kebebasan. (Berdasarkan asumsi yang kami buat, dalam kenyataannya, tetapi perkiraan membuat lebih jelas apa yang sedang terjadi, saya pikir.)
T2∼ F1 , n - 2χ21
Jadi,
P ( r21 - r2( n - 2 ) ≥ q1 - α) ≈α,
mana adalah kuantil dari distribusi chi-squared dengan satu derajat kebebasan.
q1 - α( 1 - α )
Sekarang, perhatikan bahwa meningkat karena meningkat. Menyusun ulang kuantitas dalam pernyataan probabilitas, kami memiliki itu untuk semua
kita akan mendapatkan penolakan terhadap hipotesis nol pada level . Jelas sisi kanan berkurang dengan .r2/ (1- r2)r2
| r | ≥ 11 + ( n - 2 ) / q1 - α-------------√
αn
Sebuah jalan cerita
Berikut adalah plot wilayah penolakansebagai fungsi dari ukuran sampel. Jadi, misalnya, ketika ukuran sampel melebihi 100, korelasi (absolut) hanya perlu sekitar 0,2 untuk menolak nol pada tingkat .| r |α = 0,05
Simulasi
Kita dapat melakukan simulasi sederhana untuk menghasilkan sepasang vektor mean-nol dengan tepat koefisien korelasi yang . Di bawah ini adalah kode. Dari sini kita bisa melihat output dari 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)
Seperti yang diminta dalam komentar, berikut adalah kode untuk mereproduksi plot, yang dapat dijalankan segera setelah kode di atas (dan menggunakan beberapa variabel yang didefinisikan di sana).
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()
cor = 0,866, p = 0,333
sumber
Estimasi tinggi koefisien korelasi dengan nilai p tinggi hanya bisa terjadi dengan ukuran sampel yang sangat kecil. Saya baru saja akan memberikan ilustrasi, tetapi Aaron baru saja melakukannya!
sumber
sumber
Iya nih. Nilai p tergantung pada ukuran sampel, sehingga sampel kecil dapat memberikan ini.
Katakan ukuran efek sebenarnya sangat kecil, dan Anda menggambar sampel kecil. Untungnya, Anda mendapatkan beberapa poin data dengan korelasi yang sangat tinggi. Nilai p akan tinggi, sebagaimana mestinya. Korelasi tinggi tetapi bukan hasil yang sangat bisa diandalkan.
Korelasi sampel dari R's cor () akan memberi Anda perkiraan korelasi terbaik (diberikan sampel). Nilai-p TIDAK mengukur kekuatan korelasi. Ini mengukur seberapa besar kemungkinan hal itu muncul seandainya sebenarnya tidak ada efek, mengingat ukuran sampel.
Cara lain untuk melihat ini: Jika Anda memiliki ukuran efek yang sama, tetapi mendapatkan lebih banyak sampel, nilai p selalu menjadi nol.
(Jika Anda ingin lebih dekat mengintegrasikan gagasan tentang perkiraan ukuran efek dan kepercayaan tentang perkiraan, mungkin lebih baik menggunakan interval kepercayaan; atau, gunakan teknik Bayesian.)
sumber
x <- seq(0,4); y <- seq(0,4) + rnorm(5); cor.test(x,y)