Come calcolare le statistiche sulla leva finanziaria in r


In statistica, un’osservazione è considerata un valore anomalo se il suo valore per la variabile di risposta è molto maggiore rispetto al resto delle osservazioni nel set di dati.

Allo stesso modo, un’osservazione è considerata ad alta leva se ha uno o più valori per le variabili predittive che sono molto più estremi rispetto al resto delle osservazioni nel set di dati.

Uno dei primi passi in qualsiasi tipo di analisi è quello di esaminare più da vicino le osservazioni che hanno un’elevata leva finanziaria, poiché potrebbero avere un grande impatto sui risultati di un determinato modello.

Questo tutorial mostra un esempio passo passo di come calcolare e visualizzare la leva finanziaria per ciascuna osservazione in un modello in R.

Passaggio 1: creare un modello di regressione

Innanzitutto, creeremo un modello di regressione lineare multipla utilizzando il set di dati mtcars integrato in R:

 #load the dataset
data(mtcars)

#fit a regression model
model <- lm(mpg~disp+hp, data=mtcars)

#view model summary
summary(model)

Coefficients:
             Estimate Std. Error t value Pr(>|t|)    
(Intercept) 30.735904 1.331566 23.083 < 2nd-16 ***
available -0.030346 0.007405 -4.098 0.000306 ***
hp -0.024840 0.013385 -1.856 0.073679 .  
---
Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 3.127 on 29 degrees of freedom
Multiple R-squared: 0.7482, Adjusted R-squared: 0.7309 
F-statistic: 43.09 on 2 and 29 DF, p-value: 2.062e-09

Passaggio 2: calcolare la leva finanziaria per ciascuna osservazione

Successivamente, utilizzeremo la funzione hatvalues() per calcolare la leva per ciascuna osservazione nel modello:

 #calculate leverage for each observation in the model
hats <- as . data . frame (hatvalues(model))

#display leverage stats for each observation
hats

                    hatvalues(model)
Mazda RX4 0.04235795
Mazda RX4 Wag 0.04235795
Datsun 710 0.06287776
Hornet 4 Drive 0.07614472
Hornet Sportabout 0.08097817
Valiant 0.05945972
Duster 360 0.09828955
Merc 240D 0.08816960
Merc 230 0.05102253
Merc 280 0.03990060
Merc 280C 0.03990060
Merc 450SE 0.03890159
Merc 450SL 0.03890159
Merc 450SLC 0.03890159
Cadillac Fleetwood 0.19443875
Lincoln Continental 0.16042361
Chrysler Imperial 0.12447530
Fiat 128 0.08346304
Honda Civic 0.09493784
Toyota Corolla 0.08732818
Toyota Corona 0.05697867
Dodge Challenger 0.06954069
AMC Javelin 0.05767659
Camaro Z28 0.10011654
Pontiac Firebird 0.12979822
Fiat X1-9 0.08334018
Porsche 914-2 0.05785170
Lotus Europa 0.08193899
Ford Pantera L 0.13831817
Ferrari Dino 0.12608583
Maserati Bora 0.49663919
Volvo 142E 0.05848459

In genere, esaminiamo più da vicino le osservazioni con un valore di leva maggiore di 2.

Un modo semplice per farlo è ordinare le osservazioni in base al loro valore di leva, in ordine decrescente:

 #sort observations by leverage, descending
hats[ order (-hats[' hatvalues(model) ']), ]

 [1] 0.49663919 0.19443875 0.16042361 0.13831817 0.12979822 0.12608583
 [7] 0.12447530 0.10011654 0.09828955 0.09493784 0.08816960 0.08732818
[13] 0.08346304 0.08334018 0.08193899 0.08097817 0.07614472 0.06954069
[19] 0.06287776 0.05945972 0.05848459 0.05785170 0.05767659 0.05697867
[25] 0.05102253 0.04235795 0.04235795 0.03990060 0.03990060 0.03890159
[31] 0.03890159 0.03890159

Possiamo vedere che il valore di leva finanziaria più alto è 0,4966 . Poiché questo numero non è maggiore di 2, sappiamo che nessuna delle osservazioni nel nostro set di dati ha un effetto leva elevato.

Passaggio 3: Visualizza la leva per ciascuna osservazione

Infine, possiamo creare un grafico rapido per visualizzare la leva per ciascuna osservazione:

 #plot leverage values for each observation
plot(hatvalues(model), type = ' h ')

leva in R

L’asse x mostra l’indice di ciascuna osservazione nel set di dati e il valore y mostra la statistica di leva corrispondente per ciascuna osservazione.

Risorse addizionali

Come eseguire una regressione lineare semplice in R
Come eseguire la regressione lineare multipla in R
Come creare una trama residua in R

Aggiungi un commento

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