为何ggpredict()未输出稳健标准误?
为什么ggpredict加稳健标准误参数后预测值不变?
这是因为稳健标准误(比如HC1)不会改变模型的系数点估计,只会修正系数的标准误、p值这类统计推断指标。而ggpredict计算的预测值(点估计)是用模型的原始系数算出来的,所以不管你有没有指定vcov_fun和vcov_type,预测值的点结果肯定和原模型完全一致。
那你设置的vcov_fun = "vcovHC", vcov_type = "HC1"是用来干嘛的?其实是让ggpredict计算预测值的置信区间/标准误时用稳健方法,而不是模型默认的标准误。你需要对比的是预测结果里的置信区间上下限,而不是点估计值。
举个实际代码例子验证:
# 加载所需包 library(ggeffects) library(lmtest) library(sandwich) library(stargazer) # 拟合基础glm模型 reg <- glm(am ~ mpg, data = mtcars, family = binomial) # 原始模型的预测结果(含默认置信区间) pred_normal <- ggpredict(reg, "mpg") # 带稳健标准误的预测结果(置信区间会变化) pred_robust <- ggpredict(reg, "mpg", vcov_fun = "vcovHC", vcov_type = "HC1") # 看点估计,完全一致 head(pred_normal$predicted) head(pred_robust$predicted) # 看置信区间,差异明显 head(pred_normal$conf.low) head(pred_robust$conf.low) head(pred_normal$conf.high) head(pred_robust$conf.high)
另外你用coeftest查看稳健结果时,也会发现系数点估计和原模型完全一致,只有标准误、p值发生了变化——这和ggpredict的逻辑是统一的:稳健估计不改变系数本身,只修正推断环节的误差项。
内容的提问来源于stack exchange,提问作者hy9fesh
相关产品推荐
相关产品推荐

