[英]How Do I Generate All Possible Combinations of the Variables In A Model In R?
假設我有一個包含多個變量的表, a
- h
,其中h
是目標/y/預測變量:
a <- rnorm(10,5,1)
b <- rnorm(10,5,1)
c <- rnorm(10,5,1)
d <- rnorm(10,5,1)
e <- rnorm(10,5,1)
f <- rnorm(10,5,1)
g <- rnorm(10,5,1)
h <- rnorm(10,5,1)
df = data.frame(a,b,c,d,e,f,g,h)
我想運行AIC以確定最好的 model 來預測h
。 為此,我需要運行df[1:7]
的每一個組合。 所以我需要以下 AIC:
lm(fomula= h ~ a+b+c+d+e+f+g)
lm(fomula= h ~ a+b+c+d+e+f)
lm(fomula= h ~ a+b+c+d+e)
以及變量的所有其他配置。 有什么辦法可以做到這一點嗎?
要獲得我嘗試過的變量的所有可能公式:
library(combinat)
combn(colnames(df[,1:7]))
但是,我只得到:
[1] "a" "b" "c" "d" "e" "f" "g"
由於上面代碼的output與我最終想要的相去甚遠。
使用step
function。這應該給你最好的 model:
step(lm(h~., df),direction = 'both', trace = 0)
Call:
lm(formula = h ~ b + e + f, data = df)
Coefficients:
(Intercept) b e f
4.3494 -0.8705 -0.3266 1.2877
這個 model 具有最低的AIC
。 您可以更改trace = 1
以查看運行的中間模型
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.