我有一个关于MASS包的函数rlm的问题。
该函数通过稳健回归拟合线性模型,并具有参数na.action。用户应该可以选择指定在找到NA时要采取的操作。我显式地使用na.exclude运行该函数,以返回与输入长度相同的拟合值。但实际上NA值只是丢失了。在rlm函数中是否实现了na.操作,因为实际上更改了na的参数。行动什么也做不了?
我试图通过选项将na.action设置为na.exclude,但没有成功。实际上,我所希望的是函数返回一个拟合模型,其拟合值与输入长度相同。由于提供了这个na.action参数,我认为它也可以工作。
下面是一个简单的例子:
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)
fit_values <- fit$fitted.values
length(fit_values) # 6
length(m) #10
length(ref_a) #10
1条答案
按热度按时间ijnw1ujt1#
na.action
存储模型拟合中的信息,该信息由其他函数使用,尤其是predict
。对象fitted.values
不受影响。因此,只需使用predict
计算的拟合值,而不是$fitted.values
。创建于2023年1月13日,使用reprex v2.0.2