บรรทัดล่าง
สัมประสิทธิ์สหสัมพันธ์ตัวอย่างจำเป็นต้องปฏิเสธสมมติฐานที่ว่าสัมประสิทธิ์สหสัมพันธ์จริง (Pearson) มีค่าเป็นศูนย์จะค่อนข้างเล็กเร็วเมื่อขนาดตัวอย่างเพิ่มขึ้น ดังนั้นโดยทั่วไปไม่มีคุณจะไม่สามารถไปพร้อม ๆ กันมี (ขนาด) ค่าสัมประสิทธิ์สหสัมพันธ์ขนาดใหญ่และขนาดใหญ่พร้อมกันพี -value
The Top Line (รายละเอียด)
การทดสอบที่ใช้สำหรับสัมประสิทธิ์สหสัมพันธ์ของเพียร์สันในฟังก์ชั่นเป็นวิธีที่ฉันพูดถึงด้านล่างซึ่งเป็นเวอร์ชั่นที่ได้รับการแก้ไขเล็กน้อยRcor.test
สมมติว่ามี IID bivariate เวกเตอร์สุ่มปกติที่มีความสัมพันธ์\เราต้องการที่จะทดสอบสมมติฐานที่ว่าเมื่อเทียบกับ0 ให้เป็นสัมประสิทธิ์สหสัมพันธ์ตัวอย่าง การใช้ทฤษฎีการถดถอยเชิงเส้นมาตรฐานนั้นไม่ยากที่จะแสดงให้เห็นว่าสถิติการทดสอบ
มีการแจกแจงภายใต้สมมติฐานว่าง สำหรับขนาดใหญ่ที่กระจายแนวทางมาตรฐานปกติ ดังนั้นρ ρ = 0 ρ ≠ 0 R T = R √( X1,วาย1) , ( X2,วาย2) , ... , ( Xn,วายn)ρρ = 0ρ ≠ 0R tn-2ntn-2T2T2∼F1,n-2χ21
T= r n - 2-----√( 1 - r2)------√
เสื้อn - 2nเสื้อn - 2T2ประมาณไคสแควร์กระจายด้วยระดับหนึ่งของเสรีภาพ (ภายใต้สมมติฐานที่เราได้ทำไว้ความเป็นจริง แต่การประมาณทำให้ชัดเจนยิ่งขึ้นว่าเกิดอะไรขึ้น)
T2∼ F1 , n - 2χ21
ดังนั้น
ที่คือ quantile ของการแจกแจงแบบไคสแควร์ที่มีอิสระในระดับหนึ่งq 1 - α ( 1 - α )
P ( r21 - ร2( n - 2 ) ≥ q1 - α) ≈อัลฟ่า,
Q1 - α(1−α)
ตอนนี้ให้สังเกตว่ากำลังเพิ่มขึ้นเมื่อเพิ่มขึ้น การจัดเรียงปริมาณใหม่ในคำชี้แจงความน่าจะเป็นเรามีสิ่งนั้นสำหรับทั้งหมด
เราจะได้รับการปฏิเสธสมมติฐานที่ระดับ\เห็นได้ชัดว่าด้านขวามือลดลงด้วยnr 2 | r | ≥ 1r2/(1−r2)r2อัลฟ่าn
|r|≥11+(n−2)/q1−α−−−−−−−−−−−−−√
αn
พล็อต
นี่คือพล็อตของภูมิภาคการปฏิเสธของเป็นฟังก์ชั่นของขนาดตัวอย่าง ดังนั้นสำหรับตัวอย่างเช่นเมื่อขนาดของกลุ่มตัวอย่างเกินกว่า 100, จำเป็นที่จะต้อง (แน่นอน) ความสัมพันธ์เป็นเพียงประมาณ 0.2 จะปฏิเสธ null ที่ระดับα = 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()