Cara menghitung residu standar di r
Residual adalah selisih antara nilai observasi dan nilai prediksi dalam model regresi .
Ini dihitung sebagai berikut:
Sisa = Nilai yang diamati – Nilai yang diprediksi
Jika kita memplot nilai observasi dan menempatkan garis regresi yang dipasang, residu untuk setiap observasi akan menjadi jarak vertikal antara observasi dan garis regresi:
Salah satu jenis residu yang sering kita gunakan untuk mengidentifikasi outlier dalam model regresi disebut residu terstandarisasi .
Ini dihitung sebagai berikut:
r i = e i / s( ei ) = e i / RSE√ 1-h ii
Emas:
- e i : Residu ke -i
- RSE: kesalahan standar sisa model
- h ii : Meningkatnya observasi ke-i
Dalam praktiknya, kita sering menganggap residu terstandar yang nilai absolutnya lebih besar dari 3 sebagai outlier.
Tutorial ini memberikan contoh langkah demi langkah tentang cara menghitung residu terstandar di R.
Langkah 1: Masukkan datanya
Pertama, kita akan membuat kumpulan data kecil untuk digunakan di 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
Langkah 2: Sesuaikan model regresi
Selanjutnya, kita akan menggunakan fungsi lm() agar sesuai dengan model regresi linier sederhana :
#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
Langkah 3: Hitung residu standar
Selanjutnya, kita akan menggunakan fungsi bawaan rstandard() untuk menghitung residu standar model:
#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
Kita dapat menambahkan sisa standar ke bingkai data asli jika kita mau:
#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
Kami kemudian dapat mengurutkan setiap observasi dari yang terbesar hingga yang terkecil berdasarkan residu standarnya untuk mendapatkan gambaran observasi mana yang paling dekat dengan outlier:
#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
Dari hasil tersebut, kita dapat melihat bahwa tidak ada satu pun residu terstandar yang melebihi nilai absolut 3. Dengan demikian, tidak ada satu pun observasi yang tampak outlier.
Langkah 4: Visualisasikan residu standar
Terakhir, kita dapat membuat plot sebar untuk memvisualisasikan nilai variabel prediktor terhadap residu standar:
#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)
Sumber daya tambahan
Apa itu residu?
Apa yang dimaksud dengan residu terstandar?
Pengantar Regresi Linier Berganda