【发布时间】:2016-12-16 15:07:20
【问题描述】:
在modelr 包中,函数gather_predictions 可用于将来自多个模型的预测添加到数据框,但是我不确定如何在函数调用中指定这些模型。帮助文档给出了以下示例:
df <- tibble::data_frame(
x = sort(runif(100)),
y = 5 * x + 0.5 * x ^ 2 + 3 + rnorm(length(x))
)
m1 <- lm(y ~ x, data = df)
grid <- data.frame(x = seq(0, 1, length = 10))
grid %>% add_predictions(m1)
m2 <- lm(y ~ poly(x, 2), data = df)
grid %>% spread_predictions(m1, m2)
grid %>% gather_predictions(m1, m2)
这里的模型是在函数调用中特别提到的。如果我们有一些我们想要预测的模型,那效果很好,但是如果我们有大量或未知数量的模型怎么办?在这种情况下,手动指定模型不再可行。
帮助文档对参数部分的表述方式似乎表明您需要将每个模型添加为单独的参数。
gather_predictions 和 spread_predictions 采用多个模型。这 name 将取自参数名称 型号。
例如,将模型列表输入到gather_predictions 中是行不通的。
是否有一些简单的方法可以将列表/大量模型输入到gather_predictions?
列表中 10 个模型的示例:
modelslist <- list()
for (N in 1:10) {
modelslist[[N]] <- lm(y ~ poly(x, N), data = df)
}
如果将模型以其他方式存储而不是列表效果更好,那也很好。
【问题讨论】: