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