Je monte une famille de binômes dans R, et j'ai toute une troupe de variables explicatives, et j'ai besoin de trouver le meilleur (R au carré comme mesure, ça va). À part écrire un script pour parcourir différentes combinaisons aléatoires de variables explicatives et ensuite enregistrer qui donne les meilleurs résultats, je ne sais vraiment pas quoi faire. Et la leaps
fonction de sauts de paquets ne semble pas effectuer de régression logistique.
Toute aide ou suggestion serait grandement appréciée.
Réponses:
Les méthodes pas à pas et "tous les sous-ensembles" sont généralement mauvaises. Voir Arrêt étape par étape: Pourquoi les méthodes étape par étape sont mauvaises et ce que vous devriez utiliser, par David Cassell et moi-même (nous avons utilisé SAS, mais la leçon s'applique) ou Stratégies de modélisation de régression de Frank Harrell. Si vous avez besoin d'une méthode automatique, je vous recommande LASSO ou LAR. Un package LASSO pour la régression logistique est disponible ici , un autre article intéressant est présenté sur LASSO pour la logistique.
la source
lrm
son manuel RMS pour plus d’informations).La régression logistique est estimée par la méthode du maximum de vraisemblance, elle
leaps
n'est donc pas utilisée directement ici. Le paquetage bestglm est une extension deleaps
toglm()
functions (comme le recommande généralement la suite, consultez les vignettes ici).Vous pouvez également être intéressé par l’article de David W. Hosmer, Borko Jovanovic et Stanley Lemeshow, Régression logistique des meilleurs sous-ensembles // Biométrie, vol. 45, n ° 4 (décembre 1989), p. 1265-1270 (généralement accessible par le biais des réseaux universitaires).
la source
R2R2 is not an appropriate goodness-of-fit measure for logistic regression take an information criterion AICAIC or BICBIC
bestglm
, il utiliseleaps
à l'arrière-plan pour le calcul! Donc cela échouera s'il y a NA dans le jeu de données et affichera le message suivant:Error in leaps.setup(x, y, wt = weights, nbest = nbest, nvmax = nvmax, : NA/NaN/Inf in foreign function call (arg 3)
Mais ce qui est intéressant, mon jeu de données n'a pas de NA mais quelques zéros mais cette fonction se plaint et donne le message exact ci-dessus !!Une idée serait d’utiliser une forêt aléatoire puis d’utiliser les mesures d’importance variable qu’elle génère pour choisir vos 8 meilleures variables. Une autre idée serait d'utiliser le paquetage "boruta" pour répéter ce processus plusieurs centaines de fois afin de trouver les 8 variables qui sont systématiquement les plus importantes pour le modèle.
la source
stats::step
fonction ou plus générale deMASS::stepAIC
soutien de la fonctionlm
,glm
( par exemple la régression logistique) et desaov
modèles familiaux.la source