r - 模型包含多项式时的新预测
问题描述
我正在尝试手动预测y
新的数据向量x_new
。“手动”是指不使用该predict
功能(我的实际模型是一个不接受的mcmc
对象)。predict
像这样的简单模型很好:
lm1 <- lm(Petal.Width ~ Petal.Length + Sepal.Width + Sepal.Length, data=iris)
x_new <- c(1, 1.4, 3.2, 5.2)
y <- x_new %*% lm1$coef
但是当我的模型如下所示时,我不确定如何进行:
lm2 <- lm(Petal.Width ~ Petal.Length + Sepal.Width + poly(Sepal.Length,3), data=iris)
我究竟如何使用变量中的参数poly()
?
解决方案
您需要设置poly(., raw=TRUE)
它使用原始而不是正交多项式。比较一下,现在它们产生相同的系数:
lm2 <- lm(Petal.Width ~ Petal.Length + Sepal.Width + Sepal.Length +
I(Sepal.Length^2) + I(Sepal.Length^3), data=iris)
lm3 <- lm(Petal.Width ~ Petal.Length + poly(Sepal.Length, 3, raw=TRUE),
data=iris)
> coef(lm2)
(Intercept) Petal.Length Sepal.Width Sepal.Length I(Sepal.Length^2) I(Sepal.Length^3)
10.22126962 0.50889848 0.22999328 -5.81536464 0.98349473 -0.05626378
> coef(lm3)
(Intercept) Petal.Length Sepal.Width poly(Sepal.Length, 3, raw = TRUE)1
10.22126962 0.50889848 0.22999328 -5.81536464
poly(Sepal.Length, 3, raw = TRUE)2 poly(Sepal.Length, 3, raw = TRUE)3
0.98349473 -0.05626378
推荐阅读
- java - 如何使用 HTreeMap 填充列表
- android - 在 WebView 中显示 NEST 相机视频
- php - 如何在soap请求后隔离xml标签的内容
- java - 如何在java中使用pdfbox api从pdf中获取特定文本
- themes - 无法卸载 NetSuite SuiteCommerce 基本主题
- javascript - c3.js/bb.js 隐藏一行
- javascript - 将带有对象的数组转换为带有来自该对象的特定键的数组?
- json - 如何检查 Newtonsoft.Json.Linq.JArray 如果为 null 或获取长度
- c - 允许编译器优化 realloc 吗?
- vb.net - 计算出时间跨度,但需要分钟 00:20:00 (HH:mm:ss)