我已经进行了多次回归(特别是在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
的估算值。最好的方法是什么?
答案 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)
这似乎有效,如果有人能想到我的解决方案有任何问题,请分享