目标是在不同的训练数据框上执行多个logit回归,然后评估各个测试数据集的性能。通过不同的数据帧回路回归
首先,我们从df
创建多个(5)随机取样的数据帧:
for(i in 1:5) {
nr <- paste("random_df", i, sep = "_")
assign(nr, random_df[sample(nrow(df)),])
}
然后,我们创建用于分离指标分成训练 - 和测试集:
train <- 1:(length(df$y)*0.8)
test <- !(1:nrow(df) %in% train)
现在我们想要在每个训练数据框上循环logit回归。这是第一个问题,因为我们只能将输出创建为矩阵或列表。 此外,我们也创造了随机样本的列表,数据帧或矩阵:
lr_list <- list(random_df_1,random_df_2,random_df_3,random_df_4,random_df_5)
然后,我们遍历列表中的所有数据帧分对数回归:
for(i in 1:5) {
index <- paste("lr_train", i, sep = "_")
assign(index, lapply(lr_list, function(x) {glm(y ~ x1 + x2, data=x,
subset=train, family=binomial)}))
}
这里lapply
创建一个列表和每个估计结果的矩阵。
的目标是获得在一个glm
对象的形式的输出,以便进行使用每个列车GLM预测,从而能够评价在不同的测试 - /列车数据星座模型性能:
lr_test_1 <- predict(lr_train_1, random_df_1[test, ], type="response")
任何帮助,非常感谢。
你应该看看'modelr'包。它使得很多东西变得更加简单:https://github.com/tidyverse/modelr –
Thanks @AndrewBrēza您可以给我一个提示,说明如何重新采样,而不是评估多个列车上的模型,并测试使用'modelr'package设置**? – Dima