簡體   English   中英

寫一個 function 列出所有可能的模型組合

[英]Write a function to list all possible combinations of models

我正在嘗試編寫 function 來為數據集中的變量運行所有可能的回歸模型。 我能夠讓它運行每個變量,這就是我到目前為止所擁有的。

library(tidyverse)
library(broom)
data("mtcars")
model1 <- function (DATA) {
DATA %>%
  map(~lm(mpg ~ .x, data = DATA), tidy)%>%   map(summary) %>% 
  map_dbl("adj.r.squared") %>%
  tidy %>% 
  rename(adj.r.squared = x)
}

model1(mtcars) 

我是 R 和編寫函數的新手,所以我確信它存在一些問題。 我想要所有可能模型的所有調整后的 r 平方值的小標題。 如何編寫一個 function 對兩個、三個或更多變量執行相同的操作?

我不知道有任何軟件包可以自動執行此操作。 所以,讓我們嘗試一種蠻力方法。 這個想法是手動生成所有可能的組合並對其進行迭代。

vars <- names(mtcars)[-1]

models <- list()

for (i in 1:5){
  vc <- combn(vars,i)
  for (j in 1:ncol(vc)){
    model <- as.formula(paste0("mpg ~", paste0(vc[,j], collapse = "+")))
    models <- c(models, model)
  }
}

您可以使用這些公式運行線性 model。

lapply(models, function(x) lm(x, data = mtcars))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM