我的数据集由三个变量中的60个观察值组成,x1
和x2
是我的预测因子,y
是我的回答。问题是y
中的最后20个观测值丢失了所以我在前40个观测值上拟合了一个线性回归模型,我称之为fit
,现在我一直试图使用{{1函数生成缺失值。
我使用的回归代码是
配合< -lm(Y1A〜X1A + X2A)
其中y1a,x1a和x2a指的是前40个观测值。
我用来填写剩余值的代码是:
predict
但现在问题是我为x <- data.frame(data$x1[41:60], data$x2[41:60])
predict(fit,x,interval="prediction",level=0.95)
而不是所需的20获得了40个新值,并附带警告消息:
'newdata'有20行,但找到的变量有40行
你能告诉我我做错了什么吗?
答案 0 :(得分:1)
发送到predict
的数据框的列名必须与用于创建模型的数据框的列名匹配。如果您在上方显示x
,则名称将不相同,predict
将使用原始数据(您调用的框架data
)。
试试这个
fit <- lm(y ~ ., data[1:40,])
predict(fit, data[41:60,])