Hoe regsubsets() in r te gebruiken voor modelselectie


U kunt de functie regsubsets() uit het leaps- pakket in R gebruiken om de subset van voorspellende variabelen te vinden die het beste regressiemodel oplevert.

Het volgende voorbeeld laat zien hoe u deze functie in de praktijk kunt gebruiken.

Voorbeeld: regsubsets() gebruiken voor modelselectie in R

Voor dit voorbeeld gebruiken we de mtcars -dataset die is ingebouwd in R, die metingen bevat van 11 verschillende attributen voor 32 verschillende auto’s.

 #view first six rows of mtcars dataset
head(mtcars)

                   mpg cyl disp hp drat wt qsec vs am gear carb
Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4
Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4
Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1
Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2
Valiant 18.1 6 225 105 2.76 3,460 20.22 1 0 3 1

Stel dat we een regressiemodel willen fitten met hp als responsvariabele en de volgende potentiële voorspellende variabelen:

  • mpg
  • gewicht
  • shit
  • qsec

We kunnen de functie regsubsets() uit het leaps- pakket gebruiken om een uitgebreide zoekopdracht uit te voeren om het beste regressiemodel te vinden:

 library (leaps)

#find best regression model
bestSubsets <- regsubsets(hp ~ mpg + wt + drat + qsec, data=mtcars)

#view results
summary(bestSubsets)

Subset selection object
Call: regsubsets.formula(hp ~ mpg + wt + drat + qsec, data = mtcars)
4 Variables (and intercept)
     Forced in Forced out
mpg FALSE FALSE
wt FALSE FALSE
drat FALSE FALSE
qsec FALSE FALSE
1 subsets of each size up to 4
Selection Algorithm: exhaustive
         mpg wt drat qsec
1 ( 1 ) "*" " " " " " " 
2 (1) " " "*" " " "*" 
3 ( 1 ) “*” “*” “ “ “*” 
4 ( 1 ) “*” “*” “*” “*”

De sterren ( * ) onderaan het resultaat geven aan welke voorspellende variabelen tot het beste regressiemodel behoren voor elk mogelijk model met een verschillend aantal voorspellende variabelen.

Zo interpreteert u het resultaat:

Voor een model met één enkele voorspellende variabele wordt het beste regressiemodel geproduceerd met behulp van mpg als voorspellende variabele.

Voor een model met twee voorspellende variabelen wordt het beste regressiemodel geproduceerd met behulp van wt en qsec als voorspellende variabelen.

Voor een model met drie voorspellende variabelen wordt het beste regressiemodel geproduceerd met behulp van mpg , wt en qsec als voorspellende variabelen.

Voor een model met vier voorspellende variabelen wordt het beste regressiemodel geproduceerd met behulp van mpg , wt , drat en qsec als voorspellende variabelen.

Houd er rekening mee dat u voor elk model ook de volgende statistieken kunt extraheren:

We kunnen bijvoorbeeld de volgende syntaxis gebruiken om de aangepaste R-kwadraatwaarde voor elk van de vier beste modellen te extraheren:

 #view adjusted R-squared value of each model
summary(bestSubsets)$adjr2

[1] 0.5891853 0.7828169 0.7858829 0.7787005

Uit het resultaat kunnen we zien:

  • De aangepaste R-kwadraatwaarde voor het model met mpg als voorspellende variabele is 0,589 .
  • De aangepaste R-kwadraatwaarde voor het model met wt en qsec als voorspellende variabelen is 0,783 .
  • De aangepaste R-kwadraatwaarde voor het model met mp g , wt en qsec als voorspellende variabelen is 0,786 .
  • De aangepaste R-kwadraatwaarde voor het model met mpg , wt , drat en qsec als voorspellende variabelen is 0,779 .

Deze waarden geven ons een idee van hoe goed de set voorspellende variabelen de waarde van de responsvariabele voorspelde, aangepast op basis van het aantal voorspellende variabelen in het model.

Aanvullende bronnen

In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende taken in R kunt uitvoeren:

Hoe meervoudige lineaire regressie uit te voeren in R
Hoe stuksgewijs regressie uit te voeren in R
Hoe spline-regressie uit te voeren in R

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert