Membangun Regresi Linier Berganda
Regresi Linear Berganda adalah model regresi linear dengan melibatkan lebih dari satu variable bebas atau predictor. Dalam bahasa inggris, istilah ini disebut dengan multiple linear regression.
1. Mengambil Data dan Menampilkannya
library(readxl)
datacovidmobility <- read_excel(path = "datadirawat.xlsx")
datacovidmobility
## # A tibble: 31 x 8
## Tanggal Dirawat Retail Grocery Park Station Workplace Residental
## <dttm> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 2021-05-01 00:00:00 3622 -6 21 -19 -20 -36 8
## 2 2021-05-02 00:00:00 3589 -7 19 -27 -22 -7 6
## 3 2021-05-03 00:00:00 3537 -2 25 -9 -21 -24 5
## 4 2021-05-04 00:00:00 3564 -3 26 -9 -16 -25 5
## 5 2021-05-05 00:00:00 3738 -1 27 -7 -16 -26 5
## 6 2021-05-06 00:00:00 3843 -2 26 -9 -31 -26 7
## 7 2021-05-07 00:00:00 3928 -2 25 -12 -34 -23 7
## 8 2021-05-08 00:00:00 3970 -4 25 -20 -33 -17 6
## 9 2021-05-09 00:00:00 3974 -2 26 -23 -35 -6 6
## 10 2021-05-10 00:00:00 3941 6 36 1 -31 -32 7
## # ... with 21 more rows
2. Mengetahui summary ()Data
3. Membuat Matriks dengan Fungsi Pairs
Untuk membuat matriks scatterplot kita hanya perlu memasukkan objek datacovidmobility kedalam fungsi pairs(). Berikut adalah sintaks yang digunakan dan output yang dihasilkan
pairs (datacovidmobility)

Kita juga dapat melakukan drop terhadap panel bawah grafik tersebut, yaitu dengan memasukkan argumen lower.panel=NULL.
pairs(datacovidmobility, lower.panel=NULL)

Visualisasi Data Menggunakan Fungsi Plot ()
plot(datacovidmobility$Dirawat ~ datacovidmobility$Tanggal, data = datacovidmobility)

5. Membuat Korelasi Antar Variabel
a. korelasi variabel y dengan x1
cor(datacovidmobility$Dirawat,datacovidmobility$Retail)
## [1] 0.08571958
b. korelasi variabel y dengan x2
cor(datacovidmobility$Dirawat,datacovidmobility$Grocery)
## [1] -0.2506931
c. korelasi variabel y dengan x3
cor(datacovidmobility$Dirawat,datacovidmobility$Park)
## [1] 0.3062791
d. Koreladi variabel y dengan x4
cor(datacovidmobility$Dirawat,datacovidmobility$Station)
## [1] 0.517357
e. Korelasi variabel y dengan x5
cor(datacovidmobility$Dirawat,datacovidmobility$Workplace)
## [1] 0.2699286
f. Korelasi variabel y dengan x6
cor(datacovidmobility$Dirawat,datacovidmobility$Residental)
## [1] 0.007208197
j
6. Melakukan Permodelan
Berikut cara melakukan permodelan regresi linier berganda
model <- lm(datacovidmobility$Dirawat ~ datacovidmobility$Tanggal, data = datacovidmobility)
7. Menjelaskan rincian Model dengan fungsi summary()
Di posisi paling atas terdapat lm formula adalah datacovidmobilityMeninggal datacovidmobilityTanggal, data = datacovidmobility.
Lalu di bawahnya terdapat 5 nilai residual, sebelumnya kita perlu tahu bahwa Residual adalah perbedaan antara nilai nyata dan nilai prediksi. Yang mana semakin kecil nilai residual maka semakin baik atau benar model yang kita buat. Berikut nilai-nilai residual yang dihasilkan :
Nilai minimum = -516.71
Nilai maximum = -181.83
Nilai median = 44.83
Nilai quartil 1 = 179.40
Nilai quartil 3 = 440.95
Dari nilai-nilai tersebut dapat kita lihat bahwa dalam konteks ini berupa nilai minimum, maximum, median, quartil 1 dan quartil 3. Dapat kita simpulkan bahwa model yang telah kita buat belum bisa dikatakan baik atau benar karena nilai-nilai yang dihasilkan tidak mendekati nol.
Di bawah nilai residual terdapat koefisien, yang mana dalam koefisien tersebut terdapat nilai intersep, dan tanggal. Selain itu juga terdapat nilai-p dari koefisien
Selanjutnya terdapat dua R2 yaitu:
Multiple R-squared tidak dapat berkurang saat kita menambahkan lebih banyak variabel independen ke model yang kita buat.
2). Adjusted R-squared (tidak pelipatan pada variabel): 0.8723 .
Adjusted R-squared lebih baik ada penambahan variabel. Jadi jika kita menambahkan lebih dari satu variabel ke model, itu hanya meningkat jika itu mengurangi kesalahan prediksi secara keseluruhan
8. Menggunakan Fungsi anova ()
ANOVA (analysis of variance) adalah pengujian yang dilakukan dengan membandingkan varians. Dengan membandingkan varians tersebut, dapat diketahui ada tidaknya perbedaan rata-rata dari tiga atau lebih kelompok. Asumsi normalitas pada ANOVA adalah pada residual yaitu selisih antara Y Prediksi dengan Y Aktual. Tepatnya residual dapat dihitung sebagai berikut: Y Aktual – Y Prediksi. Dimana Y Aktual adalah Y sesungguhnya atau kenyataan. Sedangkan Y prediksi adalah Y hasil persamaan ANOVA.
anova(model)
## Analysis of Variance Table
##
## Response: datacovidmobility$Dirawat
## Df Sum Sq Mean Sq F value Pr(>F)
## datacovidmobility$Tanggal 1 15007931 15007931 206 1.042e-14 ***
## Residuals 29 2112777 72854
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Membuat plot()Model dari Data Real dan Data Prediksi
plot(datacovidmobility$Dirawat ~ datacovidmobility$
Tanggal,
data = datacovidmobility, col = "red", pch = 20, cex = 1.5,
main = "Data Covid Pasien Dirawat di DKI Jakarta dan Google Mobility Index")
abline(model) #Add a regression line

10. Penggunaan AIC dan BIC
11. Memunculkan Nilai Predicted dan Memvisualisasikannya
head(predict(model), n = 11)
## 1 2 3 4 5 6 7 8
## 3306.831 3384.623 3462.415 3540.206 3617.998 3695.790 3773.582 3851.374
## 9 10 11
## 3929.166 4006.958 4084.750
plot (head(predict(model), n = 10))

12. Memunculkan Nilai Residuals
head(resid(model), n = 11)
## 1 2 3 4 5 6 7
## 315.16935 204.37742 74.58548 23.79355 120.00161 147.20968 154.41774
## 8 9 10 11
## 118.62581 44.83387 -65.95806 -153.75000
coef(model)
## (Intercept) datacovidmobility$Tanggal
## -1.455136e+06 9.003696e-04
13. Membuat Tabel untuk Menambah Data Residuals dan Data Predicted
datacovidmobility$residuals <- model$residuals
datacovidmobility$predicted <- model$fitted.values
datacovidmobility
## # A tibble: 31 x 10
## Tanggal Dirawat Retail Grocery Park Station Workplace Residental
## <dttm> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 2021-05-01 00:00:00 3622 -6 21 -19 -20 -36 8
## 2 2021-05-02 00:00:00 3589 -7 19 -27 -22 -7 6
## 3 2021-05-03 00:00:00 3537 -2 25 -9 -21 -24 5
## 4 2021-05-04 00:00:00 3564 -3 26 -9 -16 -25 5
## 5 2021-05-05 00:00:00 3738 -1 27 -7 -16 -26 5
## 6 2021-05-06 00:00:00 3843 -2 26 -9 -31 -26 7
## 7 2021-05-07 00:00:00 3928 -2 25 -12 -34 -23 7
## 8 2021-05-08 00:00:00 3970 -4 25 -20 -33 -17 6
## 9 2021-05-09 00:00:00 3974 -2 26 -23 -35 -6 6
## 10 2021-05-10 00:00:00 3941 6 36 1 -31 -32 7
## # ... with 21 more rows, and 2 more variables: residuals <dbl>, predicted <dbl>
14. Visualisasi Data Menggunakan scatter, smooth, boxplot dan plot
scatter.smooth(x=datacovidmobility$Tanggal, y=datacovidmobility$Dirawat,
main="Tanggal ~ Dirawat")

boxplot(datacovidmobility$Dirawat, main="Dirawat",
boxplot.stats(datacovidmobility$Dirawat)$out)

plot(density(datacovidmobility$Dirawat), main="Google Mobility Index: Dirawat",
ylab="Frequency")

coefs <- coef(model)
plot(Dirawat ~ Tanggal, data = datacovidmobility)
abline(coefs)
text(x = 12, y = 10, paste('expression = ', round(coefs[1], 2), '+',
round(coefs[2], 2), '*Dirawat'))

15. Melakukan Uji Korelasi Antar Variabel
Adanya korelasi antar variabel dapat dilakukan melalui visualisasi menggunakan scatterplot dan perhitungan matematis menggunakan metode Pearson untuk metode parametrik dan metode rangking Spearman dan Kendall untuk metode non-parametrik. Pada R uji korelasi dapat dilakukan dengan menggunakan fungsi cor.test(). Format fungsi tersebut adalah sebagai berikut:
a. uji koreladi variabel y dengan x 1
cor.test(datacovidmobility$
Retail,
datacovidmobility$Dirawat)
##
## Pearson's product-moment correlation
##
## data: datacovidmobility$Retail and datacovidmobility$Dirawat
## t = 0.46332, df = 29, p-value = 0.6466
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
## -0.2770352 0.4270874
## sample estimates:
## cor
## 0.08571958
b. uji korelasi variabel y dengan x2
cor.test(datacovidmobility$Grocery,
datacovidmobility$Dirawat)
##
## Pearson's product-moment correlation
##
## data: datacovidmobility$Grocery and datacovidmobility$Dirawat
## t = -1.3946, df = 29, p-value = 0.1737
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
## -0.5556725 0.1137517
## sample estimates:
## cor
## -0.2506931
c. uji korelasi variabel dengan x3
cor.test(datacovidmobility$Park, datacovidmobility$Dirawat)
##
## Pearson's product-moment correlation
##
## data: datacovidmobility$Park and datacovidmobility$Dirawat
## t = 1.7326, df = 29, p-value = 0.09379
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
## -0.05391193 0.59594329
## sample estimates:
## cor
## 0.3062791
d. uji korelasi variabel y dengan x4
cor.test(datacovidmobility$
Station,
datacovidmobility$Dirawat)
##
## Pearson's product-moment correlation
##
## data: datacovidmobility$Station and datacovidmobility$Dirawat
## t = 3.2556, df = 29, p-value = 0.002878
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
## 0.1996093 0.7366535
## sample estimates:
## cor
## 0.517357
e. uji korelasi variabel y dengan x5
cor.test(datacovidmobility$
Workplace,
datacovidmobility$Dirawat)
##
## Pearson's product-moment correlation
##
## data: datacovidmobility$Workplace and datacovidmobility$Dirawat
## t = 1.5096, df = 29, p-value = 0.142
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
## -0.09333912 0.56977197
## sample estimates:
## cor
## 0.2699286
f. uji korelasi variabel y dengan x6
cor.test(datacovidmobility$
Residental,
datacovidmobility$Dirawat)
##
## Pearson's product-moment correlation
##
## data: datacovidmobility$Residental and datacovidmobility$Dirawat
## t = 0.038818, df = 29, p-value = 0.9693
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
## -0.3480208 0.3606272
## sample estimates:
## cor
## 0.007208197
Referensi