Estoy buscando una solución de trabajo para exactamente el mismo problema. El mejor que he encontrado es el Nulo sin restricciones Bootstrap introducido por Foulkes Andrea en su libro Estadística Aplicada Genética con R(2009). Contrariamente a todas montón de otros artículos y libros que él considera específicamente las regresiones. Además de otros métodos que asesora a la Nula sin restricciones de Bootstrap, que es adecuado donde no se puede fácilmente calcular los residuos (como en mi caso, donde I modelo de muchos independiente regresiones (básicamente correlaciones simples), cada uno con la misma variable de respuesta y diferentes snip). He encontrado que este método es también llamado el maxT método.
> 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
+ }
+ }
Una vez que tenemos todos los TestStatBoot
de la matriz (en filas hemos replicaciones bootstrap, y en las columnas tenemos bootstrap $\hat{\vec{T}^*}$ estadística) se encuentra que para los cuales $T_{\text{crit.}}$ observamos exactamente $\alpha=0.05$ por ciento de los más importantes de $\hat{\vec{T}^*}$ estadística (más significativas significa que con mayor valor absoluto de $T_{\text{crit.}}$).
Nos informan de $i$-ésimo componente del modelo significativo, si su $\hat{\vec{T}_i} > T_{\text{crit.}}$
El último paso que se puede lograr con este código
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.