Régression pas à pas dans R – Comment ça marche?

Jessaie de comprendre la différence fondamentale entre la régression pas à pas et en arrière dans R en utilisant la fonction step. Pour la régression pas à pas, jai utilisé la commande suivante

 step(lm(mpg~wt+drat+disp+qsec,data=mtcars),direction="both") 

Jai obtenu la sortie ci-dessous pour le code ci-dessus.

avant

Pour la sélection de variable vers larrière, jai utilisé la commande suivante

 step(lm(mpg~wt+drat+disp+qsec,data=mtcars),direction="backward") 

Et jai obtenu la sortie ci-dessous pour larrière

vers larrière

Autant que je lai compris, quand aucun paramètre nest spécifié, la sélection pas à pas agit en arrière à moins que les paramètres « supérieur » et « inférieur » ne soient spécifiés dans R. Pourtant, dans la sortie de la sélection pas à pas, il y a un + disp qui est ajouté à la 2ème étape. Quelle est la fonction essayant de réaliser en ajoutant à nouveau le + disp dans la sélection par étapes? Pourquoi R ajoute-t-il le + disp à la 2ème étape alors que les résultats sont les mêmes (valeurs AIC et valeurs de sélection de modèle) que la sélection arrière. Comment R fonctionne-t-il exactement dans la sélection par étapes?

Je veux vraiment comprendre comment cette fonction fonctionne dans R. Merci davance pour laide!

Réponse

Il serait peut-être plus facile de comprendre comment la régression pas à pas est effectuée en examinant les 15 modèles lm possibles.

Voici « un quickie pour générer une formule pour les 15 combinaisons.

library(leaps) tmp<-regsubsets(mpg ~ wt + drat + disp + qsec, data=mtcars, nbest=1000, really.big=T, intercept=F) all.mods <- summary(tmp)[[1]] all.mods <- lapply(1:nrow(all.mods, function(x)as.formula(paste("mpg~", paste(names(which(all.mods[x,])), collapse="+")))) head(all.mods) [[1]] mpg ~ drat <environment: 0x0000000013a678d8> [[2]] mpg ~ qsec <environment: 0x0000000013a6b3b0> [[3]] mpg ~ wt <environment: 0x0000000013a6df28> [[4]] mpg ~ disp <environment: 0x0000000013a70aa0> [[5]] mpg ~ wt + qsec <environment: 0x0000000013a74540> [[6]] mpg ~ drat + disp <environment: 0x0000000013a76f68> 

Les valeurs AIC pour chacun des modèles sont extraites avec:

all.lm<-lapply(all.mods, lm, mtcars) sapply(all.lm, extractAIC)[2,] [1] 97.98786 111.77605 73.21736 77.39732 63.90843 77.92493 74.15591 79.02978 91.24052 71.35572 [11] 63.89108 65.90826 78.68074 72.97352 65.62733 

Revenons à votre pas-régression. La valeur extractAIC pour lm (mpg ~ wt + drat + disp + qsec) est 65,63 (équivalent au modèle 15 dans la liste ci-dessus).

Si le modèle supprime disp (-disp), alors lm (mpg ~ wt + drat + qsec) est 63.891 (ou le modèle 11 dans la liste).

Si le modèle fait ne rien supprimer (rien), alors lAIC est toujours 65,63

Si le modèle supprime qsec (-qsec), alors lm (mpg ~ wt + drat + disp) est 65.908 (modèle 12).

etc.

Fondamentalement, le résumé révèle la suppression par étapes complète dun terme de votre modèle complet et compare la valeur extractAIC, en les listant par ordre croissant. Étant donné que la valeur AIC la plus petite est plus susceptible de ressembler au modèle TRUTH, létape de conservation du modèle (-disp) à la première étape.

Le processus est répété, mais avec le modèle conservé (-disp) comme point de départ. Les termes sont soit soustraits («en arrière»), soit soustraits / ajoutés («les deux») pour permettre la comparaison des modèles. Étant donné que la valeur AIC la plus basse en comparaison est toujours le modèle (-disp), larrêt du processus et les modèles résultants donnés.

En ce qui concerne votre requête: « Quelle est la fonction essayant datteindre en ajoutant à nouveau le + disp dans la sélection par étapes? « , dans ce cas, il » ne fait vraiment rien, car le meilleur modèle parmi les 15 modèles est le modèle 11, cest-à-dire lm (mpg ~ wt + drat + qsec).

Cependant, dans les modèles complexes avec un grand nombre de prédicteurs qui nécessitent de nombreuses étapes pour être résolus, lajout dun terme qui a été initialement supprimé est essentiel pour fournir le moyen le plus exhaustif de comparer les termes.

dune certaine manière.

Commentaires

  • " Puisque la valeur AIC la plus petite est plus susceptible de ressembler au Le modèle TRUTH " est carrément faux. La construction dun modèle pas à pas est à peu près tout aussi susceptible de conserver de faux prédicteurs que de rejeter les vrais prédicteurs … parmi une foule dautres problèmes: stats.stackexchange.com/questions/115843/…
  • Évidemment ' un mensonge. Cest ' pourquoi la sélection de modèle basée sur des critères uniques (comme la régression par étapes) est un peu naïve.
  • @Alexis aime vos recommandations dans votre réponse dans le lien.

Réponse

Voici une réponse simplifiée. Premièrement, les deux procédures tentent de réduire lAIC dun modèle donné, mais elles le font de différentes manières. Ensuite, la différence fondamentale est que dans la procédure de sélection vers larrière, vous ne pouvez supprimer les variables du modèle quà nimporte quelle étape, alors que dans la sélection par étapes, vous pouvez également ajouter des variables au modèle.

À propos de la sortie dans le pas à pas sélection, en général, la sortie montre que vous avez commandé des alternatives pour réduire votre AIC, donc la première ligne à nimporte quelle étape est votre meilleure option. Ensuite, il y a un +disp dans la troisième ligne car lajout de cette variable à votre modèle serait votre troisième meilleure option pour diminuer votre AIC. Mais évidemment, comme votre meilleure alternative est <none>, cela signifie ne rien faire, la procédure sarrête et vous donne les mêmes résultats quen sélection arrière.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *