Comment gérer les valeurs manquantes afin de préparer les données pour la sélection des fonctionnalités avec LASSO?

10

Ma situation:

  • petit échantillon: 116
  • variable de résultat binaire
  • longue liste de variables explicatives: 44
  • les variables explicatives ne venaient pas du haut de ma tête; leur choix était basé sur la littérature.
  • la plupart des cas dans l'échantillon et la plupart des variables ont des valeurs manquantes.

Approche de sélection des fonctionnalités choisie: LASSO

Le package glmnet de R ne me permet pas d'exécuter la routine glmnet, apparemment en raison de l'existence de valeurs manquantes dans mon ensemble de données. Il semble y avoir différentes méthodes pour gérer les données manquantes, donc je voudrais savoir:

  • LASSO impose-t-il des restrictions quant à la méthode d'imputation que je peux utiliser?
  • Quel serait le meilleur pari pour la méthode d'imputation? Idéalement, j'ai besoin d'une méthode que je pourrais exécuter sur SPSS (de préférence) ou R.

MISE À JOUR1: Il est devenu clair à partir de certaines des réponses ci-dessous que j'ai traité des problèmes plus fondamentaux avant d'envisager des méthodes d'imputation. Je voudrais ajouter ici de nouvelles questions à ce sujet. Sur la réponse suggérant le codage en valeur constante et la création d'une nouvelle variable pour faire face aux valeurs «non applicables» et à l'utilisation du lasso de groupe:

  • Diriez-vous que si j'utilise le groupe LASSO, je pourrais utiliser l'approche suggérée pour les prédicteurs continus également pour les prédicteurs catégoriques? Si c'est le cas, je suppose que cela équivaudrait à créer une nouvelle catégorie - je crains que cela n'introduise un biais.
  • Est-ce que quelqu'un sait si le paquet glmnet de R prend en charge le groupe LASSO? Sinon, quelqu'un pourrait-il en suggérer un autre qui le fasse en combinaison avec une régression logistique? Plusieurs options mentionnant le groupe LASSO peuvent être trouvées dans le référentiel CRAN, des suggestions des plus appropriées pour mon cas? Peut-être SGL?

Il s'agit d'un suivi d'une question précédente ( comment sélectionner un sous-ensemble de variables de ma longue liste d'origine afin d'effectuer une analyse de régression logistique? ).

OBS: Je ne suis pas statisticien.

Perplexe
la source
(1) La meilleure approche de l'imputation dépend de la proportion et de la configuration des valeurs manquantes, des relations entre les variables et des hypothèses que vous êtes prêt à formuler sur les raisons des valeurs manquantes. (2) Toute méthode d'imputation unique peut être utilisée pour fournir une entrée à LASSO; la difficulté est d'évaluer la façon dont l'imputation affecte les résultats. Je ne sais pas comment combiner l'imputation multiple avec LASSO (sans doute quelqu'un le fait), mais une comparaison informelle des résultats de différentes imputations (les mêmes prédicteurs sont-ils généralement sélectionnés?) Pourrait toujours être informatif.
Scortchi - Réintégrer Monica
@Scortchi: La plupart de mes valeurs manquantes entrent dans la catégorie «sans objet». Par exemple: dans la variable «âge de la femme adulte dans le ménage», les cas dans lesquels l'homme adulte est veuve. En fait, je suppose que je dois prendre un peu de recul ici: dois-je traiter les valeurs de 0 dans les variables continues comme des valeurs manquantes? Par exemple: 0 ans d'éducation, 0 membre du ménage entre 14 et 60 ans.
Puzzled
Il est difficile d'imaginer une situation dans laquelle vous voudriez traiter cela comme un fait inconnu concernant une femme absente plutôt que comme un fait connu concernant le ménage. La question des zéros est difficile à comprendre: demandez-vous si, par exemple, aucune année d'études n'est une valeur invraisemblable, ou 0 pourrait être utilisé pour coder une valeur manquante? (Et puis comment le saurais-je?) Il n'y a certainement aucune raison générale de traiter 0 comme indiquant une absence.
Scortchi - Réintégrer Monica
@Scortchi: À propos de la variable d'âge des femmes, je vois ce que vous voulez dire. Mais la question devient alors: comment pourrais-je coder le cas féminin absent si ce n'est pas comme NA? À propos des zéros: oui, c'était exactement ma question, désolé si ce n'était pas clair. Je pensais que le programme pourrait avoir un problème dans la gestion des valeurs nulles et qu'il pourrait ne pas «comprendre» ce que je voulais dire.
Puzzled
Vous pouvez le coder comme n'importe quelle valeur constante et introduire une variable indicatrice de présence / absence (et utiliser le groupe LASSO). Aucune raison pour laquelle LASSO ou tout autre programme de régression devrait gérer à tort les valeurs nulles pour les prédicteurs. [Veuillez ne pas prendre cela dans le mauvais sens, mais ce sont des questions très basiques, suggérant que si c'est pour le plaisir, vous voudrez peut-être commencer par des problèmes plus simples, ou que si c'est pour de vrai, vous voudrez peut-être consulter un statisticien.]
Scortchi - Réintégrer Monica

Réponses:

10

Lorsqu'un prédicteur continu contient des valeurs «non applicables», il est souvent utile de le coder en utilisant deux variables:x

x1={cwhen x is not applicablexotherwise

où est une constante, &c

x2={1when x is not applicable0otherwise

Supposons que le prédicteur linéaire de la réponse soit donné par

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

qui se résout à

η=β0+β1x1+

lorsque est mesuré, oux

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

lorsque x est «sans objet». Le choix de est arbitraire, et n'affecte pas les estimations de l'ordonnée à l'origine ou de la pente ; décrit l'effet de non applicable par rapport à .cβ0β1β2xx=c

Ce n'est pas une approche appropriée lorsque la réponse varie en fonction d'une valeur inconnue de : la variabilité du groupe `` manquant '' sera gonflée, et les estimations des coefficients d'autres prédicteurs biaisées en raison de la confusion. Mieux vaut imputer les valeurs manquantes.x

L'utilisation de LASSO pose deux problèmes:

  1. Le choix de affecte les résultats car la quantité de retrait appliquée dépend de l'ampleur des estimations de coefficient.c
  2. Vous devez vous assurer que et sont à la fois dans ou hors du modèle sélectionné.x1x2

Vous pouvez résoudre ces deux problèmes en utilisant plutôt le groupe LASSO avec un groupe comprenant et : la pénalité de norme est appliquée à la norme de la matrice orthonormalisée . (Les prédicteurs catégoriques sont les enfants-affiches du groupe LASSO - vous coderiez simplement «non applicable» comme niveau distinct, comme cela se fait souvent dans une régression non pénalisée.) Voir Meier et al (2008), JRSS B, 70 , 1, «The lasso de groupe pour la régression logistique " & grplasso .x1x2L1L2[x1 x2]

Scortchi - Réintégrer Monica
la source
Est-ce que quelqu'un sait si le paquet glmnet de R prend en charge le groupe LASSO? Sinon, quelqu'un pourrait-il en suggérer un autre qui le fasse en combinaison avec une régression logistique? Plusieurs options mentionnant le groupe LASSO peuvent être trouvées dans le référentiel CRAN, des suggestions des plus appropriées pour mon cas? Peut-être SGL?
Puzzled
Donc, diriez-vous que si j'utilise le groupe LASSO, je pourrais utiliser l'approche que vous proposez aux prédicteurs continus également aux prédicteurs catégoriques?
Puzzled
5

L'imputation multiple n'est jamais une mauvaise approche. Vous pouvez également effectuer la probabilité maximale d'informations complètes. Bon examen et comparaison ici et ici .

Mais si vous suivez cette voie, envisagez d'utiliser Stan pour ajuster l'imputation ML simultanément avec votre régression en tant que modèle bayésien unique, car LASSO est de toute façon un cas particulier de régression bayésienne .

shadowtalker
la source
J'avais mal compris la méthode d'imputation multiple, maintenant je vois qu'elle serait applicable à mon cas. J'ai modifié ma question afin de refléter cela. Savez-vous si SPSS ou R exécutent deux options que vous avez mentionnées?
Intrigué le
1
Il existe un package R miqui pourrait vous aider.
shadowtalker
2
Vous pouvez exécuter Stan via R (voir RStan ).
Scortchi - Réintégrer Monica
Des packages d'imputation multiple supplémentaires pour R incluent Ameliaet mice.
Sycorax dit Réintégrer Monica le
0

La commande CATREG dans Statistics gère les données manquantes avec LASSO. Vous pouvez exclure des cas dans la liste ou faire imputer la procédure Bien que son nom suggère qu'il s'agit de variables catégorielles, vous pouvez définir l'échelle sur Numérique pour gérer le cas continu.

JKP
la source
c'est SAS PROC CATREG, je suppose?
Ben Bolker
@JKP: J'étais tombé sur cette commande, en fait. Cependant, étant donné que ma variable externe est binaire, je suppose que la régression logistique serait plus appropriée que la régression catégorielle (CATREG) - ai-je raison? De plus, les options de CATREG semblent plutôt limitées - vous ne pouvez choisir qu'exclure les cas, remplacer les valeurs manquantes par des valeurs moyennes ou créer une catégorie supplémentaire.
Puzzled