R语言入门秘录24/25:预测新的值

数据分析网整理自tbkken的《R语言入门25招》,一招招技能带你走进R语言。

问题

根据所得到的回归模型预测新的值。

解决方案

将要用于预测的数据保存到数据框中。用predict函数,将newdata参数设为这个数据框:

> m <- lm(y ~ u + v + w) 
> preds <- data.frame(u=3.1, v=4.0, w=5.5) 
> predict(m, newdata=preds)

讨论

有了线性模型,就可以很方便地做预测,predict函数会搞定所有的麻烦。唯一的麻烦就是要把你的数据整到数据框中去。
predict函数会返回一个预测值的向量,数据中每一行都会有一个相应的预测值。 解决方案中的例子只有一行,所以只有一个返回值:

> preds <- data.frame(u=3.1, v=4.0, w=5.5) 
> predict(m, newdata=preds) 
1 
12.31374

如果预测数据有多行,就会为没一行数据返回一个预测值:

> preds <- data.frame(
+               u=c(3.0, 3.1, 3.2, 3.3), 
+               v=c(3.9, 4.0, 4.1, 4.2), 
+               w=c(5.3, 5.5, 5.7, 5.9) )
> predict(m, newdata=preds)
1 2 3 4 
11.97277 12.31374 12.65472 12.99569

在这里要说明一下,新的数据中不需要有响应变量,只要有预测变量即可。因为响应变量正是你要计算的值,所以并不是输入数据中所必须的。

扩展阅读

这里的预测只是点估计。用predict的interval=”prediction”参数可以得到置信区间。

本文采用「CC BY-SA 4.0 CN」协议转载自互联网、仅供学习交流,内容版权归原作者所有,如涉作品、版权和其他问题请给「我们」留言处理。

(0)
上一篇 2016-01-18 14:55
下一篇 2016-01-20 14:55

相关文章

关注我们
关注我们
分享本页
返回顶部