r 预测函数返回太多值

标签 r lm predict

我已经阅读了有关命名变量的其他帖子,并尝试实现答案,但仍然为我想要运行现有模型的新数据获得太多值。这是工作示例代码:

set.seed(123)
mydata <- data.frame("y"=rnorm(100,mean=0, sd = 1),"x"=c(1:100))

mylm <- lm(y ~ x, data=mydata)

# ok so mylm is a model on 100 points - lets look at it and the data
par(mfrow=c(2,2))
plot(mylm)
par(mfrow=c(1,1))
predvals <- predict(mylm, data=mydata)
plot(mydata$x,mydata$y)
lines(predvals)

这里没有什么意外 - 一条穿过生成点的直线 - 长度均为 100 个观测值。现在我生成了 20 个具有完全相同名称的新数据点,当我通过 Predict() 运行新数据时,我期望得到 20 个点,但实际上得到了 100 个点。我错过了什么!让我发疯......

newdata <- data.frame("y"=rnorm(20,mean=0, sd = 1), "x"=c(1:20))
predvals <- predict(mylm, data=newdata)
length(newdata$y)
length(predvals)    

# quick -not elegant - way to look at it:
plot(predvals)
lines(newdata$x,newdata$y)

我需要告诉predict()只使用20个点或类似的东西吗?

最佳答案

您的问题位于 predvals <- predict(mylm, data=newdata) .

正确的电话是 predict(mylm, newdata=newdata)predict() R 中的函数采用命名参数 newdata ,不是data .

关于r 预测函数返回太多值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33309792/

相关文章:

python - 语义分割的 model.predict() 函数的结果是什么意思?

R:从 Telegram Bot 读取键盘答案

r - biglm 预测无法分配大小为 xx.x MB 的向量

r - R 中使用 lm 的可变长度不同

python - 特征的名称和顺序对预测算法有影响吗

r - 从 R gamlss 对象预测新拟合值时出错

r - 为什么 order(order(x)) 等于 R 中的 rank(x)?

r - 使用 facet_wrap 将计数和标签添加到堆积条形图

r - %T>% 函数在 R 中意味着什么?

R glm() 公式语法与 |和 >