Cara menghitung dffits di r


Dalam statistik, kita sering kali ingin mengetahui pengaruh observasi yang berbeda terhadap model regresi.

Salah satu cara untuk menghitung pengaruh observasi adalah dengan menggunakan metrik yang dikenal sebagai DFFITS , yang merupakan singkatan dari “difference in fit.”

Metrik ini memberi tahu kita seberapa besar perubahan prediksi yang dibuat oleh model regresi ketika kita menghilangkan observasi individual.

Tutorial ini menunjukkan contoh langkah demi langkah cara menghitung dan memvisualisasikan DFFITS untuk setiap observasi dalam model di R.

Langkah 1: Buat model regresi

Pertama, kita akan membuat model regresi linier berganda menggunakan kumpulan data mtcars yang ada di 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

Langkah 2: Hitung DFFITS untuk setiap observasi

Selanjutnya, kita akan menggunakan fungsi dffits() bawaan untuk menghitung nilai DFFITS untuk setiap observasi dalam model:

 #calculate DFFITS for each observation in the model
dffits <- as . data . frame (dffits(model))

#display DFFITS for each observation
challenges

                    dffits(model)
Mazda RX4 -0.14633456
Mazda RX4 Wag -0.14633456
Datsun 710 -0.19956440
Hornet 4 Drive 0.11540062
Hornet Sportabout 0.32140303
Valiant -0.26586716
Duster 360 0.06282342
Merc 240D -0.03521572
Merc 230 -0.09780612
Merc 280 -0.22680622
Merc 280C -0.32763355
Merc 450SE -0.09682952
Merc 450SL -0.03841129
Merc 450SLC -0.17618948
Cadillac Fleetwood -0.15860270
Lincoln Continental -0.15567627
Chrysler Imperial 0.39098449
Fiat 128 0.60265798
Honda Civic 0.35544919
Toyota Corolla 0.78230167
Toyota Corona -0.25804885
Dodge Challenger -0.16674639
AMC Javelin -0.20965432
Camaro Z28 -0.08062828
Pontiac Firebird 0.67858692
Fiat X1-9 0.05951528
Porsche 914-2 0.09453310
Lotus Europa 0.55650363
Ford Pantera L 0.31169050
Ferrari Dino -0.29539098
Maserati Bora 0.76464932
Volvo 142E -0.24266054

Biasanya, kita melihat lebih dekat observasi dengan nilai DFFITS di atas ambang batas 2√ p/n dimana:

  • p : Jumlah variabel prediktor yang digunakan dalam model
  • n : Jumlah observasi yang digunakan dalam model

Dalam contoh ini, ambang batasnya adalah 0.5 :

 #find number of predictors in model
p <- length (model$coefficients)-1

#find number of observations
n <- nrow (mtcars)

#calculate DFFITS threshold value
thresh <- 2* sqrt (p/n)

thresh

[1] 0.5

Kita dapat mengurutkan observasi berdasarkan nilai DFFITSnya untuk melihat apakah ada yang melebihi ambang batas:

 #sort observations by DFFITS, descending
dffits[ order (-dffits[' dffits(model) ']), ]

 [1] 0.78230167 0.76464932 0.67858692 0.60265798 0.55650363 0.39098449
 [7] 0.35544919 0.32140303 0.31169050 0.11540062 0.09453310 0.06282342
[13] 0.05951528 -0.03521572 -0.03841129 -0.08062828 -0.09682952 -0.09780612
[19] -0.14633456 -0.14633456 -0.15567627 -0.15860270 -0.16674639 -0.17618948
[25] -0.19956440 -0.20965432 -0.22680622 -0.24266054 -0.25804885 -0.26586716
[31] -0.29539098 -0.32763355

Kita dapat melihat bahwa lima observasi pertama memiliki nilai DFFITS lebih besar dari 0,5, yang berarti kita mungkin ingin mempelajari observasi ini lebih dekat untuk menentukan apakah observasi tersebut mempunyai pengaruh yang besar terhadap model.

Langkah 3: Visualisasikan DFFITS untuk setiap observasi

Terakhir, kita dapat membuat grafik cepat untuk memvisualisasikan DFFITS untuk setiap observasi:

 #plot DFFITS values for each observation
plot(dffits(model), type = ' h ')

#add horizontal lines at absolute values for threshold
abline(h = thresh, lty = 2)
abline(h = -thresh, lty = 2)

DFFITS di R

Sumbu x menampilkan indeks setiap observasi dalam dataset dan nilai y menampilkan nilai DFFITS yang sesuai untuk setiap observasi.

Sumber daya tambahan

Cara melakukan regresi linier sederhana di R
Cara melakukan regresi linier berganda di R
Cara menghitung statistik leverage di R
Cara membuat plot sisa di R

Tambahkan komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *