Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用for循环对不同程度的不同多项式回归模型的结果进行方差分析_R - Fatal编程技术网

如何使用for循环对不同程度的不同多项式回归模型的结果进行方差分析

如何使用for循环对不同程度的不同多项式回归模型的结果进行方差分析,r,R,我对R很陌生,我认为我的问题很简单,但我似乎无法解决它。我在这里看到过类似的问题,但我似乎无法找到解决我具体问题的方法 我正在使用作为ISLR包一部分的工资数据集,尝试将工资建模为不同多项式度的年龄函数 library(ISLR) attach(Wage) 我正在对10岁以下的人的工资进行回归,然后我想对每个模型进行方差分析,并调查结果。我得到的最接近的是这个 for (i in 1:10) { fit[[i]] <- lm(wage~poly(age, i) , da

我对R很陌生,我认为我的问题很简单,但我似乎无法解决它。我在这里看到过类似的问题,但我似乎无法找到解决我具体问题的方法

我正在使用作为ISLR包一部分的工资数据集,尝试将工资建模为不同多项式度的年龄函数

  library(ISLR) 
attach(Wage)
我正在对10岁以下的人的工资进行回归,然后我想对每个模型进行方差分析,并调查结果。我得到的最接近的是这个

  for (i in 1:10) {
    fit[[i]] <- lm(wage~poly(age, i) , data = Wage)
    result[[i]] <- aov(as.formula(paste(fit[i], "~ wage")))
  }
变量列表的类型(列表)无效(系数=c(
(截距)
=111.703608201744,
poly(年龄,i)
=447.067852758315),残差=c(
231655
=-19.3925481434428,
86582
=-28.2033380861585,
161300
=17.4500251413464,
155159
=42.5676926169455,
11443
=-42.02537778623369,
376662
=7.21810821763668,
601
=56.706172921,
37798
31081863092,
81404
=10.197404483506,
302778
=3.61466467869064,
305706
=-24.4688637359983,
8690
=-16.9669134309657,
153561
=25.41687845505336,
449654
=14.807739524331,
447660
-27.293894457631,
=95.773820436023,
301585
=7.84450555272621,
153682
=-9.2746009460634,
158226
=91.9620415895517,
11141
=-59.5891117312741,
448410
=-49.3664897185768,
305116
=50.6467025728133,
233002
=-89518,
<代码>229379
=-28.0716427246922,
86064
=-40.6412633049063,
378472
=-5.7541393181888,`1

任何帮助都将是非常感激的,并为自己是这样一个鲁莽的人而道歉


谢谢!!

要回答您的问题,您可以:

library(ISLR) 
attach(Wage)
fit <- vector("list",10)
result <- vector("list",10)
for (i in 1:10) {
    thisForm <- paste0("wage~poly(age, ",i,")")
    fit[[i]] <- lm(thisForm , data = Wage)
    result[[i]] <- aov(fit[[i]])
  }

要回答您的问题,您可以执行以下操作:

library(ISLR) 
attach(Wage)
fit <- vector("list",10)
result <- vector("list",10)
for (i in 1:10) {
    thisForm <- paste0("wage~poly(age, ",i,")")
    fit[[i]] <- lm(thisForm , data = Wage)
    result[[i]] <- aov(fit[[i]])
  }

它非常有效,你的解释对我的理解非常有帮助。非常感谢。很酷。很高兴它对你有用:)它非常有效,你的解释对我的理解非常有帮助。非常感谢。很酷。很高兴它对你有用:)
coefficients(result[[1]]) ; coefficients(fit[[1]])
 (Intercept) poly(age, i) 
    111.7036     447.0679 
 (Intercept) poly(age, i) 
    111.7036     447.0679