lm () для всех пар «один-один» (столбцы) [дубликат]

Не знаю, почему работает бросок, но Foo :: MEMBER не выделяется до тех пор, пока Foo не будет загружен, и поскольку вы никогда не загружаете его, он никогда не выделяется. Если у вас есть ссылка на Foo где-то, это, вероятно, сработает.

16
задан Leo 14 March 2011 в 16:19
поделиться

3 ответа

Скажем, мы работаем с этим нелепым примером:

DF <- data.frame(Class=1:10,A=1:10,B=1:10,C=1:10)

Затем вы получаете имена столбцов

Cols <- names(DF)
Cols <- Cols[! Cols %in% "Class"]
n <- length(Cols)

Вы строите все возможные комбинации

id <- unlist(
        lapply(1:n,
              function(i)combn(1:n,i,simplify=FALSE)
        )
      ,recursive=FALSE)

Вы вставляете их в формулы

Formulas <- sapply(id,function(i)
              paste("Class~",paste(Cols[i],collapse="+"))
            )

И вы перебираете их для применения моделей.

lapply(Formulas,function(i)
    lm(as.formula(i),data=DF))

Будьте осторожны: если у вас больше нескольких колонок, это быстро станет очень тяжелым для памяти и приведет к буквально тысячам моделей. У вас есть 2 ^ n - 1 разные модели, n - число столбцов.

Убедитесь, что это то, что вы хотите, в целом такого рода сравнение моделей настоятельно рекомендуется. Забудьте о любых выводах, когда вы это сделаете.

17
ответ дан Joris Meys 18 August 2018 в 00:01
поделиться
vars<-c('a','b','c','d')
library(gregmisc) 
indexes<-unique(apply(combinations(length(vars), length(vars), repeats=T), 1, unique))
gen.form<-function(x) as.formula(paste('~',paste( vars[x],collapse='+')))
formulas<-lapply(indexes, gen.form)
formulas

Генерирует:

R> формулы

[[1]] ~ a

[[2]] ~ a + b

[[3]] ~ a + c

[[4]] ~ a + d

[[5]] ~ a + b + c

[[6]] ~ a + b + d

[[7]] ~ a + c + d

[[8]] ~ a + b + c + d

[[9]] ~ b

[[10]] ~ b + c

[[11]] ~ b + d

[[12]] ~ b + c + d

[[13]] ~ c

[[14]] ~ c + d

[[15]] ~ d

3
ответ дан Patrick McCann 18 August 2018 в 00:01
поделиться
  • 1
    Предупреждение в install.packages: пакет gregmisc недоступен (для версии R.2.2.2) – Mox 5 November 2016 в 17:40

Вот отличный комментарий в блоге от Марка Хекмана, в котором подробно описывается, как построить все возможные модели регрессии, с учетом набора объясняющих переменных и переменной ответа. Однако, как указал Йорис, я бы строго предостерег от использования такого подхода, поскольку (а) число регрессий возрастает экспоненциально и (б) статистические эксперты не рекомендуют вести промысел данных такого рода, поскольку это чревато всеми видами рисков.

3
ответ дан Ramnath 18 August 2018 в 00:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: