R中的Wald测试自举估计

时间:2015-08-17 18:48:44

标签: r regression anova quantile statistics-bootstrap

我已经进行了多次回归(特别是在R中使用quantreg的多个预测变量的分位数回归)。我已经基于引导估计来估计标准误差和置信区间。现在我想测试不同分位数的估计是否彼此显着不同(Wald测试会更好)。我怎么能这样做?

FML <- as.formula(outcome ~ VAR + c1 + c2 + c3)
quantiles <- c(0.25, 0.5, 0.75)
q.Result <- rqs(FML, tau=quantiles, data, method="fn", na.action=na.omit)
q.Summary <- summary(Q.mod, se="boot", R=10000, bsmethod="mcmb",
                            covariance=TRUE)

q.Summary我提取了自举(即10000)估计值(即10000个自举B值的向量)。

注意:实际上我并不特别感兴趣地比较我所有协变量的估算值(FML),我主要想要比较VAR的估算值。最好的方法是什么?

1 个答案:

答案 0 :(得分:0)

咨询了一位同事,我们解决了使用Wald测试可以比较不同用途的估算值。

来自

生成的对象rqs
q.Summary <- summary(Q.mod, se="boot", R=10000, bsmethod="mcmb", covariance=TRUE)
在这种情况下,您为感兴趣的变量VAR提取引导的Beta值,这是每个tau FML中的第一个协变量

boot.Bs <- sapply(q.Summary, function (x) x[["B"]][,2])
B0 <- coef(summary(lm(FML, data)))[2,1] # Extract liner estimate data linear estimate

然后计算wald统计量并获得具有自由度的分位数的pvalue

Wald <- sum(apply(boot.Bs, 2, function (x) ((mean(x)-B0)^2)/var(x)))
Pvalue <- pchisq(Wald, ncol(boot.Bs), lower=FALSE)

你还想验证自举的Betas是否正常分发,如果你运行了很多taus,那么查看所有这些QQ情节可能很麻烦,所以只需按行加总吧

qqnorm(apply(boot.Bs, 1, sum))
qqline(apply(boot.Bs, 1, sum), col = 2)

这似乎有效,如果有人能想到我的解决方案有任何问题,请分享