lm()中的poly():原始与正交之间的差异

ECIIA

我有

library(ISLR)
attach(Wage)

# Polynomial Regression and Step Functions

fit=lm(wage~poly(age,4),data=Wage)
coef(summary(fit))

fit2=lm(wage~poly(age,4,raw=T),data=Wage)
coef(summary(fit2))

plot(age, wage)
lines(20:350, predict(fit, newdata = data.frame(age=20:350)), lwd=3, col="darkred")
lines(20:350, predict(fit2, newdata = data.frame(age=20:350)), lwd=3, col="darkred")

预测线似乎相同,但是为什么系数如此不同?您如何在raw=T和中解释它们raw=F

我发现与产生的系数与poly(...,raw=T)匹配~age+I(age^2)+I(age^3)+I(age^4)

如果我想使用系数“手动”获得预测(不使用predict()函数),是否应该注意一些事项?我应该如何解释正交多项式的系数poly()

醋栗

默认情况下,使用raw = FALSEpoly()将计算正交多项式。它在内部用原始编码x,x ^ 2,x ^ 3,...来建立模型矩阵,然后缩放列,以使每列与先前的列正交。这不会更改拟合值,但具有的优势是,您可以看到多项式中的某个阶数是否比低阶阶数显着改善了回归。

考虑cars具有响应停止dist和驱动的简单数据speed从物理上讲,这应该具有二次关系,但是在这个(旧的)数据集中,二次项并不重要:

m1 <- lm(dist ~ poly(speed, 2), data = cars)
m2 <- lm(dist ~ poly(speed, 2, raw = TRUE), data = cars)

在正交编码中,您可以得到以下系数summary(m1)

                Estimate Std. Error t value Pr(>|t|)    
(Intercept)       42.980      2.146  20.026  < 2e-16 ***
poly(speed, 2)1  145.552     15.176   9.591 1.21e-12 ***
poly(speed, 2)2   22.996     15.176   1.515    0.136    

这表明存在高度显着的线性效应,而二阶不显着。后面的p值(即多项式中的最高阶之一)与原始编码中的相同:

                            Estimate Std. Error t value Pr(>|t|)
(Intercept)                  2.47014   14.81716   0.167    0.868
poly(speed, 2, raw = TRUE)1  0.91329    2.03422   0.449    0.656
poly(speed, 2, raw = TRUE)2  0.09996    0.06597   1.515    0.136

但是较低阶的p值会发生巨大变化。原因是在模型中m1,回归变量是正交的,而它们在以下方面高度相关m2

cor(model.matrix(m1)[, 2], model.matrix(m1)[, 3])
## [1] 4.686464e-17
cor(model.matrix(m2)[, 2], model.matrix(m2)[, 3])
## [1] 0.9794765

因此,在原始编码中,您只能解释speedifspeed^2保留在模型中的p值而且由于两个回归指标都高度相关,因此可以删除其中之一。但是,在正交编码中,speed^2仅捕获线性项尚未捕获的二次部分。然后清楚的是,线性部分是有效的,而二次部分则没有附加的意义。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类常见问题

git:本地存储库中的文件与原始文件之间的差异

来自分类Dev

快速枚举中关联值和原始值之间的差异

来自分类Dev

原始字符串和变量中的字符串之间的bash差异

来自分类Dev

分布之间的正交性

来自分类Dev

R线性回归中roll_lm和lm之间的差异

来自分类Dev

Java和C#之间的双原始精度差异

来自分类Dev

原始预测(-r)和预测(-p)之间的Vowpal Wabbit差异

来自分类Dev

原始PHP和Microsoft版本之间是否存在代码差异?

来自分类Dev

auto_ptr和原始指针之间的const差异?

来自分类Dev

StoreKit:原始购买日期和购买日期之间的差异

来自分类Dev

auto_ptr和原始指针之间的const差异?

来自分类Dev

Perl中打印之间的差异

来自分类Dev

分组中的值之间的差异

来自分类Dev

Perl中打印之间的差异

来自分类Dev

Bash中$ *和$ @之间的差异

来自分类Dev

R 中 %% 和 % 之间的差异

来自分类Dev

为什么“原始”对象和“非原始”对象之间的深浅复制差异?

来自分类Dev

Git diff没有显示不同分支上文件之间的绝对差异(所有提交之间的原始差异)

来自分类Dev

android中的getExternalCacheDir与getExternalFilesDir之间的差异

来自分类Dev

在JavaScript中找出字串之间的差异

来自分类常见问题

numpy数组中每个元素之间的差异

来自分类Dev

R中的修复和编辑之间的差异

来自分类Dev

Powershell中getElementById和getElementsByName之间的差异

来自分类Dev

VTK中顶点和点之间的差异

来自分类Dev

Clojure中IFn和Fn之间的差异

来自分类Dev

Razor中脚本渲染代码之间的差异

来自分类Dev

Modelica中向量与数组之间的差异

来自分类Dev

mahout中的StandardNaiveBayesClassifier和ComplementaryNaiveBayesClassifier之间的差异

来自分类Dev

Clojure中类型和类之间的差异

Related 相关文章

  1. 1

    git:本地存储库中的文件与原始文件之间的差异

  2. 2

    快速枚举中关联值和原始值之间的差异

  3. 3

    原始字符串和变量中的字符串之间的bash差异

  4. 4

    分布之间的正交性

  5. 5

    R线性回归中roll_lm和lm之间的差异

  6. 6

    Java和C#之间的双原始精度差异

  7. 7

    原始预测(-r)和预测(-p)之间的Vowpal Wabbit差异

  8. 8

    原始PHP和Microsoft版本之间是否存在代码差异?

  9. 9

    auto_ptr和原始指针之间的const差异?

  10. 10

    StoreKit:原始购买日期和购买日期之间的差异

  11. 11

    auto_ptr和原始指针之间的const差异?

  12. 12

    Perl中打印之间的差异

  13. 13

    分组中的值之间的差异

  14. 14

    Perl中打印之间的差异

  15. 15

    Bash中$ *和$ @之间的差异

  16. 16

    R 中 %% 和 % 之间的差异

  17. 17

    为什么“原始”对象和“非原始”对象之间的深浅复制差异?

  18. 18

    Git diff没有显示不同分支上文件之间的绝对差异(所有提交之间的原始差异)

  19. 19

    android中的getExternalCacheDir与getExternalFilesDir之间的差异

  20. 20

    在JavaScript中找出字串之间的差异

  21. 21

    numpy数组中每个元素之间的差异

  22. 22

    R中的修复和编辑之间的差异

  23. 23

    Powershell中getElementById和getElementsByName之间的差异

  24. 24

    VTK中顶点和点之间的差异

  25. 25

    Clojure中IFn和Fn之间的差异

  26. 26

    Razor中脚本渲染代码之间的差异

  27. 27

    Modelica中向量与数组之间的差异

  28. 28

    mahout中的StandardNaiveBayesClassifier和ComplementaryNaiveBayesClassifier之间的差异

  29. 29

    Clojure中类型和类之间的差异

热门标签

归档