0

我有以下数据:

显示多项式曲线的点图

这看起来是二次的。如果我使用二次曲线拟合I()我得到有意义的系数:

> modelI = lm(
   formula = Y ~ I(X^2) + I(X),
   data = df
 )

> modelI
 
 Call:
 lm(formula = Y ~ I(X^2) + I(X), data = df)
 
 Coefficients:
 (Intercept)       I(X^2)         I(X)  
   4.822e-02   -4.426e-05    3.229e-05  

我在 Excel 中使用相同的数据拟合了一条二次曲线,并得到了完全相同的系数,所以这可能是正确的。但是,当我使用 做同样的事情时poly,我得到完全错误的系数:

> modelPoly = lm(
   formula = Y ~ poly(X, degree = 2),
   data = df
 )

> modelPoly

 Call:
 lm(formula = Y ~ poly(X, degree = 2), data = df)
 
 Coefficients:
          (Intercept)  poly(X, degree = 2)1  poly(X, degree = 2)2  
             0.048067              0.002358             -0.004766  

请问这是为什么?

4

1 回答 1

1

正如@Limey 在帖子中评论的那样,问题出在正交多项式上。使用raw = TRUEinpoly()解决了这个问题。

于 2021-09-06T12:49:39.310 回答