Tôi đang tìm kiếm một giải pháp làm việc cho chính xác cùng một vấn đề. Sản phẩm tốt nhất tôi tìm thấy là Bootstrap Null không giới hạn được giới thiệu bởi hôi của Andrea trong cuốn sách Ứng dụng di truyền thống kê với R (2009) . Trái ngược với tất cả các bài báo và sách khác, ông coi cụ thể là hồi quy. Bên cạnh các phương pháp khác, ông khuyên dùng Bootstrap Null Unrestricted Bootstrap, phù hợp khi người ta không thể dễ dàng tính toán phần dư (như trong trường hợp của tôi, trong đó tôi mô hình nhiều hồi quy độc lập (tương quan đơn giản), mỗi biến có cùng một biến phản ứng và snip khác nhau). Tôi thấy phương thức này còn được gọi là phương thức maxT .
> attach(fms)
> Actn3Bin <- > data.frame(actn3_r577x!="TT",actn3_rs540874!="AA",actn3_rs1815739!="TT",actn3_1671064!="GG")
> Mod <- summary(lm(NDRM.CH~.,data=Actn3Bin))
> CoefObs <- as.vector(Mod$coefficients[-1,1])
> B <-1000
> TestStatBoot <- matrix(nrow=B,ncol=NSnps)
> for (i in 1:B){
+ SampID <- sample(1:Nobs,size=Nobs, replace=T)
+ Ynew <- NDRM.CH[!MissDat][SampID]
+ Xnew <- Actn3BinC[SampID,]
+ CoefBoot <- summary(lm(Ynew~.,data=Xnew))$coefficients[-1,1]
+ SEBoot <- summary(lm(Ynew~.,data=Xnew))$coefficients[-1,2]
+ if (length(CoefBoot)==length(CoefObs)){
+ TestStatBoot[i,] <- (CoefBoot-CoefObs)/SEBoot
+ }
+ }
Khi chúng ta có tất cả TestStatBoot
ma trận (trong các hàng chúng ta có các bản sao bootstrap và trong các cột chúng ta đã bootstrappingT⃗ *^ thống kê) chúng tôi tìm thấy Tphê bình chúng tôi quan sát chính xác α = 0,05 phần trăm quan trọng hơn T⃗ *^ thống kê (có ý nghĩa hơn có nghĩa là với giá trị tuyệt đối lớn hơn Tphê bình).
Chúng tôi báo cáo tôi-thành phần thành phần quan trọng, nếu nó T⃗ tôi^> Tphê bình
Bước cuối cùng có thể được thực hiện với mã này
p.value<-0.05 # The target alpha threshold
digits<-1000000
library(gtools) # for binsearch
pValueFun<-function(cj)
{
mean(apply(abs(TestStatBoot)>cj/digits,1,sum)>=1,na.rm=T)
}
ans<-binsearch(pValueFun,c(0.5*digits,100*digits),target=p.value)
p.level<-(1-pnorm(q=ans$where[[1]]/digits))*2 #two-sided.