目標是在不同的訓練數據框上執行多個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