Come calcolare i residui standardizzati in r


Un residuo è la differenza tra un valore osservato e un valore previsto in un modello di regressione .

Viene calcolato come segue:

Residuo = Valore osservato – Valore previsto

Se tracciassimo i valori osservati e sovrapponessimo la linea di regressione adattata, i residui per ciascuna osservazione sarebbero la distanza verticale tra l’osservazione e la linea di regressione:

Esempio di residuo in statistica

Un tipo di residuo che utilizziamo spesso per identificare i valori anomali in un modello di regressione è chiamato residuo standardizzato .

Viene calcolato come segue:

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

Oro:

  • e i : L’iesimo residuo
  • RSE: errore standard residuo del modello
  • h ii : Il sorgere dell’i -esima osservazione

In pratica, spesso consideriamo come un valore anomalo qualsiasi residuo standardizzato il cui valore assoluto sia maggiore di 3.

Questo tutorial fornisce un esempio passo passo di come calcolare i residui standardizzati in R.

Passaggio 1: inserisci i dati

Innanzitutto, creeremo un piccolo set di dati con cui lavorare 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

Passaggio 2: adattare il modello di regressione

Successivamente, utilizzeremo la funzione lm() per adattare un semplice modello di regressione lineare :

 #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

Passaggio 3: calcolare i residui standardizzati

Successivamente, utilizzeremo la funzione integrata rstandard() per calcolare i residui standardizzati del modello:

 #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

Se lo desideriamo, possiamo aggiungere i residui standardizzati al frame di dati originale:

 #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

Possiamo quindi ordinare ciascuna osservazione dalla più grande alla più piccola in base al suo residuo standardizzato per avere un’idea di quali osservazioni sono più vicine ai valori anomali:

 #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

Dai risultati, possiamo vedere che nessuno dei residui standardizzati supera il valore assoluto di 3. Pertanto, nessuna delle osservazioni sembra essere un valore anomalo.

Passaggio 4: visualizzare i residui standardizzati

Infine, possiamo creare un grafico a dispersione per visualizzare i valori della variabile predittore rispetto ai residui standardizzati:

 #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)

Risorse addizionali

Cosa sono i residui?
Cosa sono i residui standardizzati?
Introduzione alla regressione lineare multipla

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *