如何使用ANOVA函数对列表中保存的多个模型进行分析?

我有一个包含多个线性回归模型的列表,像这样:

> list[[1]]Call:lm(formula = formula, data = data)Coefficients:(Intercept)           V1    512.91937     -0.04731  [[2]]Call:lm(formula = formula, data = data)Coefficients:(Intercept)           V2    499.34648     -0.01863  [[3]]Call:lm(formula = formula, data = data)Coefficients:(Intercept)           V3     504.0089      -0.0271

ANOVA函数主要用于选择最佳模型,因此它允许比较n个模型。也就是说:

anova(model1,model2,model3,...,modeln)

所以我想做的是类似的事情。当你有三个模型时,没有问题,但我有一个包含100个模型的列表,而且可能会更多。因此,我需要手动保存这一步。我需要类似于下面的操作:

anova(list[[1]],list[[2]],...,list[[n]])

apply家族的函数可能会有用,但我不知道具体怎么用。


回答:

你可以使用do.call来实现

> l <- replicate(10, lm(rnorm(10) ~ 1), simplify = FALSE) > do.call(anova, l)Analysis of Variance TableModel  1: rnorm(10) ~ 1Model  2: rnorm(10) ~ 1Model  3: rnorm(10) ~ 1Model  4: rnorm(10) ~ 1Model  5: rnorm(10) ~ 1Model  6: rnorm(10) ~ 1Model  7: rnorm(10) ~ 1Model  8: rnorm(10) ~ 1Model  9: rnorm(10) ~ 1Model 10: rnorm(10) ~ 1   Res.Df     RSS Df Sum of Sq F Pr(>F)1       9 12.8275                      2       9  5.6966  0    7.1309         3       9 11.3766  0   -5.6801         4       9 12.2143  0   -0.8376         5       9  6.1445  0    6.0697         6       9 14.0516  0   -7.9071         7       9  6.5769  0    7.4748         8       9  8.5335  0   -1.9566         9       9  4.4292  0    4.1042         10      9  9.0037  0   -4.5745     

不过,你确定要对这些看起来不是嵌套模型的模型进行这样的操作吗?此外,你应该避免定义与base函数同名的对象,比如list

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注