1. Regresi Linier Berganda

Regresi linear berganda ialah salah satu model regresi yang di dalamnya melibatkan lebih dari satu variabel independen. Analisis ini berfungsi untuk mengetahui arah dan seberapa besar pengaruh variabel independen terhadap variabel dependen

1.1. Pengambilan Dan Hasil Data

Data yang digunakan adalah data kematian Covid-19 Bulan September yang disimpan di dalam excel, data disimpan di dalam excel karena excel berfungsi dalam pengolahan data yang dapat berupa angka maupun perhitunga.

library(readxl)
dataKematianSeptember <- read_excel(path = "KematianCovidSeptember.xlsx")
dataKematianSeptember
## # A tibble: 30 x 8
##    Tanggal             Meninggal retail_and_recreation_percent~ grocery_and_pha~
##    <dttm>                  <dbl>                          <dbl>            <dbl>
##  1 2020-09-01 00:00:00      1219                            -24               -2
##  2 2020-09-02 00:00:00      1237                            -25               -6
##  3 2020-09-03 00:00:00      1253                            -25               -6
##  4 2020-09-04 00:00:00      1260                            -22               -5
##  5 2020-09-05 00:00:00      1277                            -25               -4
##  6 2020-09-06 00:00:00      1289                            -30              -10
##  7 2020-09-07 00:00:00      1318                            -25               -8
##  8 2020-09-08 00:00:00      1330                            -26               -9
##  9 2020-09-09 00:00:00      1347                            -26              -10
## 10 2020-09-10 00:00:00      1365                            -26              -10
## # ... with 20 more rows, and 4 more variables:
## #   parks_percent_change_from_baseline <dbl>,
## #   transit_stations_percent_change_from_baseline <dbl>,
## #   workplaces_percent_change_from_baseline <dbl>,
## #   residential_percent_change_from_baseline <dbl>

1.2. Summary Data

Ringkasan data digunakan untuk mencari nilai statistik lima serangkai yang terdiri dari Minimum, Q1, Median, Q3, Dan Maksimum.

summary(dataKematianSeptember)
##     Tanggal                      Meninggal   
##  Min.   :2020-09-01 00:00:00   Min.   :1219  
##  1st Qu.:2020-09-08 06:00:00   1st Qu.:1334  
##  Median :2020-09-15 12:00:00   Median :1483  
##  Mean   :2020-09-15 12:00:00   Mean   :1479  
##  3rd Qu.:2020-09-22 18:00:00   3rd Qu.:1644  
##  Max.   :2020-09-30 00:00:00   Max.   :1731  
##  retail_and_recreation_percent_change_from_baseline
##  Min.   :-53.00                                    
##  1st Qu.:-41.75                                    
##  Median :-38.50                                    
##  Mean   :-35.00                                    
##  3rd Qu.:-26.00                                    
##  Max.   :-22.00                                    
##  grocery_and_pharmacy_percent_change_from_baseline
##  Min.   :-30.00                                   
##  1st Qu.:-18.75                                   
##  Median :-12.00                                   
##  Mean   :-13.47                                   
##  3rd Qu.: -8.00                                   
##  Max.   : -2.00                                   
##  parks_percent_change_from_baseline
##  Min.   :-76.00                    
##  1st Qu.:-65.00                    
##  Median :-61.50                    
##  Mean   :-61.83                    
##  3rd Qu.:-59.00                    
##  Max.   :-51.00                    
##  transit_stations_percent_change_from_baseline
##  Min.   :-55.0                                
##  1st Qu.:-52.0                                
##  Median :-47.0                                
##  Mean   :-45.6                                
##  3rd Qu.:-41.0                                
##  Max.   :-34.0                                
##  workplaces_percent_change_from_baseline
##  Min.   :-39.00                         
##  1st Qu.:-37.00                         
##  Median :-32.00                         
##  Mean   :-30.27                         
##  3rd Qu.:-23.25                         
##  Max.   :-13.00                         
##  residential_percent_change_from_baseline
##  Min.   : 8.0                            
##  1st Qu.:13.0                            
##  Median :14.0                            
##  Mean   :14.9                            
##  3rd Qu.:18.0                            
##  Max.   :19.0

1.3. Matriks Dengan Fungsi Pairs

Dalam pembuatan matriks scatterplot yang diperlukan hanya memasukkan objek dataKematianSeptember kedalam fungsi pairs().

pairs(dataKematianSeptember)

Selain itu di dalam program ini juga dapat melakukan drop terhadap panel bawah grafik, caranya ialah memasukkan argumen lower.panel=NULL.

pairs(dataKematianSeptember, lower.panel=NULL)

1.4. Visualisasi Data Dengan Fungsi Plot

plot(dataKematianSeptember$Meninggal ~ dataKematianSeptember$retail_and_recreation_percent_change_from_baseline, data = dataKematianSeptember)

Visualisasi Data Kematian Covid Bulan September dengan Self Isolation sebagai variabel Y dan Google Mobility Index sebagai variabel X

plot(dataKematianSeptember$Meninggal ~ dataKematianSeptember$
              retail_and_recreation_percent_change_from_baseline+ dataKematianSeptember$
      grocery_and_pharmacy_percent_change_from_baseline+dataKematianSeptember$
      parks_percent_change_from_baseline+dataKematianSeptember$
      transit_stations_percent_change_from_baseline+dataKematianSeptember$
      workplaces_percent_change_from_baseline+dataKematianSeptember$
      residential_percent_change_from_baseline, data = dataKematianSeptember)

1.5. Korelasi Antar Variabel

Korelasi antar variabel berarti menjelaskan tentang keterhubungan atau keterkaitan antar variabel. Keterkaitan atau keterhubungan itu bisa di ukur dengan menggunakan fungsi cor(). Jadi fungsi cor () berfungsi dalam mengukur seberapa jauh hubungan antara satu variabel dengan variabel yang lain.

a) Korelasi Antara Variabel Y Dengan X1
cor(dataKematianSeptember$Meninggal,dataKematianSeptember$
      retail_and_recreation_percent_change_from_baseline)
## [1] -0.8508943
b) Korelasi Antara Variabel Y Dengan X2
cor(dataKematianSeptember$Meninggal,dataKematianSeptember$
      grocery_and_pharmacy_percent_change_from_baseline)
## [1] -0.5516343
c) Korelasi Antara Variabel Y Dengan X3
cor(dataKematianSeptember$Meninggal,dataKematianSeptember$
      parks_percent_change_from_baseline)
## [1] -0.5532132
d) Korelasi Antara Variabel Y Dengan X4
cor(dataKematianSeptember$Meninggal,dataKematianSeptember$
      transit_stations_percent_change_from_baseline)
## [1] -0.6831169
e) Korelasi Antara Variabel Y Dengan X5
cor(dataKematianSeptember$Meninggal,dataKematianSeptember$
      workplaces_percent_change_from_baseline)
## [1] -0.2632221
f) Korelasi Antara Variabel Y Dengan X6
cor(dataKematianSeptember$Meninggal,dataKematianSeptember$
      residential_percent_change_from_baseline)
## [1] 0.5879545

Dari percobaan program yang sidah dilakukan, maka bisa di tarik suatu kesimpulan bahwa tingkat suatu keterhubungan antara variabel Y memiliki hubungan dengan X5, hal ini disebabkan nilai yang dihasilkan berjumlah lebih dari 0.5. Sedangkan untuk tingkat keterhubungan antara variabel Y dengan X1, X2, X3, X4, dan X5 tidak berhubungan karena nilai yang dihasilkan berjumlah kurang dari 0 atau bernilai negatif.

1.6. Melakukan Permodelan

Langkah - langkah membuat permodelan regresi linier berganda ialah sebagai berikut :

modelData <- lm(dataKematianSeptember$Meninggal ~ dataKematianSeptember$Tanggal, data = dataKematianSeptember)

Setelah membuat model seperti contoh di atas,diperlukan pengaplikasian dari fungsi summary() yang berfungsi untuk menjelaskan hasil dari model yang telah dibuat. Selain itu summary(modelData) juga membantu dalam memantau informasi terperinci tentang kinerja dan koefisian model.

summary(modelData)
## 
## Call:
## lm(formula = dataKematianSeptember$Meninggal ~ dataKematianSeptember$Tanggal, 
##     data = dataKematianSeptember)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -23.011 -10.049  -1.815   8.928  28.544 
## 
## Coefficients:
##                                 Estimate Std. Error t value Pr(>|t|)    
## (Intercept)                   -3.492e+05  5.275e+03  -66.21   <2e-16 ***
## dataKematianSeptember$Tanggal  2.192e-04  3.296e-06   66.49   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 13.5 on 28 degrees of freedom
## Multiple R-squared:  0.9937, Adjusted R-squared:  0.9935 
## F-statistic:  4421 on 1 and 28 DF,  p-value: < 2.2e-16

1.7. Penjelasan Model Dengan Fungsi Summary()

Contoh sebelumnya merupakan salah satu contoh dari model yang sudah dibuat.

+) lm formula

Merupakan dataKematianSeptember Meninggal dataKematianSeptember, data = dataKematianSeptember.

+) Terdapat nilai resedural

Yaitu perbedaan antara nilai nyata dan nilai prediksi.Semakin kecil nilai residual maka semakin baik atau benar model yang kita buat. Terdapat 5 nilai residual yang dihasilkan diantaranya :

*) Nilai Minimum   = -358.0

*) Nilai Quartil 1 = -316.5

*) Nilai Median    = -245.1

*) Nilai Quartil 3 = -164.1

*) Nilai Maximum   = 3437.0

Nilai dari residual terdapat koefisien yang di dalamnya terdapat nilai intersep, dan tanggal.

+) Multiple R-squared (pelipatan daripada variabel): 0.9937.

Hal ini menunjukkan bahwa 0.009937% variasi variabel respon, y, dapat dijelaskan oleh variabel prediktor, x. Suatu multiple R-squared tidak dapat berkurang saat kita menambahkan lebih banyak variabel independen ke model yang kita buat.

+) Adjusted R-squared (tidak pelipatan pada variabel): 0.9935.

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

1.8. Aplikasi Fungsi anova()

ANOVA (analysis of variance) merupakan salah satu pengujian yang dilakukan dengan cara membandingkan varians, sehingga dapat diketahui perbedaan rata-rata dari tiga atau lebih kelompok. Asumsi normalitas pada ANOVA adalah pada residual yaitu selisih antara Y Aktual(Y sesungguhnya atau kenyataan) – Y Prediksi(Y hasil persamaan ANOVA).

anova(modelData)
## Analysis of Variance Table
## 
## Response: dataKematianSeptember$Meninggal
##                               Df Sum Sq Mean Sq F value    Pr(>F)    
## dataKematianSeptember$Tanggal  1 805923  805923  4420.5 < 2.2e-16 ***
## Residuals                     28   5105     182                      
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

1.9. Membuat plot() Model Data Real Dan Data Prediksi

plot(dataKematianSeptember$Meninggal ~ dataKematianSeptember$
              Tanggal, 
     data = dataKematianSeptember, col = "red", pch = 20, cex = 1.5, 
     main = "Data Orang Meninggal Covid-19 di DKI Jakarta dan Google Mobility Index")
abline(modelData) 

Keterangan :

) Titik-titik merah pada grafik merupakan data real ) Garis hitam yang membelah diagonal adalah data prediksi.

plot(cooks.distance(modelData), pch = 16, col = "blue") 

plot(modelData)

1.10. Penggunaan AIC dan BIC

AIC (Kriteria Informasi Akaike) dan BIC (Kriteria Informasi Bayesian). Kedua model ini memiliki karakteristik yang berbeda meskipun sekilas terlihat sama, adapun perbedaannya dapat dilihat melalui pendekatan pemilihan model.

AIC(modelData)
## [1] 245.2383
BIC(modelData)
## [1] 249.4419

1.11. Menampilkan Dan Memvisualisasikan Nilai Predicted

head(predict(modelData), n = 20)
##        1        2        3        4        5        6        7        8 
## 1204.856 1223.792 1242.729 1261.665 1280.601 1299.538 1318.474 1337.411 
##        9       10       11       12       13       14       15       16 
## 1356.347 1375.283 1394.220 1413.156 1432.092 1451.029 1469.965 1488.902 
##       17       18       19       20 
## 1507.838 1526.774 1545.711 1564.647
plot(head(predict(modelData), n = 20))

1.12. Menampilkan Nilai Residuals

head(resid(modelData), n = 15)
##           1           2           3           4           5           6 
##  14.1440860  13.2077123  10.2713385  -1.6650352  -3.6014090 -10.5377827 
##           7           8           9          10          11          12 
##  -0.4741565  -7.4105302  -9.3469040 -10.2832777 -12.2196515  -9.1560252 
##          13          14          15 
## -22.0923990 -11.0287727  -1.9651465
coef(modelData)
##                   (Intercept) dataKematianSeptember$Tanggal 
##                 -3.492317e+05                  2.191710e-04

1.13. Membuat Tabel Untuk Menambah Data Residuals dan Data Predicted

Pada Tabel di bawah ini memuat proses yang telah dilakukan sebelumnya, sehingga terbuat tabel yang ada nilai residuals dan nilai protected.

dataKematianSeptember$residuals <- modelData$residuals
dataKematianSeptember$predicted <- modelData$fitted.values
dataKematianSeptember
## # A tibble: 30 x 10
##    Tanggal             Meninggal retail_and_recreation_percent~ grocery_and_pha~
##    <dttm>                  <dbl>                          <dbl>            <dbl>
##  1 2020-09-01 00:00:00      1219                            -24               -2
##  2 2020-09-02 00:00:00      1237                            -25               -6
##  3 2020-09-03 00:00:00      1253                            -25               -6
##  4 2020-09-04 00:00:00      1260                            -22               -5
##  5 2020-09-05 00:00:00      1277                            -25               -4
##  6 2020-09-06 00:00:00      1289                            -30              -10
##  7 2020-09-07 00:00:00      1318                            -25               -8
##  8 2020-09-08 00:00:00      1330                            -26               -9
##  9 2020-09-09 00:00:00      1347                            -26              -10
## 10 2020-09-10 00:00:00      1365                            -26              -10
## # ... with 20 more rows, and 6 more variables:
## #   parks_percent_change_from_baseline <dbl>,
## #   transit_stations_percent_change_from_baseline <dbl>,
## #   workplaces_percent_change_from_baseline <dbl>,
## #   residential_percent_change_from_baseline <dbl>, residuals <dbl>,
## #   predicted <dbl>

1.14. Visualisasi Data Menggunakan scatter.smooth, boxplot dan plot

scatter.smooth(x=dataKematianSeptember$Tanggal, y=dataKematianSeptember$Meninggal, 
               main="Tanggal ~ MENINGGAL")

boxplot(dataKematianSeptember$Meninggal, main="Kasus Meninggal Covid", 
        boxplot.stats(dataKematianSeptember$Kematian)$out)
## Warning: Unknown or uninitialised column: `Kematian`.

plot(density(dataKematianSeptember$Meninggal), main="Google Mobility Index: Kasus Covid Meninggal", 
     ylab="Frequency")

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

1.15. Uji Korelasi Antar Variabel

Keterkaitan atau keterhubungan antar variabel bisa dilakukan dengan cara melakukan visualisasi menggunakan scatterplot dengan hitungan matematis yang menggunakan metode Pearson. Sedangkan metode parametrik, metode rangking Spearman dan Kendall digunakan untuk metode non-parametrik. Pada R uji keterhubungan dilakukan dengan menggunakan fungsi cor.test().

a) Uji Korelasi Antara Variabel Y Dengan X1
cor.test(dataKematianSeptember$
 retail_and_recreation_percent_change_from_baseline, 
         dataKematianSeptember$Meninggal)
## 
##  Pearson's product-moment correlation
## 
## data:  dataKematianSeptember$retail_and_recreation_percent_change_from_baseline and dataKematianSeptember$Meninggal
## t = -8.5707, df = 28, p-value = 2.579e-09
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
##  -0.9269929 -0.7075143
## sample estimates:
##        cor 
## -0.8508943
b) Uji Korelasi Antara Variabel Y Dengan X2
cor.test(dataKematianSeptember$
 grocery_and_pharmacy_percent_change_from_baseline, 
         dataKematianSeptember$Meninggal)
## 
##  Pearson's product-moment correlation
## 
## data:  dataKematianSeptember$grocery_and_pharmacy_percent_change_from_baseline and dataKematianSeptember$Meninggal
## t = -3.4996, df = 28, p-value = 0.001578
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
##  -0.7607204 -0.2388293
## sample estimates:
##        cor 
## -0.5516343
c) Uji Korelasi Antara Variabel Y Dengan X3
cor.test(dataKematianSeptember$
 parks_percent_change_from_baseline, 
         dataKematianSeptember$Meninggal)
## 
##  Pearson's product-moment correlation
## 
## data:  dataKematianSeptember$parks_percent_change_from_baseline and dataKematianSeptember$Meninggal
## t = -3.514, df = 28, p-value = 0.00152
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
##  -0.7616761 -0.2409709
## sample estimates:
##        cor 
## -0.5532132
d) Uji Korelasi Antara Variabel Y Dengan X4
cor.test(dataKematianSeptember$
 transit_stations_percent_change_from_baseline, 
         dataKematianSeptember$Meninggal)
## 
##  Pearson's product-moment correlation
## 
## data:  dataKematianSeptember$transit_stations_percent_change_from_baseline and dataKematianSeptember$Meninggal
## t = -4.9496, df = 28, p-value = 3.183e-05
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
##  -0.8373173 -0.4282402
## sample estimates:
##        cor 
## -0.6831169
e) Uji Korelasi Antara Variabel Y Dengan X5
cor.test(dataKematianSeptember$
 workplaces_percent_change_from_baseline, 
         dataKematianSeptember$Meninggal)
## 
##  Pearson's product-moment correlation
## 
## data:  dataKematianSeptember$workplaces_percent_change_from_baseline and dataKematianSeptember$Meninggal
## t = -1.4438, df = 28, p-value = 0.1599
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
##  -0.5694865  0.1072143
## sample estimates:
##        cor 
## -0.2632221
f) Uji Korelasi Antara Variabel Y Dengan X6
cor.test(dataKematianSeptember$
 residential_percent_change_from_baseline, 
         dataKematianSeptember$Meninggal)
## 
##  Pearson's product-moment correlation
## 
## data:  dataKematianSeptember$residential_percent_change_from_baseline and dataKematianSeptember$Meninggal
## t = 3.8462, df = 28, p-value = 0.0006337
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
##  0.2888754 0.7824778
## sample estimates:
##       cor 
## 0.5879545

Dari seluruh output yang dihasilkan maka dapat dilihat bahwa Metode Pearson menghasilkan output berupa nilai t uji, derajat kebebasan, nilai p-value, rentang estimasi nilai korelasi berdasarkan tingkat kepercayaan, dan estimasi nilai korelasi.

2. Referensi

https://rpubs.com/suhartono-uinmaliki/877449