Il existe plusieurs articles sur la façon de sélectionner des fonctionnalités. L'une des méthodes décrit l'importance des fonctionnalités sur la base des statistiques t. Dans R varImp(model)
appliqué sur un modèle linéaire avec des caractéristiques normalisées , la valeur absolue de la statistique t pour chaque paramètre du modèle est utilisée. Donc, fondamentalement, nous choisissons une fonctionnalité en fonction de ses statistiques t, ce qui signifie à quel point le coefficient est précis. Mais la précision de mon coefficient me dit-elle quelque chose sur les capacités prédictives de la caractéristique?
Peut-il arriver que ma fonctionnalité ait une faible statistique t mais qu'elle améliorerait (disons) la précision du modèle? Si oui, quand voudrait-on exclure des variables basées sur les statistiques t? Ou donne-t-il juste un point de départ pour vérifier les capacités prédictives de variables non importantes?
varImp()
soit destiné à être une fonction informative ou diagnostique et non directement utilisé pour la sélection ou l'élimination des fonctionnalités.Réponses:
La statistique t peut n'avoir presque rien à dire sur la capacité prédictive d'une caractéristique, et elle ne doit pas être utilisée pour exclure le prédicteur ou autoriser les prédicteurs dans un modèle prédictif.
Les valeurs P indiquent que les caractéristiques parasites sont importantes
Considérez la configuration de scénario suivante dans R. Créons deux vecteurs, le premier est simplement tours de pièces aléatoires:5000
Le deuxième vecteur est de observations, chacune assignée au hasard à l'une des 500 classes aléatoires de taille égale:5000 500
Maintenant, nous ajustons un modèle linéaire pour prédire
y
donnérand.classes
.La valeur correcte pour tous les coefficients est nulle, aucun d'entre eux n'a de pouvoir prédictif. Néanmoins, beaucoup d'entre eux sont significatifs au niveau de 5%
En fait, nous devrions nous attendre à ce qu'environ 5% d'entre eux soient significatifs, même s'ils n'ont aucun pouvoir prédictif!
Les valeurs P ne parviennent pas à détecter les caractéristiques importantes
Voici un exemple dans l'autre sens.
J'ai créé deux prédicteurs corrélés , chacun avec une puissance prédictive.
Les valeurs de p ne parviennent pas à détecter le pouvoir prédictif des deux variables car la corrélation affecte la précision avec laquelle le modèle peut estimer les deux coefficients individuels à partir des données.
Les statistiques déductives ne sont pas là pour parler du pouvoir prédictif ou de l'importance d'une variable. C'est un abus de ces mesures de les utiliser de cette façon. Il existe de bien meilleures options disponibles pour la sélection des variables dans les modèles linéaires prédictifs, pensez à utiliser
glmnet
.(*) Notez que je laisse une interception ici, donc toutes les comparaisons sont à la ligne de base de zéro, pas à la moyenne du groupe de la première classe. C'était la suggestion de @ whuber.
Puisqu'il a conduit à une discussion très intéressante dans les commentaires, le code original était
et
qui a conduit à l'histogramme suivant
la source
lm(y ~ rand.class - 1)
. Cela ne change pas la validité de toutes vos remarques (+1). Pour être encore plus convaincant, équilibrez la taille des groupes:rand.class <- cut(1:N, N.classes)
La statistique t est influencée par la taille de l'effet et la taille de l'échantillon. Il se peut que la taille de l'effet soit non nulle mais que la taille de l'échantillon ne soit pas suffisamment grande pour la rendre significative.
Dans votre cas, toute fonctionnalité avec un effet non nul améliorera les performances, mais vous ne disposez peut-être pas de suffisamment de données pour rendre la valeur p de cette fonctionnalité significative.
la source