Estou ajustando uma família binomial de glm em R, e tenho um grupo inteiro de variáveis explicativas, e preciso encontrar o melhor (R ao quadrado, se uma medida for boa). Antes de escrever um script para percorrer diferentes combinações aleatórias das variáveis explicativas e depois gravar qual é o melhor, eu realmente não sei o que fazer. E a leaps
função de pulos de pacotes não parece fazer regressão logística.
Qualquer ajuda ou sugestão seria muito apreciada.
Respostas:
Métodos passo a passo e "todos os subconjuntos" geralmente são ruins. Consulte Parando Stepwise: Por que os métodos Stepwise são ruins e o que você deve usar por David Cassell e por mim (usamos SAS, mas a lição se aplica) ou Estratégias de modelagem de regressão de Frank Harrell. Se você precisar de um método automático, recomendo o LASSO ou o LAR. Um pacote LASSO para regressão logística está disponível aqui , outro artigo interessante é sobre o LASSO iterado para logística
fonte
lrm
seu livro RMS para obter mais informações).Antes de tudo, não é uma medida de qualidade de ajuste apropriada para regressão logística; use um critério de informação ou , por exemplo, como uma boa alternativa.R2 AIC BIC
A regressão logística é estimada pelo método da máxima verossimilhança, portanto,
leaps
não é usada diretamente aqui. Uma extensão deleaps
toglm()
functions é o pacote bestglm (como geralmente segue a recomendação, consulte as vinhetas).Você pode também estar interessado no artigo de David W. Hosmer, Borko Jovanovic e Stanley Lemeshow Best Subsets Regression Logistic // Biometrics Vol. 45, n. 4 (dezembro de 1989), pp. 1265-1270 (geralmente acessível através das redes da universidade).
fonte
R2R2 is not an appropriate goodness-of-fit measure for logistic regression take an information criterion AICAIC or BICBIC
bestglm
, ele usaleaps
no back-end para o cálculo! Portanto, falhará se houver NA no conjunto de dados e surgirá uma mensagem comoError in leaps.setup(x, y, wt = weights, nbest = nbest, nvmax = nvmax, : NA/NaN/Inf in foreign function call (arg 3)
Mas o que é interessante, meu conjunto de dados não possui NA, e sim alguns zeros, no entanto, essa função reclama e fornece exatamente a mensagem acima !!Uma idéia seria usar uma floresta aleatória e, em seguida, usar as medidas de importância variável que ele gera para escolher suas 8 melhores variáveis. Outra idéia seria usar o pacote "boruta" para repetir esse processo algumas centenas de vezes para encontrar as 8 variáveis que são consistentemente mais importantes para o modelo.
fonte
stats::step
função ou o mais geralMASS::stepAIC
de apoio funçãolm
,glm
(isto é, a regressão logística) eaov
familiares modelos.fonte