【问题标题】:Regression in R using poly() function使用 poly() 函数在 R 中回归
【发布时间】:2018-10-10 11:28:19
【问题描述】:

R 中的函数 poly() 用于生成正交向量,有助于解释系数显着性。但是,我看不出使用它进行预测的意义。在我看来,以下两个模型(model_1 和 model_2)应该产生相同的预测。

q=1:11
v=c(3,5,7,9.2,14,20,26,34,50,59,80)
model_1=lm(v~poly(q,2))
model_2=lm(v~1+q+q^2)
predict(model_1)
predict(model_2)

但事实并非如此。为什么?

【问题讨论】:

    标签: r lm


    【解决方案1】:

    因为它们不是同一个型号。你的第二个有一个独特的协变量,而第一个有两个。

    > model_2
    
    Call:
    lm(formula = v ~ 1 + q + q^2)
    
    Coefficients:
    (Intercept)            q  
        -15.251        7.196  
    

    您应该使用I() 函数修改公式中的一个参数,以便回归将其视为协变量:

    model_2=lm(v~1+q+I(q^2))
    
    > model_2
    
    Call:
    lm(formula = v ~ 1 + q + I(q^2))
    
    Coefficients:
    (Intercept)            q       I(q^2)  
         7.5612      -3.3323       0.8774  
    

    会给出同样的预测

    > predict(model_1)
            1         2         3         4         5         6         7         8         9        10        11 
     5.106294  4.406154  5.460793  8.270210 12.834406 19.153380 27.227133 37.055664 48.638974 61.977063 77.069930 
    > predict(model_2)
            1         2         3         4         5         6         7         8         9        10        11 
     5.106294  4.406154  5.460793  8.270210 12.834406 19.153380 27.227133 37.055664 48.638974 61.977063 77.069930
    

    【讨论】:

      猜你喜欢
      • 2019-01-28
      • 2013-08-05
      • 2017-05-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-17
      • 1970-01-01
      • 2021-12-05
      相关资源
      最近更新 更多