Como lidar com os valores ausentes para preparar dados para a seleção de recursos com o LASSO?

10

Minha situação:

  • tamanho pequeno da amostra: 116
  • variável de resultado binário
  • lista longa de variáveis ​​explicativas: 44
  • variáveis ​​explicativas não vieram do alto da minha cabeça; sua escolha foi baseada na literatura.
  • a maioria dos casos na amostra e a maioria das variáveis ​​têm valores ausentes.

Abordagem da seleção de recursos escolhida: LASSO

O pacote glmnet do R não me permite executar a rotina glmnet, aparentemente devido à existência de valores ausentes no meu conjunto de dados. Parece haver vários métodos para lidar com dados ausentes, então eu gostaria de saber:

  • O LASSO impõe alguma restrição em termos do método de imputação que eu posso usar?
  • Qual seria a melhor aposta para o método de imputação? Idealmente, preciso de um método que eu possa executar no SPSS (preferencialmente) ou R.

ATUALIZAÇÃO 1: Ficou claro a partir de algumas das respostas abaixo que eu lidei com questões mais básicas antes de considerar os métodos de imputação. Eu gostaria de adicionar aqui novas perguntas sobre isso. Na resposta que sugere a codificação como valor constante e a criação de uma nova variável para lidar com valores 'não aplicáveis' e o uso do laço de grupo:

  • Você diria que, se eu usar o grupo LASSO, seria capaz de usar a abordagem sugerida para preditores contínuos também para preditores categóricos? Nesse caso, suponho que seria equivalente a criar uma nova categoria - desconfio que isso possa introduzir viés.
  • Alguém sabe se o pacote glmnet do R suporta o grupo LASSO? Caso contrário, alguém sugeriria outro que faça isso em combinação com a regressão logística? Várias opções que mencionam o grupo LASSO podem ser encontradas no repositório CRAN, alguma sugestão das mais apropriadas para o meu caso? Talvez SGL?

Este é um acompanhamento de uma pergunta anterior minha ( como selecionar um subconjunto de variáveis ​​da minha lista longa original para realizar análise de regressão logística? ).

OBS: Eu não sou estatístico.

Intrigado
fonte
(1) A melhor abordagem para a imputação depende da proporção e padrão dos valores ausentes, das relações entre as variáveis ​​e de quais suposições você está preparado para fazer sobre os motivos dos valores ausentes. (2) Qualquer método de imputação único pode ser usado para fornecer informações ao LASSO; a dificuldade está em avaliar como a imputação afeta os resultados. Não sei como combinar imputação múltipla com o LASSO (sem dúvida, alguém sabe), mas uma comparação informal de resultados de diferentes execuções de imputação (os mesmos preditores são geralmente selecionados?) Ainda pode ser informativa.
Scortchi - Restabelece Monica
@ Scortchi: A maioria dos meus valores ausentes se enquadra na categoria 'não aplicável'. Por exemplo: Na variável 'idade da mulher adulta no domicílio', casos em que o homem adulto é viúvo. Na verdade, acho que preciso dar um passo atrás aqui: devo tratar valores de 0 em variáveis ​​contínuas como valores ausentes? Por exemplo: 0 anos de estudo, 0 membros da família entre 14 e 60 anos.
quer
É difícil imaginar uma situação em que você gostaria de tratá-lo como um fato desconhecido sobre uma mulher ausente, e não um fato conhecido sobre a família. A pergunta sobre zeros é difícil de entender: você está perguntando se, por exemplo, nenhum ano de educação é um valor implausível ou 0 pode ser usado para codificar um valor ausente? (E então como eu saberia?) Certamente não há razão geral para tratar 0 como indicando falta.
Scortchi - Restabelecer Monica
@ Scortchi: Sobre a variável idade feminina, entendo o que você quer dizer. Mas a questão se torna: como eu codificaria o caso feminino ausente, se não como NA? Sobre zeros: sim, essa foi exatamente a minha pergunta, desculpe se não estava claro. Eu pensei que o programa pudesse ter algum problema ao lidar com valores zero e que talvez não "entendesse" o que eu quis dizer com ele.
quer
Você pode codificá-lo como qualquer valor constante e introduzir uma variável indicadora de presença / ausência (e usar o grupo LASSO). Não há razão para que o LASSO ou qualquer outro programa de regressão deva manipular valores zero para preditores de maneira incorreta. [Por favor, não tome isso da maneira errada, mas estas são perguntas muito básicas, sugerindo que, se for por diversão, você pode começar com problemas mais simples ou, se for real, poderá consultar um estatístico.]
Scortchi - Restabelecer Monica

Respostas:

10

Quando um preditor contínuo contém valores 'não aplicáveis', geralmente é útil codificá-lo usando duas variáveis:x

x1={cwhen x is not applicablexotherwise

onde é uma constante, &c

x2={1when x is not applicable0otherwise

Suponha que o preditor linear para a resposta seja dado por

η=β0+β1x1+β2x2+

que resolve

η=β0+β1x1+

quando é medido, ou parax

η=β0+β1c+β2+

quando x é 'não aplicável'. A escolha de é arbitrária e não afeta as estimativas da interceptação ou da inclinação ; descreve o efeito de ser 'não aplicável' comparado a quando .cβ0β1β2xx=c

Essa não é uma abordagem adequada quando a resposta varia de acordo com um valor desconhecido de : a variabilidade do grupo 'ausente' será inflada e as estimativas dos coeficientes de outros preditores são tendenciosas devido a confusão. Melhor imputar valores ausentes.x

O uso do LASSO apresenta dois problemas:

  1. A escolha de afeta os resultados, pois a quantidade de retração aplicada depende das magnitudes das estimativas do coeficiente.c
  2. Você precisa garantir que e estejam dentro ou fora do modelo selecionado.x1x2

Você pode resolver esses dois usando em vez do LASSO grupo com um grupo compreendendo & : o pena -norm é aplicada ao -norm do orthonormalized matriz . (Os preditores categóricos são o filho do pôster do grupo LASSO - você apenas codificaria 'não aplicável' como um nível separado, como costuma ser feito em regressão não compensada.) Veja Meier et al (2008), JRSS B, 70 , 1, "The laço de grupo para regressão logística " & grplasso .x1x2L1L2[x1 x2]

Scortchi - Restabelecer Monica
fonte
Alguém sabe se o pacote glmnet do R suporta o grupo LASSO? Caso contrário, alguém sugeriria outro que faça isso em combinação com a regressão logística? Várias opções que mencionam o grupo LASSO podem ser encontradas no repositório CRAN, alguma sugestão das mais apropriadas para o meu caso? Talvez SGL?
quer
Então, você diria que, se eu usar o grupo LASSO, seria capaz de usar a abordagem sugerida aos preditores contínuos também aos preditores categóricos?
quer
5

A imputação múltipla nunca é uma abordagem ruim. Você também pode obter a probabilidade máxima de informações completas. Boa revisão e comparação aqui e aqui .

Mas se você estiver seguindo esse caminho, considere usar Stan para ajustar a imputação do ML simultaneamente à sua regressão como um único modelo bayesiano, já que o LASSO é um caso especial de regressão bayesiana de qualquer maneira .

shadowtalker
fonte
Eu tinha entendido mal o método de imputação múltipla, agora vejo que seria aplicável ao meu caso. Eu editei minha pergunta para refletir isso. Você sabe se o SPSS ou R executa duas opções que você mencionou?
quer
11
Há um pacote R mique pode ajudá-lo.
shadowtalker
2
Você pode executar Stan através de R (consulte RStan ).
Scortchi - Restabelecer Monica
Pacotes adicionais de imputação adicionais para R incluem Ameliae mice.
Sycorax diz Restabelecer Monica
0

O comando CATREG no Statistics lida com dados ausentes com o LASSO. Você pode excluir casos de maneira listada ou imputar o procedimento Embora o nome sugira que seja para variáveis ​​categóricas, você pode definir a escala como Numérico para lidar com o caso contínuo.

JKP
fonte
isso é SAS PROC CATREG, eu acho?
precisa
@JKP: Na verdade, encontrei esse comando. No entanto, considerando que minha variável inicial é binária, estou assumindo que a regressão logística seria mais apropriada do que a regressão categórica (CATREG) - estou certo? Além disso, as opções no CATREG parecem bastante limitadas - você só pode escolher entre excluir casos, substituir valores ausentes por valores médios ou criar uma categoria extra.
quer