Régression pas à pas dans R - Valeur p critique

12

Quelle est la valeur de p critique utilisée par la step()fonction dans R pour la régression pas à pas? Je suppose que c'est 0,15, mais mon hypothèse est-elle correcte? Comment puis-je changer la valeur de p critique?

Jason Samuels
la source
7
La fonction «step» de R est basée sur AIC.
Michael M
7
Il est préférable de ne pas utiliser du tout de routines de sélection de modèle pas à pas. Pour comprendre pourquoi, il peut vous être utile de lire ma réponse ici: Algorithmes de sélection automatique de modèle .
gung - Reinstate Monica
3
Suite au commentaire de @ MichaelMayer: la Descriptionpartie de la page d'aide ?stepdit, dans son intégralité: Sélectionnez un modèle basé sur une formule par AIC.
Stephan Kolassa

Réponses:

27

Comme je l'ai expliqué dans mon commentaire sur votre autre question, steputilise AIC plutôt que les valeurs p.

Cependant, pour une seule variable à la fois, AIC ne correspondent à l' aide d' une valeur p de 0,15 (ou pour être plus précis, 0,1573):

Envisagez de comparer deux modèles, qui diffèrent par une seule variable. Appelez les modèles (modèle plus petit) et (modèle plus grand), et laissez leur AIC être et respectivement.M 1 AIC 0 AIC 1M0M1AIC0AIC1

En utilisant le critère AIC, vous utiliseriez le modèle plus grand si . Ce sera le cas si . - 2 log L 0 - ( - 2 log L 1 ) > 2AIC1<AIC02logL0(2logL1)>2

Mais il s'agit simplement de la statistique d'un test de rapport de vraisemblance. D'après le théorème de Wilks, nous rejetterons la valeur nulle si la statistique dépasse le quantile supérieur d'un . Donc, si nous utilisons un test d'hypothèse pour choisir entre le modèle plus petit et le plus grand, nous choisissons le modèle plus grand lorsque .χ 2 1 - 2 log L 0 - ( - 2 log L 1 ) > C ααχ122logL0(2logL1)>Cα

Maintenant, se situe au 84,27 centile d'un . Par conséquent, si nous choisissons le modèle plus grand lorsqu'il a un AIC plus petit, cela correspond au rejet de l'hypothèse nulle pour un test du terme supplémentaire avec une valeur de p de , ouχ 2 1 1 - 0,843 = 0,157 15,7 %2χ1210.843=0.15715.7%


Alors, comment le modifiez-vous?

Facile. Modifiez le kparamètre stepde 2 à autre chose. Vous voulez 10% à la place? Faites-en 2,7:

qchisq(0.10,1,lower.tail=FALSE)
[1] 2.705543

Vous voulez 2,5%? Ensemble k=5:

qchisq(0.025,1,lower.tail=FALSE)
[1] 5.023886

etc.


Cependant, même si cela résout votre question, je vous conseille de prêter une attention particulière à la réponse de Frank Harrell sur votre autre question, et de rechercher ici les réponses d'un grand nombre de statisticiens sur d'autres questions relatives à la régression pas à pas, dont les conseils ont tendance à être très systématiquement pour éviter les procédures par étapes en général.

Glen_b -Reinstate Monica
la source
Belle explication. Savez-vous si cela serait approximativement vrai pour les valeurs de p des tests t de régression ordinaires?
Ben Ogorek
Désolé Ben, je ne suis pas sûr à 100% de ce à quoi "cela" se réfère. Voulez-vous dire "pourrais-je utiliser l'approche ci-dessus où vous avez montré comment faire des tests à 10% et 2,5% pour faire des tests à 5%?" Dans ce cas , la réponse est « de toute évidence, oui » ... mais la dernière phrase - qui souligne que même si vous regardez comme vous faites des tests à un niveau nominal, les réels taux d'erreur de type I ne sont pas comme leurs valeurs nominales . En d'autres termes, vous pouvez calculer une valeur à utiliser, et cela devrait être équivalent à faire un réglage pas à pas à ... mais le niveau de signification réel ne sera toujours pas de 5%. Ce n'est qu'un des ... (ctd)α=0.05
Glen_b -Reinstate Monica
(ctd) ... une multitude de problèmes graves avec pas à pas. D'autres incluent des estimations biaisées et des erreurs-types beaucoup trop faibles.
Glen_b -Reinstate Monica
1
Mettant momentanément de côté les problèmes de sélection de modèle pas à pas, je suis intéressé à généraliser la plus petite règle AIC => .1573 p-value. La valeur de p du rapport de vraisemblance que vous décrivez est correcte, mais dans des routines comme lm de R, estimation / std.err est comparée à une distribution en t. Il s'agit d'un test différent, et je me demandais si votre résultat .1573 pourrait tenir approximativement.
Ben Ogorek
2
Ben: oui, le .1573 est asymptotique (basé sur la normale; il ne sera approximativement correct). Je pense que vous pourriez calculer la valeur de p correspondante à stepAIC pour un , car cela ne dépendra que des degrés de liberté dans votre problème (par exemple, je pense que c'est 0,1579 pour 200 df); en conséquence, vous devriez être en mesure d'annuler le souhaité . @ Nick C'est le plus intéressant. À première vue, je ne pense pas qu'il existe un lien direct entre les calculs - ils calculent la même quantité, mais pour des raisons différentes. ktk
Glen_b -Reinstate Monica
4

Comme indiqué ci-dessus, la stepfonction dans R est basée sur des critères AIC. Mais je suppose que par valeur p, vous voulez dire alpha pour entrer et alpha pour quitter. Ce que vous pouvez faire est d'utiliser la fonction stepwiseécrite par Paul Rubin et disponible ici . Comme vous pouvez le voir, vous avez les arguments alpha.to.enter et alpha.to.leave que vous pouvez modifier. Notez que cette fonction utilise le test F ou le test t équivalent pour sélectionner les modèles. De plus, il peut gérer non seulement la régression pas à pas mais aussi la sélection avant et l'élimination arrière si vous définissez correctement les arguments.

Stat
la source