Seleção e desempenho de modelos em regressão logística

9

Eu tenho uma pergunta sobre seleção de modelos e desempenho de modelos em regressão logística. Eu tenho três modelos que são baseados em três hipóteses diferentes. Os dois primeiros modelos (vamos chamá-los de zex) têm apenas uma variável explicativa em cada modelo, e o terceiro (vamos chamá-lo de w) é mais complicado. Estou usando o AIC para seleção de variáveis ​​para o modelo w e depois o AIC para comparar qual dos três modelos que melhor explica a variável dependente. Descobri que o modelo w tem o AIC mais baixo e agora quero fazer algumas estatísticas de desempenho nesse modelo para ter uma idéia do poder preditivo do modelo. Como tudo o que sei é que esse modelo é melhor que os outros dois, mas não o quão bom é.

Desde que eu usei todos os dados para aprender o modelo (para poder comparar os três modelos), como devo proceder com o desempenho do modelo? Pelo que reuni, não posso apenas fazer uma validação cruzada k-fold no modelo final que obtive da seleção de modelos usando o AIC, mas preciso começar do início com todas as variáveis ​​explicativas incluídas, isso está correto? Eu acho que é o modelo final que escolhi com a AIC e quero saber o desempenho da mesma, mas percebo que treinei todos os dados para que o modelo seja tendencioso. Portanto, se eu começar do começo com todas as variáveis ​​explicativas em todas as dobras, receberei modelos finais diferentes para algumas dobras, posso escolher o modelo da dobra que deu o melhor poder preditivo e aplicá-lo ao conjunto completo de dados para comparar AIC com os outros dois modelos (zex)? Ou como isso funciona?

A segunda parte da minha pergunta é uma pergunta básica sobre excesso de parametrização. Eu tenho 156 pontos de dados, 52 é 1 o resto é 0. Eu tenho 14 variáveis ​​explicativas para escolher para o modelo w, percebo que não posso incluir tudo devido à parametrização excessiva; li que você deve usar apenas 10% do grupo da variável dependente com menos observações, o que só seria 5 para mim. Estou tentando responder a uma pergunta em ecologia, está certo selecionar as variáveis ​​iniciais que, na minha opinião, explicam melhor o dependente simplesmente baseado em ecologia? Ou como escolho as variáveis ​​explicativas iniciais? Não parece certo excluir completamente algumas variáveis.

Então, eu realmente tenho três perguntas:

  • Seria bom testar o desempenho em um modelo treinado no conjunto de dados completo com validação cruzada?
  • Caso contrário, como escolho o modelo final ao fazer a validação cruzada?
  • Como escolho as variáveis ​​iniciais para que eu queira parametrizar demais?

Desculpe por minhas perguntas confusas e minha ignorância. Sei que perguntas semelhantes foram feitas, mas ainda me sinto um pouco confusas. Aprecie quaisquer pensamentos e sugestões.

mael
fonte

Respostas:

7

É verdade que é melhor usar um conjunto de dados de teste para validar seu modelo. No entanto, você ainda pode dizer o desempenho do seu modelo nos seus dados, desde que seja honesto sobre o que fez. O que você realmente não pode fazer é dizer que isso será bem em outros dados: provavelmente não. Infelizmente, muitos artigos publicados pelo menos sugerem essa noção incorreta.

Você pergunta

está certo selecionar as variáveis ​​iniciais que, na minha opinião, explicam melhor o dependente simplesmente baseado em ecologia?

Não apenas está OK, é melhor do que qualquer esquema automatizado. De fato, essas também podem ser as variáveis finais . Depende, de certa forma, da extensão do conhecimento no campo. Se não se sabe muito sobre o que você está pesquisando, pode ser necessária uma abordagem mais exploratória. Mas se você tiver um bom motivo para pensar que determinadas variáveis ​​devem estar no modelo, coloque-as de qualquer maneira. E eu argumentaria por deixá-las lá, mesmo que não sejam significativas.

Peter Flom - Restabelece Monica
fonte
1

Se você vai fazer a seleção de modelos, acho melhor fazer uma pesquisa exaustiva e ponderar cada modelo, em vez de escolher uma cereja. Você tem apenas 14 variáveis, o que certamente é possível - 16384 modelos diferentes não são proibitivamente grandes, principalmente porque o tamanho da amostra é pequeno. Eu também examinaria os pesos normalizados, definidos por:

Wm=[euexp(-1 12[UMAEuCeu-UMAEuCm])]-1 1

1 11 1

Você também pode substituir o AIC pelo BIC ou algum outro IC baseado em penalidade para ver quanto os pesos dependem da penalidade de complexidade específica usada.

probabilityislogic
fonte
Usar o AIC em todos os modelos possíveis é um processo com extrema multiplicidade, para o qual me pergunto sobre o desempenho. Falando em amplas generalidades, nem sempre é lógico pensar nisso como um problema de seleção variável, mas como um problema de penalização (encolhimento).
precisa
Existe um processo que não possui extrema multiplicidade na seleção de modelos? Você está lidando com um espaço discreto e massivo - isso invariavelmente leva a um grande número de comparações. Penso que a questão é mais se o implícito anterior sobre os modelos é razoável.
probabilityislogic
Bem colocado. Mas acho que a maioria dos exercícios de seleção de modelos é desnecessária (ou seja, a parcimônia não é sua amiga) e o resultado de não ter antecedentes.
31712 Frank
Concordo também, acho que os fatores de Bayes são mais bem utilizados para questões de estrutura de modelo, como usar distribuição normal ou t, por exemplo. Eles não são inúteis para a seleção covariável, mas são ineficientes em comparação ao encolhimento.
probabilityislogic
Desculpe pelo meu comentário tardio, mas você conhece alguma maneira fácil de calcular isso em R? Eu tenho o AIC: s em uma lista ou matriz. Eu sou bastante novo em R, portanto, qualquer construção de função complicada é difícil. Obrigado!
Mael
0

Para responder "Poderia ser bom testar o desempenho em um modelo treinado no conjunto de dados completo com validação cruzada?" NÃO, acho que não tem problema. Você deve ajustar todos os três modelos ao mesmo subconjunto do seu conjunto de dados. Em seguida, faça a validação cruzada para ver qual é o melhor.

Estado
fonte
11
Então, se eu entendi direito, devo usar apenas um treinamento e um conjunto de testes para todos os modelos? Ainda posso usar minhas 5 variáveis ​​para o último modelo ou é um risco de excesso de parametrização? E não é um risco com apenas um conjunto de treinamento e teste - já que dependerá muito de onde a divisão estará com os poucos dados que tenho - ou isso não é motivo para preocupação? Caso contrário, parece que essa seria a maneira mais correta de fazê-lo.
Mael
0

Seria bom testar o desempenho em um modelo treinado no conjunto de dados completo com validação cruzada?

Eu acho que não. Talvez um método melhor seja avaliar cada um dos três modelos usando a validação cruzada repetida. Como você escolheu seus recursos com base no conhecimento prévio, não precisa se preocupar com a seleção de recursos. Este método permite avaliar o desempenho do modelo.

Caso contrário, como escolho o modelo final ao fazer a validação cruzada?

Depois de avaliar o desempenho do seu modelo usando a validação cruzada repetida, você poderá treinar o modelo final usando todos os dados disponíveis.

Como escolho as variáveis ​​iniciais para que eu queira parametrizar demais?

Se eu entendi corretamente: Como sugerido por um colaborador acima, você pode adicionar seus recursos com base em conhecimentos anteriores da área ou precisa executar a seleção de recursos na validação cruzada para evitar ajustes excessivos. Esse mesmo procedimento de seleção de recurso seria aplicado a todos os dados ao treinar o modelo final. Você não pode usar este modelo para relatar o desempenho generalizado do modelo, isso deve vir da estimativa de validação cruzada.

BGreene
fonte