Robuuste regressie uitvoeren in r (stap voor stap)


Robuuste regressie is een methode die we kunnen gebruiken als alternatief voor de gewone kleinste kwadratenregressie als er uitbijters of invloedrijke waarnemingen voorkomen in de dataset waarmee we werken.

Om robuuste regressie in R uit te voeren, kunnen we de functie rlm() uit het MASS- pakket gebruiken, die de volgende syntaxis gebruikt:

Het volgende stapsgewijze voorbeeld laat zien hoe u robuuste regressie in R kunt uitvoeren voor een bepaalde gegevensset.

Stap 1: Creëer de gegevens

Laten we eerst een nep-dataset maken om mee te werken:

 #create data
df <- data. frame (x1=c(1, 3, 3, 4, 4, 6, 6, 8, 9, 3,
                      11, 16, 16, 18, 19, 20, 23, 23, 24, 25),
                 x2=c(7, 7, 4, 29, 13, 34, 17, 19, 20, 12,
                      25, 26, 26, 26, 27, 29, 30, 31, 31, 32),
                  y=c(17, 170, 19, 194, 24, 2, 25, 29, 30, 32,
                      44, 60, 61, 63, 63, 64, 61, 67, 59, 70))

#view first six rows of data
head(df)

  x1 x2 y
1 1 7 17
2 3 7 170
3 3 4 19
4 4 29 194
5 4 13 24
6 6 34 2

Stap 2: Voer gewone kleinste-kwadratenregressie uit

Laten we vervolgens een gewoon regressiemodel met de kleinste kwadraten toepassen en een grafiek van de gestandaardiseerde residuen maken.

In de praktijk beschouwen we vaak elk gestandaardiseerd residu waarvan de absolute waarde groter is dan 3 als een uitbijter.

 #fit ordinary least squares regression model
ols <- lm(y~x1+x2, data=df)

#create plot of y-values vs. standardized residuals
plot(df$y, rstandard(ols), ylab=' Standardized Residuals ', xlab=' y ') 
abline(h= 0 ) 

Uit de grafiek kunnen we zien dat er twee waarnemingen zijn met gestandaardiseerde residuen rond de 3.

Dit geeft aan dat er twee potentiële uitschieters in de dataset zitten en dat we daarom wellicht kunnen profiteren van robuuste regressie.

Stap 3: Voer robuuste regressie uit

Laten we vervolgens de functie rlm() gebruiken om een robuust regressiemodel in te passen:

 library (MASS)

#fit robust regression model
robust <- rlm(y~x1+x2, data=df)

Om te bepalen of dit robuuste regressiemodel beter aansluit bij de gegevens vergeleken met het OLS-model, kunnen we de resterende standaardfout van elk model berekenen.

De residuele standaardfout (RSE) is een manier om de standaardafwijking van de residuen in een regressiemodel te meten. Hoe lager de MVO-waarde, hoe beter een model bij de data past.

De volgende code laat zien hoe u de RSE voor elk model kunt berekenen:

 #find residual standard error of ols model
summary(ols)$sigma

[1] 49.41848

#find residual standard error of ols model
summary(robust)$sigma

[1] 9.369349

We kunnen zien dat de RSE van het robuuste regressiemodel veel lager is dan die van het gewone regressiemodel met de kleinste kwadraten, wat ons vertelt dat het robuuste regressiemodel beter aansluit bij de gegevens.

Aanvullende bronnen

Hoe eenvoudige lineaire regressie uit te voeren in R
Hoe meervoudige lineaire regressie uit te voeren in R
Hoe polynomiale regressie uit te voeren in R

Einen Kommentar hinzufügen

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