首页 > 解决方案 > 在 R 中使用 anova 测试找到多项式的最佳次数

问题描述

data=structure(list(Y = c(31.2, 33.3, 35.6, 36.4, 36.7, 38.4, 40.4, 
40.3, 41.8, 40.4, 40.7, 40.1, 42.7, 44.1, 46.7, 50.6, 50.1, 51.7, 
52.9), X1 = c(492.9, 528.6, 560.3, 624.6, 666.4, 717.8, 768.2, 
843.3, 911.6, 931.1, 1021.5, 1165.9, 1349.6, 1449.4, 1575.5, 
1759.1, 1994.2, 2258.1, 2478.7), X2 = c(37.3, 38.1, 39.3, 37.8, 
38.4, 40.1, 38.6, 39.8, 39.7, 52.1, 48.9, 58.3, 57.9, 56.5, 63.7, 
61.6, 58.9, 66.4, 70.4), X3 = c(54.7, 63.7, 69.8, 65.9, 64.5, 
70, 73.2, 67.8, 79.1, 95.4, 94.2, 123.5, 129.9, 117.6, 130.9, 
129.8, 128, 141, 168.2), X4 = c(77.4, 80.2, 80.4, 83.9, 85.5, 
93.7, 106.1, 104.8, 114, 124.1, 127.6, 142.9, 143.6, 139.2, 165.5, 
203.3, 219.6, 221.6, 232.6)), class = "data.frame", row.names = c(NA, 
-19L))

我想使用不同程度的多项式构建几个多项式回归。但是问题是如何选择最优多项式次数来使用 ANOVA 测试来建模这种依赖关系?我用这种方式

fit1 <- lm(Y ~ X1 + I(X1^2)+X2 + I(X2^3)+X3 + I(X3^2)+X4 + I(X4^2), data=data)
summary(fit1)
AIC(fit1)

但是使用循环如何定义多项式的最佳次数。

多项式的最优次数是AIC最小,F值最大。

标签: rdplyr

解决方案


使用逐步回归和 AIC 标准:

fm <- lm(Y ~ .^3, data)
step(fm)

给予:

Call:
lm(formula = Y ~ X1 + X2 + X3 + X4 + X1:X2 + X1:X3 + X1:X4 + 
    X2:X3 + X2:X4 + X3:X4 + X1:X2:X4 + X2:X3:X4, data = data)

Coefficients:
(Intercept)           X1           X2           X3           X4        X1:X2  
  5.204e+00    1.388e-02   -2.004e+00    2.701e+00   -1.757e-01   -2.628e-03  
      X1:X3        X1:X4        X2:X3        X2:X4        X3:X4     X1:X2:X4  
  1.246e-03    7.076e-04   -2.836e-02    4.470e-02   -3.541e-02   -1.244e-05  
   X2:X3:X4  
  2.782e-04  

stepAICMASS 包中也有。

另一种方法是套索回归。

library(glmnet)
X <- model.matrix(fm)
fm2 <- cv.glmnet(X, data$Y)
coef(fm2, s = fm2$lambda.min)

给予:

(Intercept)  2.829759e+01
(Intercept)  .           
X1           9.319929e-03
X2          -8.658000e-02
X3           .           
X4           6.620549e-02
X1:X2        .           
X1:X3        .           
X1:X4        .           
X2:X3        .           
X2:X4        .           
X3:X4        .           
X1:X2:X3     .           
X1:X2:X4     .           
X1:X3:X4    -8.318340e-08
X2:X3:X4     .           

查看此链接以了解各种方法https://rpubs.com/McCloud77/300677


推荐阅读