Project DC

Afris Setiya Intan Amanda

4/9/2023

Linear Regression vs Robust Linear Regression

Input Data

#Data Peta
peta <- readOGR("D:/MY COLLEGE/SEMESTER 6/DC/DATA/JABAR_KAB.shp")
## Warning: OGR support is provided by the sf and terra packages among others
## Warning: OGR support is provided by the sf and terra packages among others
## Warning: OGR support is provided by the sf and terra packages among others
## Warning: OGR support is provided by the sf and terra packages among others
## Warning: OGR support is provided by the sf and terra packages among others
## Warning: OGR support is provided by the sf and terra packages among others
## Warning: OGR support is provided by the sf and terra packages among others
## OGR data source with driver: ESRI Shapefile 
## Source: "D:\MY COLLEGE\SEMESTER 6\DC\DATA\JABAR_KAB.shp", layer: "JABAR_KAB"
## with 27 features
## It has 6 fields

#Data Excel
df = read.xlsx("D:/MY COLLEGE/SEMESTER 6/DC/DATA/Jabar Data.xlsx")
View(df)
head(df)
##   PROVNO KABKOTNO KODE2010   PROVINSI      KABKOT IDSP2010 Y X1    X2     X3 X4
## 1     32        1     3201 JAWA BARAT       BOGOR     3201 4 71 29.50  77938 20
## 2     32        2     3202 JAWA BARAT    SUKABUMI     3202 2 54 33.82 222497 19
## 3     32        3     3203 JAWA BARAT     CIANJUR     3203 1 88 37.45 785294 23
## 4     32        4     3204 JAWA BARAT     BANDUNG     3204 3 70 32.59 722933 21
## 5     32        5     3205 JAWA BARAT       GARUT     3205 1 50 36.94 861324 30
## 6     32        6     3206 JAWA BARAT TASIKMALAYA     3206 2 68 36.53 638521 22
##      X5    X6    X7
## 1 13809 0.779 45339
## 2 17793 0.735 25616
## 3 15906 0.439 20002
## 4 15314 0.477 35590
## 5 18059 0.345 23356
## 6 17152 0.321 20855
str(df)
## 'data.frame':    27 obs. of  14 variables:
##  $ PROVNO  : num  32 32 32 32 32 32 32 32 32 32 ...
##  $ KABKOTNO: num  1 2 3 4 5 6 7 8 9 10 ...
##  $ KODE2010: num  3201 3202 3203 3204 3205 ...
##  $ PROVINSI: chr  "JAWA BARAT" "JAWA BARAT" "JAWA BARAT" "JAWA BARAT" ...
##  $ KABKOT  : chr  "BOGOR" "SUKABUMI" "CIANJUR" "BANDUNG" ...
##  $ IDSP2010: num  3201 3202 3203 3204 3205 ...
##  $ Y       : num  4 2 1 3 1 2 2 4 4 3 ...
##  $ X1      : num  71 54 88 70 50 68 137 48 130 72 ...
##  $ X2      : num  29.5 33.8 37.5 32.6 36.9 ...
##  $ X3      : num  77938 222497 785294 722933 861324 ...
##  $ X4      : num  20 19 23 21 30 22 30 18 30 24 ...
##  $ X5      : num  13809 17793 15906 15314 18059 ...
##  $ X6      : num  0.779 0.735 0.439 0.477 0.345 0.321 0.554 0.838 0.617 0.692 ...
##  $ X7      : num  45339 25616 20002 35590 23356 ...
dt.new <- df %>% dplyr::select(Y, X1, X2, X3, X4, X5, X6, X7)

Data

Tabel 1 Peubah-Peubah yang Digunakan

Prosedur Analisis

Gambar 1 Prosedur Penelitian

1. Eksplorasi Data

Boxplot

par(mfrow=c(2,2))
boxplot(df$Y, xlab = "Y")
boxplot(df$X1, xlab = "X1")
boxplot(df$X2, xlab = "X2")
boxplot(df$X3, xlab = "X3")

boxplot(df$X4, xlab = "X4")
boxplot(df$X5, xlab = "X5")
boxplot(df$X6, xlab = "X6")
boxplot(df$X7, xlab = "X7")

Berdasarkan boxplot diatas, sebaran Y, X1, X3, X5 cenderung menjulur ke kanan. Artinya, terdapat sebagin besar kabupaten/kota yang memiliki nilai prevalensi pengidap DM, tingkat konsumsi minuman, jumlah pengidap hipertensi, dan rataan pembelian beras yang cenderung kecil. Sementara peubah X2, X6 dan X7 cenderung simetris. Hal ini berarti nilai persentase perokok, rataan konsumsi gula pasir, dan PDRB perkapita tiap kabupaten/kota cenderung sama. Peubah X4 cenderung menjulur ke kiri. Artinya, sebagian besar kabupaten/kota yang memiliki skor PPH cenderung besar. Selain itu terdeteksi adanya pencilan pada peubah Y dan X1, artinya terdapat nilai kedua peubah tersebut sangat jauh dari nilai rata-rata sebagian kabupaten/kota lainnya.

Histogram

pdc <- df[,c(-1,-2,-3,-4,-5,-6)]
plot_histogram(data = pdc, nrow = 2, ncol = 2, geom_histogram_args = list (fill="#D27685"))
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

Scatter Plot

plot(df$X1, df$Y,
  xlab="Tingkat Konsumsi Minuman", 
  ylab="Prevalensi Pengidap DM",
  pch=20, col="orange", cex=2)
reg.ols = lm(Y~X1, data = df)

lines.lm(reg.ols, col=2, add=T)

plot(df$X2, df$Y,
  xlab="Persentase Penduduk Perokok", 
  ylab= "Prevalensi Pengidap DM",
  pch=20, col="orange", cex=2)
reg.ols = lm(Y~X2, data = df)

lines.lm(reg.ols, col=2, add=T)

plot(df$X3, df$Y,
  xlab="Jumlah Pengidap Hipertensi", 
  ylab="Prevalensi Pengidap DM",
  pch=20, col="orange", cex=2)
reg.ols = lm(Y~X3, data = df)

lines.lm(reg.ols, col=2, add=T)

plot(df$X4, df$Y,
  xlab="Skor PPH Konsumsi Sayur dan Buah", 
  ylab="Prevalensi Pengidap DM",
  pch=20, col="orange", cex=2)
reg.ols = lm(Y~X4, data = df)

lines.lm(reg.ols, col=2, add=T)

plot(df$X5, df$Y,
  xlab="Pengeluaran Pembelian Beras", 
  ylab="Prevalensi Pengidap DM",
  pch=20, col="orange", cex=2)
reg.ols = lm(Y~X5, data = df)

lines.lm(reg.ols, col=2, add=T)

plot(df$X6, df$Y,
  xlab="Konsumsi Gula Pasir", 
  ylab="Prevalensi Pengidap DM",
  pch=20, col="orange", cex=2)
reg.ols = lm(Y~X6, data = df)

lines.lm(reg.ols, col=2, add=T)

plot(df$X7, df$Y,
  xlab="PDRB per Kapita", 
  ylab="Prevalensi Pengidap DM",
  pch=20, col="orange", cex=2)
reg.ols = lm(Y~X7, data = df)

lines.lm(reg.ols, col=2, add=T)

Matriks Korelasi

corrplot::corrplot(cor(df[,c(7:14)]), method = "number", type="upper", sig.level = 0.05)

kor <- cor(pdc)
ggcorrplot(kor, type="lower", lab = TRUE)

correlation heatmap dapat menunjukkan kekuatan hubungan antarpeubah. Dapat terlihat bahwa tingkat konsumsi minuman (X1), konsumsi gula pasir (X6),dan PDRB perkapita atas dasar harga berlaku (X7) memiliki korelasi positif terhadap prevalensi diabetes melitus (Y). Sementara itu, peubah lainnya yaitu persentase penduduk merokok (X2), jumlah orang yang mengidap hipertensi (X3), tingkat konsumsi sayur dan buah (X4), dan pengeluaran pembelian beras (X5) memiliki korelasi negatif terhadap prevalensi diabetes melitus (Y). Kemudian, terlihat bahwa persentase perokok dan rataan konsumsi gula pasir memiliki korelasi negatif terkuat terhadap peubah respon.

Peta Geospasial

Diabetes Melitus Tipe 1 dan 2

k=16
colfunc <- colorRampPalette(c("green", "yellow","red"))
color <- colfunc(k)

peta$y <- df$Y
spplot(peta, "y", col.regions=color, main="Prevalensi Orang yang Mengidap Penyakit\nDiabetes Melitus di Jawa Barat Tahun 2021")

Peta geospasial di samping merupakan peta geospasial prevalensi kasus diabetes melitus tipe 1 dan 2 di Provinsi Jawa Barat pada tahun 2021. Dapat dilihat bahwa mayoritas kabupaten/kota di Provinsi Jawa Barat memiliki angka kasus diabetes melitus relatif rendah. Umumnya kabupaten/kota dengan kasus diabetes melitus yang relatif tinggi berada pada Kota Depok, Kota Bekasi, Kota Bogor, Kota Bandung, dan Kota Cirebon.

Penduduk Perokok

k=16
colfunc <- colorRampPalette(c("green", "yellow","red"))
color <- colfunc(k)

peta$x2 <- df$X2
spplot(peta, "x2", col.regions=color, main="Persentase Perokok\nUsia 15-24 & >=55 Tahun dalam Sebulan Terakhir\ndi Jawa Barat Tahun 2021")

Konsumsi Sayur dan Buah-Buahan

k=16
colfunc <- colorRampPalette(c("green", "yellow","red"))
color <- colfunc(k)

peta$x3 <- df$X3
spplot(peta, "x3", col.regions=color, main="Jumlah Penderita Penyakit Hipertensi\ndi Jawa Barat Tahun 2021")

Rataan Konsumsi Gula Pasir

k=16
colfunc <- colorRampPalette(c("green", "yellow","red"))
color <- colfunc(k)

peta$x6 <- df$X6
spplot(peta, "x6", col.regions=color, main="Rata-Rata Pengeluaran Pembelian Beras Perkapita\nSeminggu di Jawa Barat Tahun 2021")

2. Pemodelan Penuh

RLB OLS Penuh

model.awal <- lm(Y~., data = dt.new)

summary(model.awal)
## 
## Call:
## lm(formula = Y ~ ., data = dt.new)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -2.93392 -0.91283 -0.00431  0.55453  2.86382 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  2.117e+01  4.862e+00   4.355 0.000341 ***
## X1           1.159e-02  1.651e-02   0.702 0.491081    
## X2          -2.967e-01  1.097e-01  -2.704 0.014070 *  
## X3          -2.199e-06  1.252e-06  -1.757 0.095085 .  
## X4          -8.111e-03  9.197e-02  -0.088 0.930646    
## X5          -4.447e-04  2.763e-04  -1.609 0.124005    
## X6          -4.184e-01  2.252e+00  -0.186 0.854545    
## X7           1.084e-05  1.332e-05   0.814 0.425737    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.534 on 19 degrees of freedom
## Multiple R-squared:  0.7196, Adjusted R-squared:  0.6164 
## F-statistic: 6.967 on 7 and 19 DF,  p-value: 0.0003475

Berdasarkan persamaan regresi di atas, dapat diinterpretasikan bahwa ketika nilai peubah lain sama dengan nol maka prevalensi orang yang mengidap penyakit diabetes melitus di Jawa Barat akan bernilai sebesar 21.17 jiwa. Lalu, untuk setiap pertambahan tingkat konsumsi makanan sebesar 1 gram/kap/hari, prevalensi orang yang mengidap penyakit diabetes melitus akan meningkat sebesar 0.0116 jiwa dengan asumsi peubah lain tetap. Peubah lainnya berhubungan negatif sehingga peningkatan pada masing-masing persentase penduduk usia 15-24 &>= 55 tahun yang merokok dalam sebulan terakhir, prevalensi orang yang mengidap penyakit hipertensi, skor PPH tingkat konsumsi sayur dan buah-buahan, rata-rata pengeluaran pembelian beras perkapita seminggu, rata-rata konsumsi gula pasir perkapita seminggu, dan PDRB perkapita atas dasar harga berlaku akan menurunkan prevalensi orang yang mengidap penyakit diabetes melitus berurut sebesar 0.2967 jiwa, 0.0000022 jiwa, 0.0081 jiwa, 0.00045 jiwa, 0.4184 jiwa,dan 0.000011 jiwa dengan asumsi peubah lainnya tetap.

anova(model.awal)
## Analysis of Variance Table
## 
## Response: Y
##           Df Sum Sq Mean Sq F value    Pr(>F)    
## X1         1  0.316   0.316  0.1343   0.71802    
## X2         1 91.034  91.034 38.7021 5.633e-06 ***
## X3         1 14.506  14.506  6.1670   0.02252 *  
## X4         1  0.097   0.097  0.0412   0.84132    
## X5         1  7.149   7.149  3.0395   0.09742 .  
## X6         1  0.055   0.055  0.0235   0.87980    
## X7         1  1.558   1.558  0.6626   0.42574    
## Residuals 19 44.691   2.352                      
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

3. Identifikasi Multikolinieritas

ols_vif_tol(model.awal)
##   Variables Tolerance      VIF
## 1        X1 0.8142157 1.228176
## 2        X2 0.3906496 2.559838
## 3        X3 0.8071965 1.238856
## 4        X4 0.6792024 1.472315
## 5        X5 0.4739803 2.109792
## 6        X6 0.8142741 1.228088
## 7        X7 0.6651699 1.503375

Berdasarkan model penuh, seluruh peubah yang digunakan tidak terdeteksi multikolinieritas karena memiliki nilai VIF < 10 dan tolerance > 0.1.

4. Uji Asumsi Klasik

Pada RLB OLS Penuh

uji_asumsi <- function(modelreg, autocol.test = c("runs", "dw", "bgodfrey"), 
 homos.test = c("bp", "glejser", "ncv"), 
 normal.test = c("ks", "shapiro.w", "jb"), taraf.nyata=0.05){
 #Hipoteisis: H0: Asumsi terpenuhi vs H1: Asumsi tidak terpenuhi
 sisaan <- modelreg$residuals
 uji_t <- c()
 autokol <- c()
 homoskedastisitas <- c()
 ks <- c()
 p_value <- matrix(NA, ncol = 1, nrow = 4)
 a <- t.test(sisaan,
 mu = 0,
 conf.level = 0.95)
 p_value[1,1] <- round(a$p.value,3)
 if(a$p.value<taraf.nyata){hasil = "Tolak H0"}else{hasil="Tak Tolak H0"}
 uji_t <- hasil
 
 if (autocol.test == "runs"){
 b <- randtests::runs.test(sisaan)
 p_value[2,1] <- round(b$p.value,3)
 if(b$p.value<taraf.nyata){hasil = "Tolak H0"}else{hasil="Tak Tolak H0"}
 autokol <- hasil
 }else if (autocol.test == "dw") {
 b <- lmtest::dwtest(modelreg)
 p_value[2,1] <- round(b$p.value,3)
 if(b$p.value<taraf.nyata){hasil = "Tolak H0"}else{hasil="Tak Tolak H0"}
 autokol <- hasil
 }else if (autocol.test == "bgodfrey") {
 b <- lmtest::bgtest(modelreg)
 p_value[2,1] <- round(b$p.value,3)
 if(b$p.value<taraf.nyata){hasil = "Tolak H0"}else{hasil="Tak Tolak H0"}
 autokol <- hasil
 }
 if (homos.test == "bp") {
 c <- lmtest::bptest(modelreg)
 p_value[3,1] <- round(c$p.value,3)
 if(c$p.value<taraf.nyata){hasil = "Tolak H0"}else{hasil="Tak Tolak H0"}
 homoskedastisitas <- hasil
 } else if (homos.test == "glejser") {
 c <- skedastic::glejser(modelreg)
 p_value[3,1] <- round(c$p.value,3)
 if(c$p.value<taraf.nyata){hasil = "Tolak H0"}else{hasil="Tak Tolak H0"}
 homoskedastisitas <- hasil
 } else if (homos.test == "ncv") {
 c <- car::ncvTest(modelreg)
 p_value[3,1] <- round(c$p,3)
 if(c$p<taraf.nyata){hasil = "Tolak H0"}else{hasil="Tak Tolak H0"}
 homoskedastisitas <- hasil
 }
 
 if (normal.test == "ks"){
 d <- ks.test(sisaan, "pnorm")
 p_value[4,1] <- round(d$p.value,3)
 if(d$p.value<taraf.nyata){hasil = "Tolak H0"}else{hasil="Tak Tolak H0"}
 ks <- hasil
 } else if (normal.test == "shapiro.w") {
 d <- shapiro.test(sisaan)
 p_value[4,1] <- round(d$p.value,3)
 if(d$p.value<taraf.nyata){hasil = "Tolak H0"}else{hasil="Tak Tolak H0"}
 ks <- hasil
 } else if (normal.test == "jb") {
 d <- tseries::jarque.bera.test(sisaan)
 p_value[4,1] <- round(d$p.value,3)
 if(d$p.value<taraf.nyata){hasil = "Tolak H0"}else{hasil="Tak Tolak H0"}
 ks <- hasil
 }
 
 keputusan <- rbind(uji_t, autokol, homoskedastisitas, ks)
 tabel <- data.frame(p_value, keputusan)
 colnames(tabel) <- c("P-value", "Keputusan")
 rownames(tabel) <- c("E(sisaan) = 0", "Non-autokorelasi", "Homoskedastisitas",
 "Normality")
 duga <- plot(modelreg,1)
 kuantil <- plot(modelreg,2)
 histo <- hist(sisaan)
 urutan <- plot(x = 1:length(sisaan),
 y = sisaan,
 type = 'b', 
 ylab = "Residuals",
 xlab = "Observation")
 print(tabel)
}
par(mfrow=c(2,2))
uji_asumsi(model.awal, "runs", "bp", "ks")

##                   P-value    Keputusan
## E(sisaan) = 0       1.000 Tak Tolak H0
## Non-autokorelasi    0.423 Tak Tolak H0
## Homoskedastisitas   0.202 Tak Tolak H0
## Normality           0.858 Tak Tolak H0

Berdasarkan uji formal dan secara eksploratif, dapat disimpulkan bahwa semua asumsi klasik dalam model regresi terpenuhi pada taraf nyata 5%. Hal ini dapat dilihat dari semua nilai p-value dalam uji formal yang lebih dari alpha (tak tolak H0). Lalu, plot sisaan vs Y duga, QQ-plot, histogram sisaan, dan plot sisaan vs urutan juga menunjukkan bahwa semua asumsi klasik terpenuhi.

5. Pemilihan Peubah Penjelas

Menggunakan stepwise elimination.

stepw <- step(lm(Y~1, data=dt.new), direction="both", scope=formula(dt.new), trace=1)
## Start:  AIC=49.94
## Y ~ 1
## 
##        Df Sum of Sq     RSS    AIC
## + X2    1    90.364  69.043 29.350
## + X5    1    83.353  76.055 31.962
## + X7    1    40.095 119.312 44.119
## + X6    1    18.042 141.365 48.699
## + X4    1    13.229 146.179 49.603
## <none>              159.407 49.942
## + X3    1     9.603 149.805 50.264
## + X1    1     0.316 159.091 51.888
## 
## Step:  AIC=29.35
## Y ~ X2
## 
##        Df Sum of Sq     RSS    AIC
## + X5    1    15.860  53.183 24.304
## + X3    1    12.715  56.329 25.855
## <none>               69.043 29.350
## + X7    1     2.042  67.002 30.540
## + X6    1     1.078  67.965 30.925
## + X1    1     0.986  68.057 30.962
## + X4    1     0.086  68.958 31.317
## - X2    1    90.364 159.407 49.942
## 
## Step:  AIC=24.3
## Y ~ X2 + X5
## 
##        Df Sum of Sq    RSS    AIC
## + X3    1    5.7070 47.476 23.239
## <none>              53.183 24.304
## + X7    1    0.8497 52.334 25.869
## + X1    1    0.2257 52.958 26.189
## + X4    1    0.0023 53.181 26.302
## + X6    1    0.0017 53.182 26.303
## - X5    1   15.8600 69.043 29.350
## - X2    1   22.8712 76.055 31.962
## 
## Step:  AIC=23.24
## Y ~ X2 + X5 + X3
## 
##        Df Sum of Sq    RSS    AIC
## <none>              47.476 23.239
## - X3    1    5.7070 53.183 24.304
## + X7    1    1.4934 45.983 24.376
## + X1    1    1.1635 46.313 24.569
## + X4    1    0.2004 47.276 25.124
## + X6    1    0.0480 47.428 25.211
## - X5    1    8.8522 56.329 25.855
## - X2    1   27.3690 74.845 33.529
stepAIC(model.awal, direction = "both")
## Start:  AIC=29.61
## Y ~ X1 + X2 + X3 + X4 + X5 + X6 + X7
## 
##        Df Sum of Sq    RSS    AIC
## - X4    1    0.0183 44.710 27.618
## - X6    1    0.0812 44.773 27.655
## - X1    1    1.1598 45.851 28.298
## - X7    1    1.5585 46.250 28.532
## <none>              44.691 29.606
## - X5    1    6.0930 50.784 31.057
## - X3    1    7.2583 51.950 31.670
## - X2    1   17.1972 61.889 36.396
## 
## Step:  AIC=27.62
## Y ~ X1 + X2 + X3 + X5 + X6 + X7
## 
##        Df Sum of Sq    RSS    AIC
## - X6    1    0.0789 44.789 25.665
## - X1    1    1.2048 45.914 26.335
## - X7    1    1.5469 46.257 26.536
## <none>              44.710 27.618
## - X5    1    6.0749 50.785 29.057
## + X4    1    0.0183 44.691 29.606
## - X3    1    7.4132 52.123 29.760
## - X2    1   21.0768 65.786 36.046
## 
## Step:  AIC=25.67
## Y ~ X1 + X2 + X3 + X5 + X7
## 
##        Df Sum of Sq    RSS    AIC
## - X1    1    1.1945 45.983 24.376
## - X7    1    1.5243 46.313 24.569
## <none>              44.789 25.665
## - X5    1    6.0331 50.822 27.077
## + X6    1    0.0789 44.710 27.618
## + X4    1    0.0159 44.773 27.655
## - X3    1    7.3350 52.123 27.760
## - X2    1   21.0966 65.885 34.086
## 
## Step:  AIC=24.38
## Y ~ X2 + X3 + X5 + X7
## 
##        Df Sum of Sq    RSS    AIC
## - X7    1    1.4934 47.476 23.239
## <none>              45.983 24.376
## + X1    1    1.1945 44.789 25.665
## - X3    1    6.3508 52.334 25.869
## + X6    1    0.0686 45.914 26.335
## + X4    1    0.0665 45.917 26.337
## - X5    1    7.4941 53.477 26.452
## - X2    1   20.0212 66.004 32.135
## 
## Step:  AIC=23.24
## Y ~ X2 + X3 + X5
## 
##        Df Sum of Sq    RSS    AIC
## <none>              47.476 23.239
## - X3    1    5.7070 53.183 24.304
## + X7    1    1.4934 45.983 24.376
## + X1    1    1.1635 46.313 24.569
## + X4    1    0.2004 47.276 25.124
## + X6    1    0.0480 47.428 25.211
## - X5    1    8.8522 56.329 25.855
## - X2    1   27.3690 74.845 33.529
## 
## Call:
## lm(formula = Y ~ X2 + X3 + X5, data = dt.new)
## 
## Coefficients:
## (Intercept)           X2           X3           X5  
##   2.348e+01   -3.139e-01   -1.857e-06   -5.073e-04

stepAIC(model.awal, direction = "backward")
## Start:  AIC=29.61
## Y ~ X1 + X2 + X3 + X4 + X5 + X6 + X7
## 
##        Df Sum of Sq    RSS    AIC
## - X4    1    0.0183 44.710 27.618
## - X6    1    0.0812 44.773 27.655
## - X1    1    1.1598 45.851 28.298
## - X7    1    1.5585 46.250 28.532
## <none>              44.691 29.606
## - X5    1    6.0930 50.784 31.057
## - X3    1    7.2583 51.950 31.670
## - X2    1   17.1972 61.889 36.396
## 
## Step:  AIC=27.62
## Y ~ X1 + X2 + X3 + X5 + X6 + X7
## 
##        Df Sum of Sq    RSS    AIC
## - X6    1    0.0789 44.789 25.665
## - X1    1    1.2048 45.914 26.335
## - X7    1    1.5469 46.257 26.536
## <none>              44.710 27.618
## - X5    1    6.0749 50.785 29.057
## - X3    1    7.4132 52.123 29.760
## - X2    1   21.0768 65.786 36.046
## 
## Step:  AIC=25.67
## Y ~ X1 + X2 + X3 + X5 + X7
## 
##        Df Sum of Sq    RSS    AIC
## - X1    1    1.1945 45.983 24.376
## - X7    1    1.5243 46.313 24.569
## <none>              44.789 25.665
## - X5    1    6.0331 50.822 27.077
## - X3    1    7.3350 52.123 27.760
## - X2    1   21.0966 65.885 34.086
## 
## Step:  AIC=24.38
## Y ~ X2 + X3 + X5 + X7
## 
##        Df Sum of Sq    RSS    AIC
## - X7    1    1.4934 47.476 23.239
## <none>              45.983 24.376
## - X3    1    6.3508 52.334 25.869
## - X5    1    7.4941 53.477 26.452
## - X2    1   20.0212 66.004 32.135
## 
## Step:  AIC=23.24
## Y ~ X2 + X3 + X5
## 
##        Df Sum of Sq    RSS    AIC
## <none>              47.476 23.239
## - X3    1    5.7070 53.183 24.304
## - X5    1    8.8522 56.329 25.855
## - X2    1   27.3690 74.845 33.529
## 
## Call:
## lm(formula = Y ~ X2 + X3 + X5, data = dt.new)
## 
## Coefficients:
## (Intercept)           X2           X3           X5  
##   2.348e+01   -3.139e-01   -1.857e-06   -5.073e-04
stepAIC(model.awal, direction = "forward")
## Start:  AIC=29.61
## Y ~ X1 + X2 + X3 + X4 + X5 + X6 + X7
## 
## Call:
## lm(formula = Y ~ X1 + X2 + X3 + X4 + X5 + X6 + X7, data = dt.new)
## 
## Coefficients:
## (Intercept)           X1           X2           X3           X4           X5  
##   2.117e+01    1.159e-02   -2.967e-01   -2.199e-06   -8.111e-03   -4.447e-04  
##          X6           X7  
##  -4.184e-01    1.084e-05
model.bestsubsets <- regsubsets(Y~., dt.new)
summary(model.bestsubsets)
## Subset selection object
## Call: regsubsets.formula(Y ~ ., dt.new)
## 7 Variables  (and intercept)
##    Forced in Forced out
## X1     FALSE      FALSE
## X2     FALSE      FALSE
## X3     FALSE      FALSE
## X4     FALSE      FALSE
## X5     FALSE      FALSE
## X6     FALSE      FALSE
## X7     FALSE      FALSE
## 1 subsets of each size up to 7
## Selection Algorithm: exhaustive
##          X1  X2  X3  X4  X5  X6  X7 
## 1  ( 1 ) " " "*" " " " " " " " " " "
## 2  ( 1 ) " " "*" " " " " "*" " " " "
## 3  ( 1 ) " " "*" "*" " " "*" " " " "
## 4  ( 1 ) " " "*" "*" " " "*" " " "*"
## 5  ( 1 ) "*" "*" "*" " " "*" " " "*"
## 6  ( 1 ) "*" "*" "*" " " "*" "*" "*"
## 7  ( 1 ) "*" "*" "*" "*" "*" "*" "*"

6. Pendeteksian Pencilan, Titik Leverage, dam Amatan Berpengaruh

Pencilan

#Mendeteksi Pencilan
which(abs(rstandard(model.awal))>2)
##  1 20 22 
##  1 20 22
df[which(abs(rstandard(model.awal))>2),]
##    PROVNO KABKOTNO KODE2010   PROVINSI   KABKOT IDSP2010  Y X1   X2    X3 X4
## 1      32        1     3201 JAWA BARAT    BOGOR     3201  4 71 29.5 77938 20
## 20     32       72     3272 JAWA BARAT SUKABUMI     3272  3 66 32.8 77257 30
## 22     32       74     3274 JAWA BARAT  CIREBON     3274 10 63 31.0 77723 21
##       X5    X6    X7
## 1  13809 0.779 45339
## 20 13829 0.558 37209
## 22 12874 0.696 72749

Diketahui bahwa terdapat tiga amatan pencilan, yaitu pada data ke-1 (Kab Bogor), data ke-20 (Kota Sukabumi), dan data ke-22 (Kota Cirebon).

Titik Leverage

#Mendeteksi Leverage
which(abs(hatvalues(model.awal))>0.52)
## named integer(0)

Diketahui bahwa tidak ada amatan data yang merupakan titik leverage.

df[which(abs(hatvalues(model.awal))>0.52),] #2p/n=2x7/27
##  [1] PROVNO   KABKOTNO KODE2010 PROVINSI KABKOT   IDSP2010 Y        X1      
##  [9] X2       X3       X4       X5       X6       X7      
## <0 rows> (or 0-length row.names)
#Batas pencilan dan leverage
ri = rstandard(model.awal)
hii = hatvalues(model.awal)
Obs = c(1:27)
summ <- cbind.data.frame(Obs, hii, ri)
View(summ)

Amatan Berpengaruh

#Eksploratif amatan berpengaruh (jarak cook)
plot(model.awal, 5)

Dengan metode jarak Cook (Cook’s distance) secara eksploratif, terlihat bahwa tidak ada amatan berpengaruh pada taraf nyata 5% karena tidak ada titik plot yang berada di luar garis putus-putus skala 0.5.

#mendeteksi amatan berpengaruh
influence.measures(model.awal)
## Influence measures of
##   lm(formula = Y ~ ., data = dt.new) :
## 
##       dfb.1_    dfb.X1    dfb.X2    dfb.X3    dfb.X4    dfb.X5   dfb.X6
## 1  -0.364948 -1.38e-01  0.214111  0.495444  0.383129  4.67e-02 -0.34748
## 2   0.239548  3.24e-02  0.193821  0.235025  0.259874 -5.41e-01 -0.32561
## 3  -0.143860 -1.25e-01 -0.239652 -0.326736  0.276653  2.21e-01  0.16664
## 4  -0.180672  2.11e-02 -0.025253 -0.191729  0.153679  1.02e-01  0.12923
## 5   0.009162 -1.12e-01 -0.046793  0.076385  0.093606  3.13e-02 -0.06033
## 6  -0.000574  2.51e-05 -0.000121 -0.000486  0.000772 -4.35e-05  0.00113
## 7   0.027757 -5.24e-02 -0.018339  0.010015  0.009046 -5.87e-03 -0.00214
## 8   0.027582 -1.07e-01  0.252428  0.067749 -0.228408 -1.56e-01  0.20448
## 9   0.001106 -7.12e-02  0.008754 -0.019473 -0.014488  1.64e-02 -0.00474
## 10  0.007177 -2.55e-02  0.054903  0.106990 -0.030320 -5.28e-02  0.05299
## 11 -0.577348  6.61e-02  0.063003 -0.363538  0.296961  4.11e-01  0.19040
## 12  0.138191 -1.51e-02  0.009919 -0.006613 -0.052163 -8.97e-02 -0.13969
## 13 -0.007113 -7.36e-02 -0.002469  0.031736  0.078545 -1.70e-02  0.03531
## 14 -0.096717 -4.79e-02 -0.202603  0.048574 -0.015437  2.86e-01  0.08261
## 15  0.103004 -1.33e-02 -0.118310 -0.082675  0.026714  1.26e-02  0.01766
## 16  0.224628  1.57e-01  0.234184 -0.108852 -0.151484 -2.99e-01 -0.21504
## 17  0.005594 -7.37e-02  0.022956  0.014206  0.057640 -2.29e-02 -0.01880
## 18  0.038442  5.22e-03 -0.032774  0.036002  0.010594 -2.63e-02  0.00195
## 19  0.249947  8.60e-02 -0.274703 -0.368639 -0.048504  1.00e-01 -0.23980
## 20 -0.711479  6.16e-01  0.447174  0.625793 -1.146645  5.40e-01  0.43554
## 21 -0.071253  1.26e-02  0.123112  0.165418 -0.063988 -3.41e-02 -0.13670
## 22  0.510933 -1.71e-01  0.450613 -0.353028 -0.419559 -6.63e-01 -0.04750
## 23  0.282595  3.57e-02 -0.384167  0.285455 -0.081453  8.91e-03  0.23396
## 24  0.231700  9.60e-02 -0.457758 -0.006833  0.209516  5.80e-02 -0.02030
## 25  0.064178  4.50e-02 -0.088088 -0.086677  0.000852  1.24e-02 -0.01625
## 26 -0.001488 -1.07e-02  0.013697  0.022874  0.012481 -2.55e-02  0.02679
## 27  0.045008 -8.38e-02  0.043302 -0.057224  0.097860 -9.02e-02 -0.03097
##       dfb.X7    dffit cov.r   cook.d   hat inf
## 1   0.206537 -1.17380 0.215 1.38e-01 0.196    
## 2   0.058975 -0.78173 1.660 7.65e-02 0.388    
## 3   0.093726 -0.54221 1.555 3.73e-02 0.283    
## 4   0.067213 -0.32595 1.573 1.37e-02 0.193    
## 5  -0.037669  0.19823 2.668 5.17e-03 0.435   *
## 6   0.000232 -0.00182 2.055 4.39e-07 0.250    
## 7  -0.007019 -0.06315 3.097 5.26e-04 0.503   *
## 8  -0.040204  0.43428 2.706 2.46e-02 0.480   *
## 9   0.036453 -0.10462 2.442 1.44e-03 0.374   *
## 10 -0.038982  0.13768 1.926 2.49e-03 0.223    
## 11  0.142923  0.83635 0.600 7.98e-02 0.199    
## 12 -0.014311 -0.17609 2.640 4.08e-03 0.427   *
## 13 -0.038963  0.11804 1.914 1.83e-03 0.213    
## 14 -0.153777 -0.42614 1.570 2.32e-02 0.238    
## 15 -0.314340 -0.37246 1.678 1.79e-02 0.242    
## 16 -0.453500 -0.81174 1.426 8.15e-02 0.355    
## 17 -0.026100  0.13237 1.623 2.29e-03 0.109    
## 18 -0.024098 -0.08288 1.998 9.05e-04 0.236    
## 19 -0.051138  0.54459 1.238 3.69e-02 0.216    
## 20  0.465643 -1.68130 0.207 2.77e-01 0.312   *
## 21  0.560497  0.68569 1.946 5.98e-02 0.410    
## 22  0.452469  1.33728 0.223 1.79e-01 0.238    
## 23 -0.374972  0.77572 1.131 7.32e-02 0.285    
## 24 -0.316362  0.57100 1.739 4.15e-02 0.333    
## 25 -0.005855  0.16744 1.723 3.67e-03 0.162    
## 26 -0.004548 -0.04713 2.602 2.93e-04 0.409   *
## 27 -0.039870  0.19820 2.084 5.16e-03 0.291
summary(influence.measures(model.awal))
## Potentially influential observations of
##   lm(formula = Y ~ ., data = dt.new) :
## 
##    dfb.1_ dfb.X1 dfb.X2 dfb.X3 dfb.X4  dfb.X5 dfb.X6 dfb.X7 dffit cov.r  
## 5   0.01  -0.11  -0.05   0.08   0.09    0.03  -0.06  -0.04   0.20  2.67_*
## 7   0.03  -0.05  -0.02   0.01   0.01   -0.01   0.00  -0.01  -0.06  3.10_*
## 8   0.03  -0.11   0.25   0.07  -0.23   -0.16   0.20  -0.04   0.43  2.71_*
## 9   0.00  -0.07   0.01  -0.02  -0.01    0.02   0.00   0.04  -0.10  2.44_*
## 12  0.14  -0.02   0.01  -0.01  -0.05   -0.09  -0.14  -0.01  -0.18  2.64_*
## 20 -0.71   0.62   0.45   0.63  -1.15_*  0.54   0.44   0.47  -1.68  0.21  
## 26  0.00  -0.01   0.01   0.02   0.01   -0.03   0.03   0.00  -0.05  2.60_*
##    cook.d hat  
## 5   0.01   0.44
## 7   0.00   0.50
## 8   0.02   0.48
## 9   0.00   0.37
## 12  0.00   0.43
## 20  0.28   0.31
## 26  0.00   0.41

Berdasarkan ringkasan di atas dengan pendekatan Jarak Cook, tidak ada amatan berpengaruh.

dt.new[c(1,20,22),1:8]
##     Y X1   X2    X3 X4    X5    X6    X7
## 1   4 71 29.5 77938 20 13809 0.779 45339
## 20  3 66 32.8 77257 30 13829 0.558 37209
## 22 10 63 31.0 77723 21 12874 0.696 72749
D1 <- cooks.distance(model.awal)
r <- stdres(model.awal)
a <- cbind(dt.new, D1, r)
a[D1 > 4/51, ] # D1 = jarak pada GLS yang diaproksimasikan kok bisa dapet 4/51
##     Y X1    X2     X3 X4    X5    X6     X7         D1         r
## 1   4 71 29.50  77938 20 13809 0.779  45339 0.13826500 -2.132915
## 11  4 81 39.82 248174 30 17566 0.593  32130 0.07978193  1.604910
## 16  5 66 27.18 658978 25 15143 0.750 107788 0.08151170 -1.089310
## 20  3 66 32.80  77257 30 13829 0.558  37209 0.27701774 -2.210954
## 22 10 63 31.00  77723 21 12874 0.696  72749 0.17910375  2.139637
r_absolut <- abs(r)
a <- cbind(dt.new, D1, r, r_absolut)
sort_a <- a[order(-r_absolut), ]
sort_a[1:27, ]
##     Y  X1    X2     X3 X4    X5    X6     X7           D1            r
## 20  3  66 32.80  77257 30 13829 0.558  37209 2.770177e-01 -2.210953862
## 22 10  63 31.00  77723 21 12874 0.696  72749 1.791038e-01  2.139636839
## 1   4  71 29.50  77938 20 13809 0.779  45339 1.382650e-01 -2.132915048
## 11  4  81 39.82 248174 30 17566 0.593  32130 7.978193e-02  1.604909625
## 23  8  78 26.32 667811 21 14186 0.770  39527 7.324726e-02  1.213061647
## 16  5  66 27.18 658978 25 15143 0.750 107788 8.151170e-02 -1.089310291
## 19  8  73 29.81  55386 22 14741 0.526  45921 3.693005e-02  1.034064940
## 2   2  54 33.82 222497 19 17793 0.735  25616 7.653676e-02 -0.982332987
## 3   1  88 37.45 785294 23 15906 0.439  20002 3.725054e-02 -0.868554790
## 21  7  79 30.00 722933 25 14507 0.558 121126 5.979113e-02  0.829292029
## 24  8  92 26.08 513142 26 14157 0.653  35659 4.151516e-02  0.814950337
## 14  5  87 34.09 231691 27 13066 0.610  69976 2.321194e-02 -0.770234240
## 4   3  70 32.59 722933 21 15314 0.477  35590 1.368113e-02 -0.675726456
## 15  4  80 32.84 623205 26 15064 0.601  98726 1.787164e-02 -0.669991367
## 8   4  48 37.08 222360 18 14617 0.838  22805 2.460501e-02  0.462024993
## 25  8  82 28.03 175156 23 13838 0.666  59906 3.669519e-03  0.390387398
## 17  3  63 37.62 423891 28 16226 0.522  26879 2.293570e-03  0.387379668
## 27  4  62 38.40  61015 30 14728 0.546  22892 5.155837e-03  0.316976030
## 10  3  72 35.75 768968 24 15432 0.692  25930 2.491795e-03  0.263534375
## 13  3  60 36.34 512669 30 15838 0.655  26292 1.833268e-03  0.232774231
## 5   1  50 36.94 861324 30 18059 0.345  23356 5.170323e-03  0.231637474
## 12  2  88 36.60 550316 30 17417 0.883  44072 4.081832e-03 -0.209342201
## 18  1  65 41.65 147446 26 17817 0.508  28366 9.051440e-04 -0.153062808
## 9   4 130 34.41 648010 30 14892 0.617  22833 1.442642e-03 -0.139016931
## 7   2 137 41.07 398281 30 16752 0.554  27218 5.260376e-04 -0.064460511
## 26  3  73 35.39 215761 22 18021 0.299  31556 2.930294e-04 -0.058259114
## 6   2  68 36.53 638521 22 17152 0.321  20855 4.394392e-07 -0.003246992
##      r_absolut
## 20 2.210953862
## 22 2.139636839
## 1  2.132915048
## 11 1.604909625
## 23 1.213061647
## 16 1.089310291
## 19 1.034064940
## 2  0.982332987
## 3  0.868554790
## 21 0.829292029
## 24 0.814950337
## 14 0.770234240
## 4  0.675726456
## 15 0.669991367
## 8  0.462024993
## 25 0.390387398
## 17 0.387379668
## 27 0.316976030
## 10 0.263534375
## 13 0.232774231
## 5  0.231637474
## 12 0.209342201
## 18 0.153062808
## 9  0.139016931
## 7  0.064460511
## 26 0.058259114
## 6  0.003246992

7. Kelayakan Model

Uji F Simultan

Model di atas merupakan model OLS setelah dilakukan metode stepwise elimination. Terlihat bahwa model tersebut memiliki p-value sebesar 3.004e-06 mendekati 0 < 0.05 maka tolak H0. Artinya, minimal ada satu peubah penjelas yang berpengaruh linier terhadap peubah respon sehingga model layak untuk digunakan.

Uji T Parsial

Terlihat bahwa peubah X2 dan X5 signifikan terhadap taraf nyata 5%. Artinya, peubah X2 dan X5 secara individu berpengaruh nyata terhadap tingkat prevalensi diabetes melitus di Provinsi Jawa Barat. Sementara itu, peubah X3 memiliki p-value > 0.05 sehingga dikatakan bahwa peubah X3 tidak signifikan pada taraf nyata 5% dan selanjutnya dikeluarkan dari model.

8. Pemodelan Regresi Robust Estimasi-M

Pemodelan Reduksi

OLS Berdasarkan Stepwise

model.ols.stepw <- lm(Y~X2+X3+X5, data = dt.new)
summary(model.ols.stepw)
## 
## Call:
## lm(formula = Y ~ X2 + X3 + X5, data = dt.new)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -3.06930 -0.54561 -0.01149  0.65769  2.92688 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  2.348e+01  2.832e+00   8.292 2.31e-08 ***
## X2          -3.139e-01  8.622e-02  -3.641  0.00136 ** 
## X3          -1.857e-06  1.117e-06  -1.663  0.10993    
## X5          -5.073e-04  2.450e-04  -2.071  0.04978 *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.437 on 23 degrees of freedom
## Multiple R-squared:  0.7022, Adjusted R-squared:  0.6633 
## F-statistic: 18.08 on 3 and 23 DF,  p-value: 3.004e-06

Berdasarkan Stepwise & Signifikansi Parameter

model.ols.fix <- lm(Y~X2+X5, data = dt.new)
summary(model.ols.fix)
## 
## Call:
## lm(formula = Y ~ X2 + X5, data = dt.new)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.5701 -0.7340 -0.2142  0.8059  3.3177 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 23.5447298  2.9339223   8.025 2.99e-08 ***
## X2          -0.2776334  0.0864192  -3.213  0.00372 ** 
## X5          -0.0006413  0.0002397  -2.675  0.01323 *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.489 on 24 degrees of freedom
## Multiple R-squared:  0.6664, Adjusted R-squared:  0.6386 
## F-statistic: 23.97 on 2 and 24 DF,  p-value: 1.902e-06

Regresi Robust: Pembobot Huber

model.huber.fix <- rlm(Y~X2+X5, data=dt.new, psi=psi.huber)
summary(model.huber.fix)
## 
## Call: rlm(formula = Y ~ X2 + X5, data = dt.new, psi = psi.huber)
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.5236 -0.6820 -0.1490  0.8004  3.3519 
## 
## Coefficients:
##             Value   Std. Error t value
## (Intercept) 23.7399  2.8219     8.4127
## X2          -0.2870  0.0831    -3.4526
## X5          -0.0006  0.0002    -2.7611
## 
## Residual standard error: 1.076 on 24 degrees of freedom

Regresi Robust: Pembobot Tukey Bisquare

model.tukbis.fix <- rlm(Y~X2+X5, data=dt.new, psi = psi.bisquare)
summary(model.tukbis.fix)
## 
## Call: rlm(formula = Y ~ X2 + X5, data = dt.new, psi = psi.bisquare)
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.4403 -0.6917 -0.1811  0.8178  3.4632 
## 
## Coefficients:
##             Value   Std. Error t value
## (Intercept) 23.2737  3.1227     7.4530
## X2          -0.2904  0.0920    -3.1572
## X5          -0.0006  0.0003    -2.3548
## 
## Residual standard error: 1.13 on 24 degrees of freedom

Terlihat bahwa nilai intersep dan kemiringan pada ketiga model regresi tersebut tidak berbeda signifikan dan memiliki tanda masing-masing parameter yang sama.

Robust: Pembobot Huber

Tidak usah dimasukin PPT

model.huber.awal <- rlm(Y~., data=dt.new, psi=psi.huber)
summary(model.huber.awal)
## 
## Call: rlm(formula = Y ~ ., data = dt.new, psi = psi.huber)
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -3.5079 -0.5906  0.0360  0.4532  2.7635 
## 
## Coefficients:
##             Value   Std. Error t value
## (Intercept) 23.9518  4.6254     5.1783
## X1           0.0076  0.0157     0.4821
## X2          -0.3670  0.1044    -3.5154
## X3           0.0000  0.0000    -2.3366
## X4           0.0345  0.0875     0.3946
## X5          -0.0005  0.0003    -1.7910
## X6          -0.4053  2.1421    -0.1892
## X7           0.0000  0.0000     0.0201
## 
## Residual standard error: 0.701 on 19 degrees of freedom

Robust: Pembobot Tukey Bisquare

Tidak usah dimasukin PPT

model.tukbis.awal <- rlm(Y~., data=dt.new, psi = psi.bisquare)
## Warning in rlm.default(x, y, weights, method = method, wt.method = wt.method, :
## 'rlm' failed to converge in 20 steps
summary(model.tukbis.awal)
## 
## Call: rlm(formula = Y ~ ., data = dt.new, psi = psi.bisquare)
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -3.92766 -0.49885 -0.04701  0.39539  2.92536 
## 
## Coefficients:
##             Value   Std. Error t value
## (Intercept) 25.4379  3.3529     7.5868
## X1           0.0058  0.0114     0.5080
## X2          -0.4201  0.0757    -5.5511
## X3           0.0000  0.0000    -3.8198
## X4           0.0618  0.0634     0.9742
## X5          -0.0004  0.0002    -2.3613
## X6          -0.0124  1.5528    -0.0080
## X7           0.0000  0.0000    -1.4158
## 
## Residual standard error: 0.6634 on 19 degrees of freedom

Berdasarkan Matriks Korelasi

Tidak usah dimasukin PPT

model4 <- lm(Y~X2+X3+X4+X5+X6+X7, data = dt.new)

summary(model4)
## 
## Call:
## lm(formula = Y ~ X2 + X3 + X4 + X5 + X6 + X7, data = dt.new)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -3.03325 -0.91865  0.08759  0.61461  2.79651 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  2.191e+01  4.686e+00   4.676 0.000145 ***
## X2          -2.965e-01  1.083e-01  -2.737 0.012701 *  
## X3          -2.033e-06  1.214e-06  -1.676 0.109399    
## X4           1.416e-02  8.523e-02   0.166 0.869698    
## X5          -4.765e-04  2.691e-04  -1.771 0.091797 .  
## X6          -3.754e-01  2.222e+00  -0.169 0.867521    
## X7           1.018e-05  1.311e-05   0.776 0.446853    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.514 on 20 degrees of freedom
## Multiple R-squared:  0.7124, Adjusted R-squared:  0.6261 
## F-statistic: 8.255 on 6 and 20 DF,  p-value: 0.0001397

Korelasi >= 0.5

Tidak usah dimasukin PPT

model5 <- lm(Y~X2+X5+X7, data = dt.new)

summary(model4)
## 
## Call:
## lm(formula = Y ~ X2 + X3 + X4 + X5 + X6 + X7, data = dt.new)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -3.03325 -0.91865  0.08759  0.61461  2.79651 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  2.191e+01  4.686e+00   4.676 0.000145 ***
## X2          -2.965e-01  1.083e-01  -2.737 0.012701 *  
## X3          -2.033e-06  1.214e-06  -1.676 0.109399    
## X4           1.416e-02  8.523e-02   0.166 0.869698    
## X5          -4.765e-04  2.691e-04  -1.771 0.091797 .  
## X6          -3.754e-01  2.222e+00  -0.169 0.867521    
## X7           1.018e-05  1.311e-05   0.776 0.446853    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.514 on 20 degrees of freedom
## Multiple R-squared:  0.7124, Adjusted R-squared:  0.6261 
## F-statistic: 8.255 on 6 and 20 DF,  p-value: 0.0001397

9. Ukuran Kebaikan Model

Berdasarkan nilai Galat Baku dan AIC.

Nilai AIC

AIC(model.ols.fix)
## [1] 102.9263
AIC(model.huber.fix)
## [1] 102.9786
AIC(model.tukbis.fix)
## [1] 103.0437

Galat Baku

Model OLS stepwise : 1.489

Model Regresi Robust: Pembobot Huber Stepwise : 1.076

Model Regresi Robust: Pembobot Tukey Bisquare Stepwise : 1.13

Dalam penentuan kebaikan model, dilakukan perbandingan galat baku sisaan dan nilai AIC setiap model yang diterapkan. Semakin kecil nilai galat baku sisaan dan AIC, maka model semakin baik sehingga nilai prediksi Y akan sedekat mungkin dengan aktualnya. Berdasarkan tabel di atas, didapatkan bahwa model regresi robust dengan pembobot Huber memiliki galat baku sisaan terkecil yaitu sebesar 1.076 dan nilai AIC yang relatif kecil. Dengan demikian, model regresi linier terbaik yang terpilih adalah model regresi robust Estimasi-M dengan pembobot Huber.

R-Squared

preds.huber <- model.huber.fix$pred
preds.tukbis <- model.tukbis.fix$pred
actual <- dt.new$Y
rss.huber <- sum((preds.huber - actual) ^ 2)
tss.huber <- sum((actual - mean(actual)) ^ 2)
rsq.huber <- 1 - rss.huber/tss.huber
rsq.huber
## [1] 1
rss.huber <- sum((preds.tukbis - actual) ^ 2)
tss.huber <- sum((actual - mean(actual)) ^ 2)
rsq.huber <- 1 - rss.huber/tss.huber
rsq.huber
## [1] 1

Model OLS stepwise : 0.6664

Model Regresi Robust: Pembobot Huber Stepwise : 1

Model Regresi Robust: Pembobot Tukey Bisquare Stepwise : 1

10. Model Terbaik

Model regresi linier terbaik yang terpilih adalah Model Regresi Robust Estimasi-M dengan pembobot Huber.

11. Interpretasi Model

Persamaan Model Regresi Robust Estimasi-M dengan pembobot Huber dinyatakan sengai berikut.

\[\widehat{Y} = 23.7399 - 0.2870X2 - 0.0006X5\]

Interpetasi :

Intersep

Dugaan rata-rata prevalensi Orang yang mengidap penyakit diabetes melitus tipe 1 dan 2 di Jawa Barat tahun 2021 jika tidak dapat dapat dijelaskan oleh persentase penduduk usia 15-24 dan >= 55 tahun yang merokok dalam sebulan terakhir dan rata-rata pengeluaran pembelian beras perkapita seminggu sebesar 23.7399 jiwa/1000 orang.

X2

Setiap kenaikan satu persen penduduk usia 15-24 dan >= 55 tahun yang merokok dalam sebulan terakhir (\(X2\)), maka akan menurunkan prevalensi Orang yang mengidap penyakit diabetes melitus tipe 1 dan 2 di Jawa Barat tahun 2021 sebesar 0.2870 apabila rata-rata pengeluaran pembelian beras perkapita seminggu (\(X5\)) tetap.

X5

Setiap kenaikan satu rupiah/kapita/minggu rata-rata pengeluaran pembelian beras perkapita seminggu (\(X2\)), maka akan menurunkan prevalensi Orang yang mengidap penyakit diabetes melitus tipe 1 dan 2 di Jawa Barat tahun 2021 sebesar 0.0006 apabila persentase penduduk usia 15-24 dan >= 55 tahun yang merokok dalam sebulan terakhir (\(X5\)) tetap.