You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MASS::rlm函数na.action=na.exclude参数失效问题咨询

关于MASS包rlm函数na.action参数的问题解答

核心结论

MASS::rlm函数的na.action参数并未完全实现stats::na.exclude的预期功能——它不会自动在拟合值中保留原数据NA对应的位置,直接提取fit$fitted.values只会得到非缺失观测的拟合结果(长度为6)。

原因说明

rlm函数在处理NA值时,即便指定na.exclude,内部仅会剔除含NA的观测进行模型拟合,并不会像基础包lm函数那样,将原数据中NA对应的位置以NA填充到拟合值向量中。这是rlm实现上的特性,并非参数未生效。

解决方案

要得到与输入长度一致(包含NA)的拟合值,需使用predict()函数并指定na.action=na.exclude,示例代码如下:

ref_a <- c(13.70284,11.61466,16.03751,20.70219,13.85347,22.22926,18.16462,16.39861,14.62653,13.66633)
m <- c(NA,NA,0.05286859,0.23125664,-0.55154806, 0.16420488,0.29565772 ,0.49802977, NA,NA)

fit <- MASS::rlm(m ~ ref_a, na.action = stats::na.exclude)
# 使用predict获取完整长度的拟合值
fit_values <- predict(fit, na.action = na.exclude)
length(fit_values) # 10,与输入长度一致

该方法会在原数据NA的位置填充NA,最终拟合值总长度与输入的m和ref_a保持一致。

内容的提问来源于stack exchange,提问作者Arend Lis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 00:35:35