Escolhendo variáveis ​​a serem incluídas em um modelo de regressão linear múltipla

35

Atualmente, estou trabalhando para construir um modelo usando uma regressão linear múltipla. Depois de mexer no meu modelo, não tenho certeza de como determinar melhor quais variáveis ​​manter e quais remover.

Meu modelo começou com 10 preditores para o DV. Ao usar todos os 10 preditores, quatro foram considerados significativos. Se eu remover apenas alguns dos preditores obviamente incorretos, alguns dos meus preditores que não foram inicialmente significativos se tornam significativos. O que me leva à minha pergunta: como determinar quais preditores incluir em seu modelo? Pareceu-me que você deveria executar o modelo uma vez com todos os preditores, remover aqueles que não são significativos e executar novamente. Mas se remover apenas alguns desses preditores torna outros significativos, fico me perguntando se estou adotando a abordagem errada para tudo isso.

Acredito que esse tópico seja semelhante à minha pergunta, mas não tenho certeza se estou interpretando a discussão corretamente. Talvez esse seja um tópico de design experimental, mas talvez alguém tenha alguma experiência que possa compartilhar.

cryptic_star
fonte
A resposta para isso depende muito de seus objetivos e exigências: você está procurando uma associação simples ou está procurando uma previsão; quão alto você está em interpretabilidade; você tem alguma informação sobre as variáveis ​​de outras publicações que possam influenciar o processo; que tal interações ou versões transformadas das variáveis: você pode incluí-las; etc. Você precisa especificar mais detalhes sobre o que está tentando fazer para obter uma boa resposta.
Nick Sabbe
Com base no que você pediu, isso será feito por previsão. A influência em outras variáveis ​​apenas oferece uma possível associação. Não há interações entre eles. Apenas um valor precisa ser transformado, e isso foi feito.
Cryptic_star
11
Existe uma teoria que diz quais preditores você deve incluir? Se você tiver muitas variáveis ​​que mediu e nenhuma teoria, eu recomendaria realizar um conjunto de observações para que você possa testar seu modelo em dados que não foram usados ​​para criá-lo. Não é correto testar e validar um modelo nos mesmos dados.
Michelle
Validação cruzada (como Nick Sabbe discute), métodos penalizados (Dikran Marsupial) ou escolha de variáveis ​​baseadas na teoria anterior (Michelle) são todas as opções. Mas observe que a seleção de variáveis ​​é intrinsecamente uma tarefa muito difícil. Para entender por que é tão potencialmente complicado, pode ajudar a ler minha resposta aqui: algoritmos para seleção automática de modelo . Por fim, vale a pena reconhecer que o problema está na estrutura lógica dessa atividade, não no fato de o computador fazer isso por você automaticamente ou manualmente.
gung - Restabelece Monica
Verifique também as respostas a este post: stats.stackexchange.com/questions/34769/...
jokel

Respostas:

19

Com base na sua reação ao meu comentário:

Você está procurando previsão. Portanto, você não deve realmente confiar na (in) significância dos coeficientes. Você seria melhor

  • Escolha um critério que descreva melhor as suas previsões (por exemplo, taxa de classificação incorreta, AUC do ROC, alguma forma com pesos, ...)
  • Para cada modelo de interesse , avalie este critério. Isso pode ser feito, por exemplo, fornecendo um conjunto de validação (se você tiver sorte ou for rico), através de validação cruzada (normalmente dez vezes) ou qualquer outra opção que seu critério de interesse permita. Se possível, encontre também uma estimativa da SE do critério para cada modelo (por exemplo, usando os valores nas diferentes dobras na validação cruzada)
  • Agora você pode escolher o modelo com o melhor valor do critério, embora seja geralmente recomendável escolher o modelo mais parcimonioso (menos variáveis) que esteja dentro de um SE do melhor valor.

Escreva cada modelo de interesse : aqui está um problema. Com 10 preditores de potencial, isso é um caminhão cheio de modelos em potencial. Se você tiver tempo ou processadores para isso (ou se seus dados forem pequenos o suficiente para que os modelos se ajustem e sejam avaliados com rapidez suficiente): tenha uma bola. Caso contrário, você pode fazer isso por suposições, modelagem direta ou reversa (mas usando o critério em vez de significância), ou melhor ainda: use algum algoritmo que escolha um conjunto razoável de modelos. Um algoritmo que faz isso é a regressão penalizada, em particular a regressão de Lasso. Se você estiver usando R, basta conectar o pacote glmnet e você está pronto para começar.

Nick Sabbe
fonte
+1, mas você poderia explicar por que exatamente "selecionaria o modelo mais parcimonioso (menos variáveis) que está dentro de um SE com o melhor valor"?
Rolando2
A parcimônia é, para a maioria das situações, uma propriedade desejada: aumenta a interpretabilidade e reduz o número de medições necessárias para que um novo sujeito use o modelo. O outro lado da história é que o que você obtém para o seu critério é apenas uma estimativa, com a correspondência do SE: eu já vi vários gráficos mostrando as estimativas do critério em relação a algum parâmetro de ajuste, onde o melhor valor era apenas uma exceção pico. Como tal, a regra 1 SE (que é arbitrária, mas é uma prática aceita) protege você disso com o valor agregado de fornecer mais parcimônia.
Nick Sabbe
13

Não há uma resposta simples para isso. Quando você remove algumas das variáveis ​​explicativas não significativas, outras que estão correlacionadas com essas podem se tornar significativas. Não há nada errado com isso, mas faz a seleção de modelos pelo menos parcialmente arte e não ciência. É por isso que os experimentos visam manter variáveis ​​explicativas ortogonais entre si, para evitar esse problema.

Tradicionalmente, os analistas adicionavam e subtraíam passo a passo as variáveis ​​uma por vez (semelhante ao que você fez) e as testaram individualmente ou em pequenos grupos com testes t ou F. O problema é que você pode perder alguma combinação de variáveis ​​para subtrair (ou adicionar) onde o efeito combinado (ou não efeito) está oculto pela colinearidade.

Com o poder computacional moderno, é possível ajustar todas as 2 ^ 10 = 1024 combinações possíveis de variáveis ​​explicativas e escolher o melhor modelo por um dos vários critérios possíveis, por exemplo, AIC, BIC ou poder preditivo (por exemplo, capacidade de prever os valores de um subconjunto de teste dos dados que você separou do conjunto usado para ajustar seu modelo). No entanto, se você estiver testando (implícita ou explicitamente) os modelos 1024, precisará repensar seus valores-p da abordagem clássica - trate com cuidado ...

Peter Ellis
fonte
Obrigado pela caminhada de alto nível pelas vantagens e desvantagens de ambos os lados. Isso confirmou muito do que eu suspeitava.
Cryptic_star 18/01/12
11

Se você está interessado apenas em desempenho preditivo, provavelmente é melhor usar todos os recursos e usar regressão de crista para evitar o excesso de ajuste na amostra de treinamento. Este é essencialmente o conselho dado no apêndice da monografia de Millar sobre "seleção de subconjuntos em regressão" , por isso vem com um pedigree razoável!

A razão para isso é que, se você escolher um subconjunto com base em uma estimativa de desempenho com base em uma amostra fixa de dados (por exemplo, AIC, BIC, validação cruzada etc.), o critério de seleção terá uma variação finita e, portanto, é possível sobrepor o próprio critério de seleção. Em outras palavras, para começar, à medida que você minimiza o critério de seleção, o desempenho da generalização melhorará; no entanto, chegará um momento em que quanto mais você reduzir o critério de seleção, pior será a generalização. Se você não tiver sorte, poderá facilmente terminar com um modelo de regressão com desempenho pior do que o iniciado (por exemplo, um modelo com todos os atributos).

Isso é especialmente provável quando o conjunto de dados é pequeno (portanto, o critério de seleção tem uma alta variação) e quando existem muitas opções possíveis de modelo (por exemplo, escolhendo combinações de recursos). A regularização parece ser menos propensa a ajustes excessivos, pois é um parâmetro escalar que precisa ser ajustado e isso fornece uma visão mais restrita da complexidade do modelo, ou seja, menos graus efetivos de liberdade com os quais o ajuste é excessivo .

Dikran Marsupial
fonte
0

Use a biblioteca de saltos. Quando você plota as variáveis, o eixo y mostra R ^ 2 ajustado. Você observa onde as caixas são pretas com o R ^ 2 mais alto. Isso mostrará as variáveis ​​que você deve usar para sua regressão linear múltipla.

Exemplo de vinho abaixo:

library(leaps)
regsubsets.out <-
  regsubsets(Price ~ Year + WinterRain + AGST + HarvestRain + Age + FrancePop,
         data = wine,
         nbest = 1,       # 1 best model for each number of predictors
         nvmax = NULL,    # NULL for no limit on number of variables
         force.in = NULL, force.out = NULL,
         method = "exhaustive")
regsubsets.out

#----When you plot wherever R^2 is the highest with black boxes,
#so in our case AGST + HarvestRain + WinterRain + Age and the dependent var.is Price----#
summary.out <- summary(regsubsets.out)
as.data.frame(summary.out$outmat)
plot(regsubsets.out, scale = "adjr2", main = "Adjusted R^2")
zschleien
fonte
Isso não parece muito diferente da seleção dos 'melhores subconjuntos', que possui problemas conhecidos.
gung - Restabelece Monica
leaps calcula explicitamente os 'melhores subconjuntos', embora não seja aconselhável como selecionar entre subconjuntos de tamanhos diferentes. (Sendo um assunto entre você e seu clero estatística.)
steveo'america
Curiosamente, leapsé baseado no "código FORTRAN77 de Alan Miller, [...] que é descrito em mais detalhes em seu livro 'Seleção de subconjuntos em regressão'" ", um livro mencionado por Dikran em outra resposta a esta pergunta :-)
jorijnsmit 18/09
-2

Por que não fazer a análise de correlação Primeiro e depois incluir na regressão apenas aqueles que se correlacionam com Dv?

anna
fonte
2
Geralmente, essa é uma maneira ruim de escolher quais variáveis ​​selecionar; consulte Por exemplo, o uso da matriz de correlação para selecionar preditores para a regressão está correto? Uma análise de correlação é bem diferente da regressão múltipla, porque no último caso, precisamos pensar em "parcializar" (as inclinações da regressão mostram o relacionamento uma vez que outras variáveis ​​são levadas em consideração ), mas uma matriz de correlação não mostra isso.
7788 Silverfish
Isso não fornece uma resposta para a pergunta. Depois de ter reputação suficiente, você poderá comentar qualquer postagem ; em vez disso, forneça respostas que não exijam esclarecimentos do solicitante . - Da avaliação
Sycorax diz Reinstate Monica
11
@ GeneralAbrial Parece-me que essa é uma resposta para a pergunta, embora breve. Não é uma boa solução para o problema, mas é para isso que servem os votos positivos / negativos. (Eu acho que o "por que não" pretende ser uma pergunta retórica, em vez de um pedido de esclarecimento do autor.)
Silverfish
-4

Meu orientador ofereceu outra maneira possível de fazer isso. Execute todas as suas variáveis ​​uma vez e remova aquelas que não atingem algum limite (definimos nosso limite como p <0,25). Continue iterando dessa maneira até que todas as variáveis ​​caiam abaixo do valor 0,25 e, em seguida, relate os valores significativos.

cryptic_star
fonte
11
Olá pessoal, foi o que Peter Ellis mencionou no segundo parágrafo de sua resposta. Sua segunda frase ali cobre o problema que esta técnica introduz. Você tem uma teoria que está lhe dizendo quais preditores colocar no seu modelo?
Michelle
Sim, a @Michelle tem razão em ressaltar a responsabilidade dessa abordagem. Pode produzir resultados muito arbitrários.
Rolando2
Sim, existe uma teoria por trás de tudo, na qual esperamos expandir. Em particular, estamos analisando como certas dicas sociais (como a fala) interagem. Estamos cientes de quais possuem ou ainda não têm influência. No entanto, estamos tentando fornecer versões mais refinadas. Portanto, o discurso pode ser dividido em perguntas, opiniões, avaliações etc.
cryptic_star
2
Ok, então você está fazendo uma análise exploratória. :) Você pode tentar combinações diferentes, mas precisará testar o modelo com o qual você obtém novos dados. Por definição, com o que você está fazendo, você terá o "melhor" modelo para seus dados, mas poderá não funcionar se você coletar outro conjunto de dados.
Michelle