Come calcolare i residui standardizzati in python
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 Python.
Passaggio 1: inserisci i dati
Per prima cosa creeremo un piccolo set di dati con cui lavorare in Python:
import pandas as pd #create dataset df = pd. DataFrame ({' x ': [8, 12, 12, 13, 14, 16, 17, 22, 24, 26, 29, 30], ' y ': [41, 42, 39, 37, 35, 39, 45, 46, 39, 49, 55, 57]})
Passaggio 2: adattare il modello di regressione
Successivamente, adatteremo un semplice modello di regressione lineare :
import statsmodels. api as sm
#define response variable
y = df[' y ']
#define explanatory variable
x = df[' x ']
#add constant to predictor variables
x = sm. add_constant (x)
#fit linear regression model
model = sm. OLS (y,x). fit ()
Passaggio 3: calcolare i residui standardizzati
Successivamente, calcoleremo i residui standardizzati del modello:
#create instance of influence influence = model. get_influence () #obtain standardized residuals standardized_residuals = influence. reside_studentized_internal #display standardized residuals print (standardized_residuals) [ 1.40517322 0.81017562 0.07491009 -0.59323342 -1.2482053 -0.64248883 0.59610905 -0.05876884 -2.11711982 -0.066556 0.91057211 1.26973888]
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:
import matplotlib. pyplot as plt
plt. scatter (df.x, standardized_residuals)
plt. xlabel (' x ')
plt. ylabel (' Standardized Residuals ')
plt. axhline (y=0, color=' black ', linestyle=' -- ', linewidth=1)
plt. show ()
Risorse addizionali
Cosa sono i residui?
Cosa sono i residui standardizzati?
Come calcolare i residui standardizzati in R
Come calcolare i residui standardizzati in Excel