我正在寻找有关如何在所有出现的独立/解释变量都是 NA(即x3
以下)时处理线性回归中的 NA 的建议。
我知道显而易见的解决方案是从模型中排除有问题的自变量/解释变量,但我正在遍历多个区域,并且不希望每个区域都有不同的功能形式。
下面是一些示例数据:
set.seed(23409)
n <- 100
time <- seq(1,n, 1)
x1 <- cumsum(runif(n))
y <- .8*x1 + rnorm(n, mean=0, sd=2)
x2 <- seq(1,n, 1)
x3 <- rep(NA, n)
df <- data.frame(y=y, time=time, x1=x1, x2=x2, x3=x3)
# Quick plot of data
library(ggplot2)
library(reshape2)
df.melt <-melt(df, id=c("time"))
p <- ggplot(df.melt, aes(x=time, y=value)) +
geom_line() + facet_grid(variable ~ .)
p
我已阅读文档lm
并尝试了各种na.action
设置但均未成功:
lm(y~x1+x2+x3, data=df, singular.ok=TRUE)
lm(y~x1+x2+x3, data=df, na.action=na.omit)
lm(y~x1+x2+x3, data=df, na.action=na.exclude)
lm(y~x1+x2+x3, data=df, singular.ok=TRUE, na.exclude=na.omit)
lm(y~x1+x2+x3, data=df, singular.ok=TRUE, na.exclude=na.exclude)
有没有办法让 lm 无错误地运行,并简单地返回一个系数,以反映相关变量缺乏解释能力(即零或 NA)的解释性反映?