วิธีการรับค่า p ของสัมประสิทธิ์จากการถดถอย bootstrap?


10

จากQuick-Rของ Robert Kabacoff ฉันมี

# Bootstrap 95% CI for regression coefficients 
library(boot)
# function to obtain regression weights 
bs <- function(formula, data, indices) {
  d <- data[indices,] # allows boot to select sample 
  fit <- lm(formula, data=d)
  return(coef(fit)) 
} 
# bootstrapping with 1000 replications 
results <- boot(data=mtcars, statistic=bs, 
     R=1000, formula=mpg~wt+disp)

# view results
results
plot(results, index=1) # intercept 
plot(results, index=2) # wt 
plot(results, index=3) # disp 

# get 95% confidence intervals 
boot.ci(results, type="bca", index=1) # intercept 
boot.ci(results, type="bca", index=2) # wt 
boot.ci(results, type="bca", index=3) # disp

ฉันจะรับค่า p-ของสัมประสิทธิ์การถดถอย bootstrap ได้อย่างไร?H0:bj=0


"ค่า p" หมายถึงอะไร การทดสอบแบบเฉพาะเจาะจงใดที่มีสมมติฐานว่างเปล่า
Brian Diggs

การแก้ไข H0: bj = 0
ECII

3
คุณได้รับ /โดยขึ้นอยู่กับว่าช่วงความเชื่อมั่นไม่ได้ / ไม่รวม 0 รายละเอียดเพิ่มเติมใด ๆ ที่เป็นไปไม่ได้เนื่องจากการกระจายของพารามิเตอร์จาก bootstrap ไม่ได้เป็นพารามิเตอร์ (และทำให้คุณไม่ได้ ว่าค่าคือ 0) p<0.05p>0.05
Brian Diggs

หากคุณไม่สามารถสรุปการกระจายได้คุณจะรู้ได้อย่างไรว่า p <0.05 ถ้า CI ไม่รวม 0 นี่ถือเป็นจริงสำหรับ z หรือ t distrubutions
ECII

ฉันเข้าใจแล้ว แต่คุณสามารถพูดได้ว่า p <0.05 คุณไม่สามารถแนบค่าเฉพาะได้ใช่ไหม
ECII

คำตอบ:


8

เป็นอีกตัวแปรหนึ่งที่ค่อนข้างเรียบง่าย แต่ฉันคิดว่าส่งข้อความโดยไม่ต้องใช้ห้องสมุดอย่างชัดเจนbootซึ่งอาจทำให้บางคนสับสนกับไวยากรณ์ที่ใช้

เรามีโมเดลเชิงเส้น: ,y=Xβ+ϵϵN(0,σ2)

ต่อไปนี้เป็นพารามิเตอร์บูตสำหรับโมเดลเชิงเส้นนั้นซึ่งหมายความว่าเราไม่ได้สุ่มตัวอย่างข้อมูลดั้งเดิมของเราใหม่ แต่ที่จริงแล้วเราสร้างข้อมูลใหม่จากโมเดลที่ติดตั้งของเรา นอกจากนี้เราสมมติว่าการกระจาย bootstrapped ของสัมประสิทธิ์การถดถอยนั้นสมมาตรและนั่นคือค่าคงที่การแปล (พูดอย่างคร่าว ๆ ว่าเราสามารถย้ายแกนของมันโดยมีผลกระทบต่อคุณสมบัติของมัน) แนวคิดที่อยู่เบื้องหลังคือความผันผวนของนั้นเกิดจากและมีตัวอย่างเพียงพอที่พวกเขาควรให้การกระจายที่แท้จริงของ 's เหมือนก่อนที่เราจะทดสอบอีกครั้งและเรากำหนดค่า p เป็นββϵβH0:0=βj"ความน่าจะเป็นที่ได้รับจากสมมติฐานว่างเปล่าสำหรับการแจกแจงความน่าจะเป็นของข้อมูลว่าผลลัพธ์จะมากที่สุดเท่าที่จะมากหรือมากไปกว่าผลลัพธ์ที่สังเกต" (ซึ่งผลลัพธ์ที่สังเกตได้ในกรณีนี้คือของเรา สำหรับรุ่นดั้งเดิมของเรา) ดังนั้นที่นี่ไป:β

# Sample Size
N           <- 2^12;
# Linear Model to Boostrap          
Model2Boot  <- lm( mpg ~ wt + disp, mtcars)
# Values of the model coefficients
Betas       <- coefficients(Model2Boot)
# Number of coefficents to test against
M           <- length(Betas)
# Matrix of M columns to hold Bootstraping results
BtStrpRes   <- matrix( rep(0,M*N), ncol=M)

for (i in 1:N) {
# Simulate data N times from the model we assume be true
# and save the resulting coefficient in the i-th row of BtStrpRes
BtStrpRes[i,] <-coefficients(lm(unlist(simulate(Model2Boot)) ~wt + disp, mtcars))
}

#Get the p-values for coefficient
P_val1 <-mean( abs(BtStrpRes[,1] - mean(BtStrpRes[,1]) )> abs( Betas[1]))
P_val2 <-mean( abs(BtStrpRes[,2] - mean(BtStrpRes[,2]) )> abs( Betas[2]))
P_val3 <-mean( abs(BtStrpRes[,3] - mean(BtStrpRes[,3]) )> abs( Betas[3]))

#and some parametric bootstrap confidence intervals (2.5%, 97.5%) 
ConfInt1 <- quantile(BtStrpRes[,1], c(.025, 0.975))
ConfInt2 <- quantile(BtStrpRes[,2], c(.025, 0.975))
ConfInt3 <- quantile(BtStrpRes[,3], c(.025, 0.975))

ตามที่กล่าวถึงแนวคิดทั้งหมดคือคุณมีการกระจาย bootstrapped ของโดยประมาณของจริง (เห็นได้ชัดว่ารหัสนี้เหมาะสำหรับความเร็ว แต่อ่านง่าย :))β


16

ชุมชนและ @BrianDiggs อาจแก้ไขฉันหากฉันผิด แต่ฉันเชื่อว่าคุณสามารถรับค่า p สำหรับปัญหาของคุณได้ดังนี้ ค่า p สำหรับการทดสอบสองด้านถูกกำหนดเป็น

2min[P(Xx|H0),P(Xx|H0)]

ดังนั้นถ้าคุณสั่งสัมประสิทธิ์ bootstrapped ตามขนาดแล้วกำหนดสัดส่วนให้ใหญ่ขึ้นและน้อยลงศูนย์สัดส่วนขั้นต่ำที่สองคูณสองควรให้ค่า p

ปกติฉันจะใช้ฟังก์ชั่นต่อไปนี้ในสถานการณ์เช่นนี้:

twosidep<-function(data){
  p1<-sum(data>0)/length(data)
  p2<-sum(data<0)/length(data)
  p<-min(p1,p2)*2
  return(p)
}

4

bootstrap สามารถใช้ในการคำนวณค่าแต่จะต้องมีการเปลี่ยนแปลงรหัสของคุณ เนื่องจากฉันไม่คุ้นเคยกับ RI สามารถให้การอ้างอิงเท่านั้นที่คุณสามารถค้นหาสิ่งที่คุณต้องทำ: บทที่ 4 ของ (Davison และ Hinkley 1997)p

Davison, AC และ Hinkley, DV 1997 วิธีการ Bootstrap และการใช้งาน Cambridge: สำนักพิมพ์มหาวิทยาลัยเคมบริดจ์

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.