R语言:如何提取lm_robust()模型的残差?residuals等函数无效
提取
lm_robust模型残差的有效方法 lm_robust()是estimatr包中的建模函数,它返回的对象结构和基础R的lm()不同,这也是你调用residuals()、resid()等基础函数无效的原因。以下是两种可靠的提取方式:
方式一:直接访问模型对象的内置字段
lm_robust拟合后的模型结果里自带residuals元素,直接通过索引提取即可:
# 拟合模型 model <- lm_robust(XS1 ~ rmrf + smb + hml + umd, data=df) # 提取残差 residuals_vec <- model$residuals
方式二:加载estimatr包后调用专属方法
estimatr包为lm_robust对象实现了专属的residuals方法,确保包已加载后再调用:
library(estimatr) model <- lm_robust(XS1 ~ rmrf + smb + hml + umd, data=df) residuals_vec <- residuals(model)
补充:标准化残差的计算
estimatr没有提供类似rstandard()的直接函数,但可以手动计算:
# 残差除以模型的标准误得到标准化残差 std_residuals <- model$residuals / model$sigma
内容的提问来源于stack exchange,提问作者Gabriel Guevara
相关产品推荐
相关产品推荐

