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:
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