Sélection et performances des modèles en régression logistique

9

J'ai une question sur la sélection des modèles et les performances des modèles en régression logistique. J'ai trois modèles basés sur trois hypothèses différentes. Les deux premiers modèles (nommons-les z et x) n'ont qu'une seule variable explicative dans chaque modèle, et le troisième (nommons-le w) est plus compliqué. J'utilise AIC pour la sélection des variables pour le modèle w, puis AIC pour comparer lequel des trois modèles qui explique le mieux la variable dépendante. J'ai trouvé que le modèle w a le plus faible AIC et je veux maintenant faire des statistiques de performance sur ce modèle pour avoir une idée du pouvoir prédictif du modèle. Puisque tout ce que je sais, c'est que ce modèle est meilleur que les deux autres mais pas à quel point il est bon.

Depuis que j'ai utilisé toutes les données pour apprendre le modèle (pour pouvoir comparer les trois modèles), comment dois-je procéder avec les performances du modèle? D'après ce que j'ai rassemblé, je ne peux pas simplement faire une validation croisée k-fold sur le modèle final que j'ai obtenu de la sélection de modèle en utilisant AIC, mais je dois commencer par le début avec toutes les variables explicatives incluses, est-ce correct? Je pense que c'est le modèle final que j'ai choisi avec AIC que je veux savoir comment il fonctionne, mais je me rends compte que je me suis entraîné sur toutes les données afin que le modèle soit biaisé. Donc, si je commence par le début avec toutes les variables explicatives dans tous les plis, j'obtiendrai différents modèles finaux pour certains plis, puis-je simplement choisir le modèle du pli qui a donné le meilleur pouvoir prédictif et l'appliquer à l'ensemble de données complet pour comparer AIC avec les deux autres modèles (z et x)? Ou comment ça marche?

La deuxième partie de ma question est une question de base sur la sur-paramétrisation. J'ai 156 points de données, 52 est 1, le reste est 0. J'ai 14 variables explicatives à choisir pour le modèle w, je me rends compte que je ne peux pas tout inclure en raison de la sur-paramétrage, j'ai lu que vous ne devriez utiliser que 10% du groupe de la variable dépendante avec le moins d'observations qui serait seulement 5 pour moi. J'essaie de répondre à une question en écologie, est-ce correct de sélectionner les variables de départ qui, je pense, expliquent le mieux la dépendance simplement en fonction de l'écologie? Ou comment choisir les variables explicatives de départ? Ne semble pas juste d'exclure complètement certaines variables.

J'ai donc vraiment trois questions:

  • Serait-il possible de tester les performances sur un modèle formé sur l'ensemble de données complet avec validation croisée?
  • Sinon, comment choisir le modèle final lors de la validation croisée?
  • Comment choisir les variables de départ pour que je veuille sur-paramétrer?

Désolé pour mes questions en désordre et mon ignorance. Je sais que des questions similaires ont été posées, mais je me sens toujours un peu confus. Appréciez toutes vos pensées et suggestions.

mael
la source

Réponses:

7

Il est vrai qu'il vaut mieux utiliser un ensemble de données de test pour valider votre modèle. Cependant, vous pouvez toujours dire à quel point votre modèle a fonctionné sur vos données, tant que vous êtes honnête au sujet de ce que vous avez fait. Ce que vous ne pouvez pas vraiment faire, c'est dire que cela fonctionnera bien sur d' autres données: ce ne sera probablement pas le cas. Malheureusement, de nombreux articles publiés font au moins allusion à cette notion incorrecte.

Tu demandes

est-il correct de sélectionner les variables de départ qui, je pense, expliquent le mieux la dépendance simplement en fonction de l'écologie?

Non seulement c'est OK, c'est mieux que n'importe quel schéma automatisé. En effet, celles-ci pourraient également être les variables finales . Cela dépend quelque peu de l'étendue des connaissances dans le domaine. Si vous ne savez pas grand-chose sur ce que vous recherchez, une approche plus exploratoire peut être nécessaire. Mais si vous avez de bonnes raisons de penser que certaines variables devraient être dans le modèle, alors certainement, mettez-les dedans. Et je plaiderais pour les laisser là, même si elles ne sont pas significatives.

Peter Flom
la source
1

Si vous allez faire une sélection de modèles, je pense que vous feriez mieux de faire une recherche exhaustive et de pondérer chaque modèle plutôt que de choisir des cerises. Vous n'avez que 14 variables, ce qui est certainement faisable - 16384 modèles différents ne sont pas prohibitifs, en particulier parce que la taille de l'échantillon est petite. Je voudrais également examiner les poids normalisés, définis par:

wm=[lexp(-12[UNEjeCl-UNEjeCm])]-1

Ces pondérations supposent que l'AIC est négatif deux fois la probabilité logarithmique plus deux fois le nombre de bêtas. Si le meilleur modèle a un poids proche de utilisez-le. sinon, vous devez faire la moyenne de vos résultats sur les modèles avec un poids total proche de . Ce qui se produit généralement, c'est qu'un groupe de variables «de base» doit toujours être inclus, avec une incertitude sur un ensemble «non essentiel» et un troisième ensemble de variables sans importance qui n'apparaissent jamais dans les modèles à poids élevé.111

Vous pouvez également remplacer AIC par BIC ou un autre IC basé sur une pénalité pour voir dans quelle mesure les poids dépendent de la pénalité de complexité spécifique utilisée.

probabilitéislogique
la source
L'utilisation de l'AIC sur tous les modèles possibles est un processus d'une extrême multiplicité pour lequel je m'interroge sur les performances. Parlant de grandes généralités, il n'est pas toujours logique de considérer cela comme un problème de sélection de variables mais plutôt comme un problème de pénalisation (rétrécissement).
Frank Harrell
Existe-t-il un processus qui n'a pas une extrême multiplicité dans la sélection des modèles? Vous avez affaire à un espace discret massif - cela conduit invariablement à un grand nombre de comparaisons. Je pense que la question est plutôt de savoir si la priorité implicite par rapport aux modèles est raisonnable.
probabilityislogic
Bien placé. Mais je pense que la plupart des exercices de sélection de modèles sont inutiles (c'est-à-dire que la parcimonie n'est pas votre amie) et le résultat de l'absence de tout premier rang.
Frank Harrell
Je suis également d'accord, je pense que les facteurs de Bayes sont mieux utilisés pour les questions de structure du modèle, telles que l'utilisation de la distribution normale ou t par exemple. Ils ne sont pas inutiles pour la sélection covariable, mais inefficaces par rapport au retrait.
Probabilislogic
Désolé pour mon commentaire tardif, mais connaissez-vous un moyen simple de calculer cela dans R? J'ai l'AIC: s dans une liste ou une matrice. Je suis assez nouveau dans R, donc tout bâtiment de fonction compliqué est difficile. Merci!
mael
0

Pour répondre "Serait-il possible de tester les performances sur un modèle formé sur l'ensemble de données complet avec validation croisée?" NON, je ne pense pas que ce soit OK. Vous devez adapter les 3 modèles au même sous-ensemble de votre ensemble de données. Effectuez ensuite la validation croisée pour voir laquelle est la meilleure.

Stat
la source
1
Donc, si je vous comprends bien, je ne devrais utiliser qu'une seule formation et un seul test pour tous les modèles? Puis-je encore utiliser mes 5 variables pour le dernier modèle ou est-ce un risque de sur-paramétrage? Et n'est-ce pas un risque avec un seul ensemble de formation et de test - car cela dépendra beaucoup de l'endroit où la répartition sera avec les relativement petites données que j'ai - ou n'est-ce pas une raison de s'inquiéter? Sinon, il semble que ce serait la meilleure façon de procéder.
mael
0

Serait-il possible de tester les performances sur un modèle formé sur l'ensemble de données complet avec validation croisée?

Je crois que non. Une meilleure méthode serait peut-être d'évaluer chacun des trois modèles en utilisant une validation croisée répétée. Étant donné que vous avez choisi vos fonctionnalités sur la base de connaissances antérieures, vous n'avez pas à vous soucier de la sélection des fonctionnalités. Cette méthode vous permet d'évaluer les performances du modèle.

Sinon, comment choisir le modèle final lors de la validation croisée?

Une fois que vous avez évalué les performances de votre modèle en utilisant la validation croisée répétée, vous pouvez ensuite former le modèle final en utilisant toutes les données disponibles.

Comment choisir les variables de départ pour que je veuille sur-paramétrer?

Si je comprends bien: comme suggéré par un contributeur ci-dessus, vous pouvez soit ajouter vos fonctionnalités en fonction des connaissances préalables de la région, soit vous devez effectuer la sélection des fonctionnalités dans la validation croisée pour éviter le surapprentissage. Cette même procédure de sélection des fonctionnalités serait ensuite appliquée à toutes les données lors de la formation du modèle final. Vous ne pouvez pas utiliser ce modèle pour signaler les performances généralisées du modèle, cela doit provenir de l'estimation de validation croisée.

BGreene
la source