Estimasi Least Trimmed Square (LTS) pada Regresi Robust
Muhammad Ulinnuha dan Panji Satrio Kurniawan
17 Juli 2018
PENGANTAR
Assalamualaikum wr.wb, manteman… Berikut kali ini saya akan berbagi sedikit ilmu tentang regresi, analisi regresi di statistika banyak sekali kan yaa,,,salah satunya regresi Robust. Regresi robust diperkenalkan oleh Andrews (1972) dan merupakan metode regresi yang digunakan ketika distribusi dari error tidak normal dan atau adanya beberapa outlier yang berpengaruh pada model (Ryan, 1997). Metode ini merupakan alat penting untuk menganalisa data yang dipengaruhi oleh outlier sehingga dihasilkan model yang robust atau resistance terhadap outlier. Suatu estimasi yang resistant adalah relatif tidak terpengaruh oleh perubahan besar pada bagian kecil data atau perubahan kecil pada bagian besar data. ada beberapa estimasi menggunakan regresi robust dengan pendekatan tiga metode yaitu Estimasi Least Trimmed Square (LTS), Estimasi Maximum Likelihood Type (M) dan Estimasi Method of Moment (MM). pada postingan ini akan dibahas Regresi Robust dengan metode Estimasi Least Trimmed Square (LTS).
INPUT DATA
Data yang digunakan adalah data yang berkaitan dengan ekonomi, terdiri dari veriabel dependen yaitu Indeks stabilitas sistem keuangan dan variabel independen terdiri dari IHSG, IHPR,Perkebangan Kredit, Kurs dan Jumlah uang beredar.
#Input Data
data=read.csv("D:/Robust.csv")
head(data)
## NO Indeks.stabilitas.Sistem.Keuangan IHSG IHPR Perkembangan.Kredit
## 1 1 0.96 2598.33 131.89 1158.72
## 2 2 0.96 416.67 135.89 133.03
## 3 3 1.06 1069.48 124.97 446.02
## 4 4 0.92 385.33 137.47 308.06
## 5 5 1.04 2645.71 132.79 1217.66
## 6 6 0.98 4730.16 173.38 2782.91
## Kurs Jumlah.uang.beredar
## 1 9.59 1991.58
## 2 8.48 684.34
## 3 9.10 1016.24
## 4 7.25 577.38
## 5 9.63 2075.04
## 6 11.80 3652.00
Perintah read.csv("D:/Robust.csv")
digunakan untuk memanggil file csv yang tersimpan pada komputer, syntax head
digunakan untuk memanggil 6 data pertama.
Analisis Regresi Linier
Sebelum melakukan analisis Regresi Robust, terlebih dahulu melakukan analisis regresi linier, untuk mengetahui faktor apa saja yang berpengaruh signifikan terhadap Indeks stabilitas sistem keuangan. Berikut syntax yang digunakan :
#Analisis Regresi Linier
r=lm(data$Indeks.stabilitas.Sistem.Keuangan~data$IHSG+data$IHPR+data$Perkembangan.Kredit+data$Kurs+data$Jumlah.uang.beredar)
summary(r)
##
## Call:
## lm(formula = data$Indeks.stabilitas.Sistem.Keuangan ~ data$IHSG +
## data$IHPR + data$Perkembangan.Kredit + data$Kurs + data$Jumlah.uang.beredar)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.11235 -0.05971 -0.01901 0.03879 0.17602
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1.231e+00 1.873e-01 6.572 4.85e-08 ***
## data$IHSG 6.592e-06 2.475e-05 0.266 0.79124
## data$IHPR -4.492e-03 1.363e-03 -3.295 0.00195 **
## data$Perkembangan.Kredit 2.514e-06 3.206e-06 0.784 0.43711
## data$Kurs 5.954e-02 2.990e-02 1.991 0.05270 .
## data$Jumlah.uang.beredar -9.967e-05 4.117e-05 -2.421 0.01967 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.08015 on 44 degrees of freedom
## Multiple R-squared: 0.7102, Adjusted R-squared: 0.6773
## F-statistic: 21.57 on 5 and 44 DF, p-value: 7.596e-11
r1=lm(data$Indeks.stabilitas.Sistem.Keuangan~data$IHPR+data$Perkembangan.Kredit+data$Kurs+data$Jumlah.uang.beredar)
summary(r1)
##
## Call:
## lm(formula = data$Indeks.stabilitas.Sistem.Keuangan ~ data$IHPR +
## data$Perkembangan.Kredit + data$Kurs + data$Jumlah.uang.beredar)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.11112 -0.06178 -0.01945 0.03984 0.17318
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1.234e+00 1.851e-01 6.668 3.17e-08 ***
## data$IHPR -4.675e-03 1.167e-03 -4.007 0.000228 ***
## data$Perkembangan.Kredit 2.660e-06 3.126e-06 0.851 0.399306
## data$Kurs 6.203e-02 2.811e-02 2.207 0.032465 *
## data$Jumlah.uang.beredar -9.229e-05 3.011e-05 -3.065 0.003677 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.07931 on 45 degrees of freedom
## Multiple R-squared: 0.7097, Adjusted R-squared: 0.6839
## F-statistic: 27.51 on 4 and 45 DF, p-value: 1.389e-11
r2=lm(data$Indeks.stabilitas.Sistem.Keuangan~data$IHPR+data$Kurs+data$Jumlah.uang.beredar)
summary(r2)
##
## Call:
## lm(formula = data$Indeks.stabilitas.Sistem.Keuangan ~ data$IHPR +
## data$Kurs + data$Jumlah.uang.beredar)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.11345 -0.06196 -0.02354 0.04517 0.17332
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1.237e+00 1.845e-01 6.705 2.52e-08 ***
## data$IHPR -4.527e-03 1.150e-03 -3.936 0.000278 ***
## data$Kurs 5.902e-02 2.780e-02 2.123 0.039167 *
## data$Jumlah.uang.beredar -8.733e-05 2.946e-05 -2.965 0.004789 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.07908 on 46 degrees of freedom
## Multiple R-squared: 0.7051, Adjusted R-squared: 0.6858
## F-statistic: 36.66 on 3 and 46 DF, p-value: 2.964e-12
Hasil yang diperoleh jika nilai sig atau p-value < 0.05 maka tolak Ho, artinya variabel tersebut signifikan, jika sebaliknya variabel tersebut tidak signifikan dan harus dikeluarkan dari model. dari hasi yang diperoleh terdapat tiga model regresi, namun pada model ke tiga yang diberi nama r2 mempunyai variabel yang signifikan semua. oleh sebab itu pada model ke tiga akan di uji Asumsi Klasik, salah satu uji asumsi klasik pada regresi linier adalah uji normalitas residual.
Uji Asumsi Klasik
#uji asumsi Klasik
#uji normalitas
res=residuals(r2)
shapiro.test(res)
##
## Shapiro-Wilk normality test
##
## data: res
## W = 0.94654, p-value = 0.02465
Didapat Model r2 yang digunakan untuk uji asumsi klasik, selanjutnya mencari nilai residual pada model r2 dengan perintah residuals(r2)
kemudian diberi nama res
, selanjutnya uji normalitas menggunakan Shapiro test
didapat hasil residual tidak berdistribusi normal, karena nilai sig atau p-value < 0.05.
karena residual tidak berdistribusi normal, ada kemungkinan data tersebut mengandung outlier, untuk mendeteksi data outlier menggunakan syntax sebagai berikut :
#Deteksi Outlier
library(MVN)
## Warning: package 'MVN' was built under R version 3.3.3
## sROC 0.1-2 loaded
mvOutlier(data,qqplot=TRUE, method='quan')
## $outlier
## Observation Mahalanobis Distance Outlier
## 1 1 537433.056 TRUE
## 2 2 1935.079 TRUE
## 3 3 870.521 TRUE
## 4 4 774.372 TRUE
## 5 5 682.480 TRUE
## 6 6 619.256 TRUE
## 7 7 595.293 TRUE
## 8 8 514.521 TRUE
## 9 9 478.672 TRUE
## 10 10 410.047 TRUE
## 11 11 380.543 TRUE
## 12 12 304.617 TRUE
## 13 13 194.954 TRUE
## 14 14 183.812 TRUE
## 15 15 179.592 TRUE
## 16 16 148.553 TRUE
## 17 17 85.581 TRUE
## 18 18 72.648 TRUE
## 19 19 67.520 TRUE
## 20 20 42.230 TRUE
## 21 21 26.611 TRUE
## 22 22 7.339 FALSE
## 23 23 6.638 FALSE
## 24 24 6.054 FALSE
## 25 25 5.511 FALSE
## 26 26 4.828 FALSE
## 27 27 4.552 FALSE
## 28 28 4.494 FALSE
## 29 29 4.455 FALSE
## 30 30 4.276 FALSE
## 31 31 4.207 FALSE
## 32 32 3.916 FALSE
## 33 33 3.722 FALSE
## 34 34 3.691 FALSE
## 35 35 3.643 FALSE
## 36 36 3.498 FALSE
## 37 37 3.437 FALSE
## 38 38 3.219 FALSE
## 39 39 3.195 FALSE
## 40 40 3.014 FALSE
## 41 41 3.011 FALSE
## 42 42 2.917 FALSE
## 43 43 2.910 FALSE
## 44 44 2.685 FALSE
## 45 45 2.682 FALSE
## 46 46 2.615 FALSE
## 47 47 2.534 FALSE
## 48 48 2.523 FALSE
## 49 49 1.833 FALSE
## 50 50 1.681 FALSE
##
## $newData
## NO Indeks.stabilitas.Sistem.Keuangan IHSG IHPR Perkembangan.Kredit
## 22 22 0.90 1702.36 146.14 669.92
## 23 23 0.98 4155.07 147.94 2154.88
## 24 24 0.95 4347.08 150.85 2343.71
## 25 25 0.93 4016.51 145.43 2034.12
## 26 26 1.12 598.67 150.63 293.65
## 27 27 0.77 4973.86 184.25 3105.87
## 28 28 0.70 5419.45 194.54 3745.89
## 29 29 0.76 5071.15 186.30 3205.36
## 30 30 0.99 3519.39 136.65 1486.49
## 31 31 0.75 5121.08 188.55 3297.75
## 32 32 1.00 459.67 136.13 181.53
## 33 33 1.24 1080.05 127.33 485.22
## 34 34 1.24 546.67 137.63 241.38
## 35 35 0.72 4884.03 181.64 3074.34
## 36 36 0.88 4373.88 154.15 2486.54
## 37 37 0.98 442.00 139.25 147.74
## 38 38 0.78 4870.88 178.88 2998.72
## 39 39 1.06 3775.97 141.91 1739.95
## 40 40 0.87 4743.83 178.31 29004.09
## 41 41 1.10 3217.48 136.75 1427.37
## 42 42 0.97 424.00 138.64 139.61
## 43 43 0.71 5322.29 193.83 3650.55
## 44 44 0.95 400.67 138.36 148.95
## 45 45 1.11 749.44 157.53 340.75
## 46 46 1.00 3881.72 143.56 1835.31
## 47 47 0.97 4314.37 153.56 2270.21
## 48 48 0.99 3709.30 141.23 1628.37
## 49 49 1.07 1341.60 139.72 598.12
## 50 50 1.14 777.27 121.81 392.41
## Kurs Jumlah.uang.beredar
## 22 9.26 1409.55
## 23 10.94 3092.36
## 24 11.39 3290.58
## 25 10.43 2992.29
## 26 9.00 890.13
## 27 12.86 4213.10
## 28 14.06 4884.04
## 29 13.13 4340.13
## 30 9.90 2375.95
## 31 13.16 4428.63
## 32 8.64 776.09
## 33 9.10 1054.73
## 34 8.94 856.42
## 35 12.49 4091.50
## 36 11.64 3400.20
## 37 8.50 747.03
## 38 12.24 3933.83
## 39 10.12 2609.74
## 40 11.84 3795.18
## 41 9.82 2243.00
## 42 8.49 686.45
## 43 13.76 4738.01
## 44 8.41 646.21
## 45 9.06 939.39
## 46 10.18 2761.53
## 47 11.37 3226.62
## 48 10.05 2477.52
## 49 9.23 1270.00
## 50 9.09 980.71
Sebelum mendeteksi data outlier, terlebih dahulu meng-install package MVN dengan cara install.packages("MVN")
jika sudah ter-install cukup menuliskan syintax library(MVN)
untuk memanggil.
hasil deteksi data outlier diketahui bahwa data outlier sebanyak 21 data, sedangkan non-outlier sebanyak 29 data. Oleh karena itu, regresi robust dapat digunakan karena regresi robust digunakan ketika terdapat beberapa outlier yang mempengaruhi model.
Analisis Regresi Robust dengan Least Trimmed Square (LTS)
#LTS
library(robustbase)
## Warning: package 'robustbase' was built under R version 3.3.3
model.LTS=ltsReg(data$Indeks.stabilitas.Sistem.Keuangan~data$IHPR+data$Kurs+data$Jumlah.uang.beredar)
model.LTS
##
## Call:
## ltsReg.formula(formula = data$Indeks.stabilitas.Sistem.Keuangan ~ data$IHPR + data$Kurs + data$Jumlah.uang.beredar)
##
## Coefficients:
## Intercept data$IHPR
## 1.507e+00 -7.625e-03
## data$Kurs data$Jumlah.uang.beredar
## 6.478e-02 -4.092e-05
##
## Scale estimate 0.06287
summary(model.LTS)
##
## Call:
## ltsReg.formula(formula = data$Indeks.stabilitas.Sistem.Keuangan ~
## data$IHPR + data$Kurs + data$Jumlah.uang.beredar)
##
## Residuals (from reweighted LS):
## Min 1Q Median 3Q Max
## -0.08122 -0.01863 0.00000 0.01389 0.11077
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## Intercept 1.507e+00 1.113e-01 13.544 6.51e-16 ***
## data$IHPR -7.625e-03 7.846e-04 -9.718 9.96e-12 ***
## data$Kurs 6.478e-02 1.646e-02 3.935 0.000353 ***
## data$Jumlah.uang.beredar -4.092e-05 1.810e-05 -2.261 0.029734 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.04521 on 37 degrees of freedom
## Multiple R-Squared: 0.89, Adjusted R-squared: 0.8811
## F-statistic: 99.83 on 3 and 37 DF, p-value: < 2.2e-16
sebelum analisi Robust,terlebih dahulu install package robustbase
dengan cara install.packages("robustbase")
jika sudah ter-install cukup menuliskan syintax library(robustbase)
untuk memanggil.
Model persamaan regresi yang terbentuk dari estimasi nilai parameter metode estimasi LTS adalah: Indeks stabilitas sistem keuangan=1.507-0.007625 IHPR+0.06478 Kurs-0.00004092 Jumlah uang beredar Estimasi pada metode ini menghasilkan Residual standard error sebesar 0.04521.
Interpretasi Hasil : Nilai konstanta sebesar 1.507 berarti jika IHPR, Kurs dan Jumlah uang beredar mendekati nol maka nilai indeks stabilitas sistem keuangan akan bernilai mendekati konstanta bernilai 1.507. Nilai IHPR sebesar 0.007625 berarti setiap kenaikan satu satuan maka akan menurunkan indeks stabilitas sistem keuangan sebesar 0,007625 dengan syarat asumsi bahwa variabel bebas yang lain dari model regresi adalah tetap, nilai Kurs sebesar 0.06478 maka setiap kenaikan satu satuan Kurs akan menaikan Indeks stabilitas sistem keuangan sebesar 0.06478 dengan syarat asumsi bahwa variabel bebas yang lain dari model regresi adalah tetap dan nilai jumlah uang beredar sebesar 0,00004092 maka setiap kenaikan satu satuan akan menurunkan nilai indeks stabilitas sistem keuangan sebesar 0,00004092 dengan syarat asumsi bahwa variabel bebas yang lain dari model regresi adalah tetap.
Sekian Selamat mencoba, semoga Bermanfaat
Untuk syntax estimasi-GS (Generalizes S- Estimation) ada ga kak? Mohon bantuannya, makasih
ReplyDelete