Hoe gestandaardiseerde residuen in r te berekenen


Een residu is het verschil tussen een waargenomen waarde en een voorspelde waarde in eenregressiemodel .

Het wordt als volgt berekend:

Residueel = Waargenomen waarde – Voorspelde waarde

Als we de waargenomen waarden uitzetten en de aangepaste regressielijn over elkaar leggen, zijn de residuen voor elke waarneming de verticale afstand tussen de waarneming en de regressielijn:

Voorbeeld van residu in statistieken

Eén type residu dat we vaak gebruiken om uitschieters in een regressiemodel te identificeren, wordt een gestandaardiseerd residu genoemd.

Het wordt als volgt berekend:

r ik = e ik / s(e ik ) = e ik / RSE√ 1-h ii

Goud:

  • e i : het i- de residu
  • RSE: de resterende standaardfout van het model
  • h ii : De opkomst van de ide waarneming

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

Deze tutorial biedt een stapsgewijs voorbeeld van hoe u gestandaardiseerde residuen in R kunt berekenen.

Stap 1: Voer de gegevens in

Eerst maken we een kleine dataset om mee te werken in R:

 #create data
data <- data.frame(x=c(8, 12, 12, 13, 14, 16, 17, 22, 24, 26, 29, 30),
                   y=c(41, 42, 39, 37, 35, 39, 45, 46, 39, 49, 55, 57))

#viewdata
data

    xy
1 8 41
2 12 42
3 12 39
4 13 37
5 14 35
6 16 39
7 17 45
8 22 46
9 24 39
10 26 49
11 29 55
12 30 57

Stap 2: Pas het regressiemodel aan

Vervolgens zullen we de functie lm() gebruiken om een eenvoudig lineair regressiemodel te passen:

 #fit model
model <- lm(y ~ x, data=data)

#view model summary
summary(model) 

Call:
lm(formula = y ~ x, data = data)

Residuals:
    Min 1Q Median 3Q Max 
-8.7578 -2.5161 0.0292 3.3457 5.3268 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept) 29.6309 3.6189 8.188 9.6e-06 ***
x 0.7553 0.1821 4.148 0.00199 ** 
---
Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 4.442 on 10 degrees of freedom
Multiple R-squared: 0.6324, Adjusted R-squared: 0.5956 
F-statistic: 17.2 on 1 and 10 DF, p-value: 0.001988

Stap 3: Bereken gestandaardiseerde residuen

Vervolgens zullen we de ingebouwde functie rstandard() gebruiken om de gestandaardiseerde residuen van het model te berekenen:

 #calculate the standardized residuals
standard_res <- rstandard(model)

#view the standardized residuals
standard_res

          1 2 3 4 5 6 
 1.40517322 0.81017562 0.07491009 -0.59323342 -1.24820530 -0.64248883 
          7 8 9 10 11 12 
 0.59610905 -0.05876884 -2.11711982 -0.06655600 0.91057211 1.26973888

We kunnen de gestandaardiseerde residuen aan het originele dataframe toevoegen als we dat willen:

 #column bind standardized residuals back to original data frame
final_data <- cbind(data, standard_res)

#view data frame
    xy standard_res
1 8 41 1.40517322
2 12 42 0.81017562
3 12 39 0.07491009
4 13 37 -0.59323342
5 14 35 -1.24820530
6 16 39 -0.64248883
7 17 45 0.59610905
8 22 46 -0.05876884
9 24 39 -2.11711982
10 26 49 -0.06655600
11 29 55 0.91057211
12 30 57 1.26973888

We kunnen vervolgens elke waarneming sorteren van groot naar klein op basis van het gestandaardiseerde residu om een idee te krijgen van welke waarnemingen het dichtst bij de uitschieters liggen:

 #sort standardized residuals descending
final_data[ order (-standard_res),]

    xy standard_res
1 8 41 1.40517322
12 30 57 1.26973888
11 29 55 0.91057211
2 12 42 0.81017562
7 17 45 0.59610905
3 12 39 0.07491009
8 22 46 -0.05876884
10 26 49 -0.06655600
4 13 37 -0.59323342
6 16 39 -0.64248883
5 14 35 -1.24820530
9 24 39 -2.11711982

Uit de resultaten kunnen we opmaken dat geen van de gestandaardiseerde residuen een absolute waarde van 3 overschrijdt. Geen van de waarnemingen lijkt dus uitschieters te zijn.

Stap 4: Visualiseer de gestandaardiseerde residuen

Ten slotte kunnen we een spreidingsdiagram maken om de waarden van de voorspellende variabele te visualiseren ten opzichte van de gestandaardiseerde residuen:

 #plot predictor variable vs. standardized residuals
plot(final_data$x, standard_res, ylab=' Standardized Residuals ', xlab=' x ') 

#add horizontal line at 0
abline(0, 0)

Aanvullende bronnen

Wat zijn residuen?
Wat zijn gestandaardiseerde residuen?
Inleiding tot meervoudige lineaire regressie

Einen Kommentar hinzufügen

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