2015-12-14 3 views
1

Я пытаюсь провести ступенчатую логическую регрессию по r с дихотомическим DV. Я исследовал функцию STEP, которая использует AIC для выбора модели, которая требует по существу наличия NUll и FULL-модели. Вот синтаксис я пытался (у меня есть много капельниц, но N является 100,000):Синтаксис для ступенчатой ​​логистической регрессии в r

Full = glm(WouldRecommend_favorability ~ i1 + i2 + i3 + i4 + i5 + i6.....i83 + b14 + 
             Shift_recoded, data = ee2015, family = "binomial") 
Nothing = glm(WouldRecommend_favorability ~ 1, data = ee2015, family = "binomial") 
Full_Nothing_Step = step(Nothing, scope = Full,Nothing, scale = 0, direction = c('both'), 
         trace = 1, keep = NULL, steps = 1000, k = 2) 

Одна вещь, я не уверен, о том порядке, в котором «ничего» и «Full» следует ввести в формулу шага. Какой бы путь я стараюсь, когда я печатаю резюме «Full_Nothing_Step,» это только дает мне сводку либо «ничего» или «Full:»

Call: 
glm(formula = WouldRecommend_favorability ~ 1, family = "binomial", 
    data = ee2015) 

Deviance Residuals: 
    Min  1Q Median  3Q  Max 
-2.8263 0.1929 0.1929 0.1929 0.1929 

Coefficients: 
      Estimate Std. Error z value Pr(>|z|)  
(Intercept) 3.97538 0.01978  201 <2e-16 *** 
--- 
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 

(Dispersion parameter for binomial family taken to be 1) 

Null deviance: 25950 on 141265 degrees of freedom 
Residual deviance: 25950 on 141265 degrees of freedom 
AIC: 25952 

Number of Fisher Scoring iterations: 6 

Я довольно знакомы с логистической регрессии в целом, но я новый к R.

ответ

2

Как указано в документации, вы можете ввести область действия в виде формулы и или список с верхними и нижними границами для поиска.

В приведенном ниже примере моя первоначальная модель - lm1, затем я выполняю пошаговую процедуру в обоих направлениях. Оценки этой процедуры выбора - это модель со всеми условиями взаимодействия, а нижняя граница - все члены. Вы можете легко адаптировать это к модели glm и добавить дополнительные аргументы, которые вы хотите.

Обязательно прочитайте страницу справки.

lm1 <- lm(Fertility ~ ., data = swiss) 

slm1 <- step(lm1, scope = list(upper = as.formula(Fertility ~ .^2), 
           lower = as.formula(Fertility ~ .)), 
      direction = "both") 
+0

Обратите внимание, что вызовы 'as.formula' в аргументе области необязательны. Просто подчеркивая, что вам не нужно оценивать модели перед выполнением пошаговой процедуры. Например, работает 'upper = Fertility ~.^2'. – Raad

+0

Вы можете немного сократить это немного до 'list (upper = ~.^2, lower = lm1)' – user20650

Смежные вопросы