使用R中的CARS数据,我想创建一个具有不同度量值的多项式回归模型.

通过在线搜索,我发现了创建这些模型的两种方法:

library(tidyverse)
data(cars)

# method 1
polyreg_deg2 <- lm(dist ~ speed+I(speed^2), data=cars)
# method 2
polyreg_deg2_again <- lm(dist ~ poly(speed, degree = 2), data = cars)

coefficients(polyreg_deg2)
coefficients(polyreg_deg2_again)

以下是系数的输出:

# > coefficients(polyreg_deg2)
# (Intercept)       speed  I(speed^2) 
#   2.4701378   0.9132876   0.0999593 
# > coefficients(polyreg_deg2_again)
# (Intercept) poly(speed, degree = 2)1 poly(speed, degree = 2)2 
#    42.98000                145.55226                 22.99576

我的印象是这两种代码方法应该返回相同的模型.

请谁解释一下为什么截距和系数显示不同?

或者指出我的代码在哪里写得不正确?

如有任何帮助,我们不胜感激:)

PS. I'm still learning how to use R for stats, so apologies for my ignorance.

推荐答案

请参阅帮助页?poly.你需要raw = TRUE这个论据.

RAW:如果为真,则使用RAW而不是正交多项式.

coefficients(lm(dist ~ speed+I(speed^2), data=cars))

(Intercept)       speed  I(speed^2) 
  2.4701378   0.9132876   0.0999593

# poly raw = TRUE
coefficients(lm(dist ~ poly(speed, degree = 2, raw = TRUE), data = cars))

(Intercept) poly(speed, degree = 2, raw = TRUE)1 poly(speed, degree = 2, raw = TRUE)2 
  2.4701378                            0.9132876                            0.0999593

# poly raw = FALSE (default)
coefficients(lm(dist ~ poly(speed, degree = 2), data = cars))
(Intercept) poly(speed, degree = 2)1 poly(speed, degree = 2)2
   42.98000                145.55226                 22.99576

R相关问答推荐

按自定义数字模式对变量名称排序

在Julia中调用R函数

如何将log 2刻度上的数字转换为自然log

使用scale_x_continuous复制ggplot 2中的离散x轴

具有多个依赖变量/LHS的逻辑模型

如何使用R Shiny中的条件面板仅隐藏和显示用户输入,同时仍允许运行基础计算?

用黄土法确定区间

用值序列对行进行子集化,并标识序列开始的列

如何直接从R中的风险分数计算c指数?

在ggplot中为不同几何体使用不同的 colored颜色 比例

将饼图插入条形图

LOF中的插图短文字幕

将一个字符串向量调整为与其他字符串向量完全相同的大小

有没有一种方法可以同时对rhandsontable进行排序和从rhandsontable中删除?

KM估计的差异:SvyKm与带权重的调查

使用来自嵌套列和非嵌套列的输入的PURRR:MAP和dplyr::Mariate

判断函数未加载R中的库

填充图例什么时候会有点?

无法保存gglot的所有pdf元素

如何计算多个变量的百分比与总和的百分比?