Lembaga : UIN Maulana Malik Ibrahim Malang, Teknik Informatika.

Regresi Linier Berganda

Regresi linier berganda merupakan model persamaan yang menjelaskan hubungan satu variabel tak bebas/ response (Y) dengan dua atau lebih variabel bebas/ predictor (X1, X2,…Xn).

Mengimport Data Dari Excel

Pengambilan data Covid 19 Pasien Sembuh secara online pada web site Riwayat File Covid-19 DKI Jakarta di alamat URL https://riwayat-file-covid-19-dki-jakarta-jakartagis.hub.arcgis.com/, dan menggunakan data Google Mobility Index yang diambil secara online pada web site Laporan Mobilitas Masyarakat Selama Pandemi Covid-19 di alamat URL https://www.google.com/covid19/mobility/?hl=id.

Jenis file yang digunakan adalah file Excel. Sehingga untuk menampilkan data dalam Rstudio dengan menggunakan package {readxl} dengan fungsi read_excel untuk import data dari file Excel. Argumen path = adalah lokasi dan nama file Excel yang akan digunakan.

library(readxl)
## Warning: package 'readxl' was built under R version 4.1.2
datasembuh <- read_excel(path = "SembuhNov2020.xlsx")
datasembuh
## # A tibble: 30 x 8
##    Tanggal             Sembuh retail_and_recr~ grocery_and_pha~ parks_percent_c~
##    <dttm>               <dbl>            <dbl>            <dbl>            <dbl>
##  1 2020-11-01 00:00:00  94819              -38              -15              -55
##  2 2020-11-02 00:00:00  95876              -30               -7              -52
##  3 2020-11-03 00:00:00  96902              -31               -9              -56
##  4 2020-11-04 00:00:00  97833              -31              -12              -56
##  5 2020-11-05 00:00:00  98806              -33              -14              -57
##  6 2020-11-06 00:00:00  99830              -28               -9              -49
##  7 2020-11-07 00:00:00 100816              -29               -8              -47
##  8 2020-11-08 00:00:00 101791              -33              -13              -51
##  9 2020-11-09 00:00:00 102844              -30              -11              -54
## 10 2020-11-10 00:00:00 104144              -32              -12              -53
## # ... with 20 more rows, and 3 more variables:
## #   transit_stations_percent_change_from_baseline <dbl>,
## #   workplaces_percent_change_from_baseline <dbl>,
## #   residential_percent_change_from_baseline <dbl>

Mensummary Data

Summary data merupakan cara untuk melihat nilai minimum, nilai kuartil 1, nilai kuartil 2 atau median, nilai kuartil 3, dan nilai maksimum. dari setiap kolomnya.

summary(datasembuh)
##     Tanggal                        Sembuh      
##  Min.   :2020-11-01 00:00:00   Min.   : 94819  
##  1st Qu.:2020-11-08 06:00:00   1st Qu.:102054  
##  Median :2020-11-15 12:00:00   Median :109701  
##  Mean   :2020-11-15 12:00:00   Mean   :109508  
##  3rd Qu.:2020-11-22 18:00:00   3rd Qu.:116737  
##  Max.   :2020-11-30 00:00:00   Max.   :124078  
##  retail_and_recreation_percent_change_from_baseline
##  Min.   :-38.0                                     
##  1st Qu.:-32.0                                     
##  Median :-30.0                                     
##  Mean   :-29.8                                     
##  3rd Qu.:-28.0                                     
##  Max.   :-23.0                                     
##  grocery_and_pharmacy_percent_change_from_baseline
##  Min.   :-18.00                                   
##  1st Qu.:-12.75                                   
##  Median :-11.00                                   
##  Mean   :-10.27                                   
##  3rd Qu.: -9.00                                   
##  Max.   :  1.00                                   
##  parks_percent_change_from_baseline
##  Min.   :-57.00                    
##  1st Qu.:-54.00                    
##  Median :-51.50                    
##  Mean   :-50.53                    
##  3rd Qu.:-47.25                    
##  Max.   :-41.00                    
##  transit_stations_percent_change_from_baseline
##  Min.   :-42.00                               
##  1st Qu.:-40.00                               
##  Median :-39.00                               
##  Mean   :-36.83                               
##  3rd Qu.:-32.00                               
##  Max.   :-27.00                               
##  workplaces_percent_change_from_baseline
##  Min.   :-33.00                         
##  1st Qu.:-31.00                         
##  Median :-31.00                         
##  Mean   :-26.50                         
##  3rd Qu.:-17.25                         
##  Max.   :-13.00                         
##  residential_percent_change_from_baseline
##  Min.   : 6.00                           
##  1st Qu.: 8.00                           
##  Median :13.00                           
##  Mean   :11.13                           
##  3rd Qu.:13.00                           
##  Max.   :14.00

Membuat Data Dengan Fungsi Pairs

Dalam membuat grafik pairs yaitu dengan memasukkan datasembuh ke dalam sintaks fungsi pairs().

pairs(datasembuh)

Memvisualisasikan Data Dengan Fungsi Plot

Memasukkan data ke dalam fungsi plot(), untuk menampilkan 6 data dengan data X yang berbeda beda(X1, X2, X3, X4, X5, X6). Dan akan menghasilkan 6 grafik dari fungsi plot().

plot(datasembuh$Sembuh ~ datasembuh$retail_and_recreation_percent_change_from_baseline, data = datasembuh)

plot(datasembuh$Sembuh ~ datasembuh$grocery_and_pharmacy_percent_change_from_baseline, data = datasembuh)

plot(datasembuh$Sembuh ~ datasembuh$parks_percent_change_from_baseline, data = datasembuh)

plot(datasembuh$Sembuh ~ datasembuh$transit_stations_percent_change_from_baseline, data = datasembuh)

plot(datasembuh$Sembuh ~ datasembuh$workplaces_percent_change_from_baseline, data = datasembuh)

plot(datasembuh$Sembuh ~ datasembuh$residential_percent_change_from_baseline, data = datasembuh)

Menghitung Korelasi Antara Variabel Y dan X

Korelasi merupakan ukuran dari seberapa dekat dua variabel berubah dalam hubungan satu sama lain atau digunakan untuk mengetahui ada atau tidaknya hubungan antar linier atau variabelnya. Atau Untuk menghitung nilai koefisien Korelasi antara dua variabel kontinyu pada r dapat menggunakan fungsi cor( ).

Korelasi Y dan X1
cor(datasembuh$Sembuh, datasembuh$retail_and_recreation_percent_change_from_baseline)
## [1] 0.4946308

Berdasarkan hasil perhitungan diperoleh nilai Korelasi sebesar 0.49

Korelasi Y dan X2
cor(datasembuh$Sembuh, datasembuh$grocery_and_pharmacy_percent_change_from_baseline)
## [1] 0.3330524

Berdasarkan hasil perhitungan diperoleh nilai Korelasi sebesar 0.33

Korelasi Y dan X3
cor(datasembuh$Sembuh, datasembuh$parks_percent_change_from_baseline)
## [1] 0.4404193

Berdasarkan hasil perhitungan diperoleh nilai Korelasi sebesar 0.44

Korelasi Y dan X4
cor(datasembuh$Sembuh, datasembuh$transit_stations_percent_change_from_baseline)
## [1] 0.1372972

Berdasarkan hasil perhitungan diperoleh nilai Korelasi sebesar 0.13

Korelasi Y dan X5
cor(datasembuh$Sembuh, datasembuh$workplaces_percent_change_from_baseline)
## [1] 0.1030888

Berdasarkan hasil perhitungan diperoleh nilai Korelasi sebesar 0.10

Korelasi Y dan X6
cor(datasembuh$Sembuh, datasembuh$residential_percent_change_from_baseline)
## [1] -0.1297498

Berdasarkan hasil perhitungan diperoleh nilai Korelasi sebesar -0.12

Membuat Model Regresi Linier Berganda

model <- lm(datasembuh$Sembuh ~ datasembuh$Tanggal, data =  datasembuh)

Lalu membuat summary() untuk meringkas data tersebut yang sudah diberi nama model.

summary(model)
## 
## Call:
## lm(formula = datasembuh$Sembuh ~ datasembuh$Tanggal, data = datasembuh)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -314.38  -93.82  -36.65  161.48  216.00 
## 
## Coefficients:
##                      Estimate Std. Error t value Pr(>|t|)    
## (Intercept)        -1.866e+07  5.811e+04  -321.1   <2e-16 ***
## datasembuh$Tanggal  1.169e-02  3.620e-05   323.0   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 148.3 on 28 degrees of freedom
## Multiple R-squared:  0.9997, Adjusted R-squared:  0.9997 
## F-statistic: 1.043e+05 on 1 and 28 DF,  p-value: < 2.2e-16

Dari summary(model) tersebut terdapat lm formula untuk memanggil data tersebut. Lalu pada residuals di jabarkan nilai minimal, kuartil 1, median, kuartil 3, dan maksimal. Terdapat nilai Multiple R-squared sebesar 0.9997 dan nilai Adjusted R-squared sebesar 0.9997 .

Nilai min sebesar -314.38

Nilai Q1 sebesar -93.82

Nilai median sebesar -36.65

Nilai Q3 sebesar 161.48

Nilai max sebesar 216.00

Menguji Data Dengan Fungsi Anova()

Uji Anova adalah singkatan dari Analysis of Variance, yaitu merupakan salah satu metode yang digunakan untuk mengetahui perbedaan rerata data antara dua kelompok atau lebih.

Table anova dalam hasil regresi linier yaitu dalam perhitungan anova digunakan untuk membandingkan nilai mea square dimana hasilnya ialan untuk mnenilai apakah model prediksi linier tidak berbeda nyata dengan nilai koefisien estimasi serta standar error.

anova(model)
## Analysis of Variance Table
## 
## Response: datasembuh$Sembuh
##                    Df     Sum Sq    Mean Sq F value    Pr(>F)    
## datasembuh$Tanggal  1 2292893925 2292893925  104298 < 2.2e-16 ***
## Residuals          28     615555      21984                      
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

__Grafik Plot dan Abline

plot(datasembuh$Sembuh ~ datasembuh$Tanggal, data = datasembuh, col = "red", pch = 20, cex =         1.5, main = "Data Sembuh Covid di DKI Jakarta Pada November 2020")
abline(model)

plot(cooks.distance(model), pch = 16, col = "red")

plot(model)

AIC dan BIC

AIC dan BIC banyak digunakan dalam kriteria pemilihan model. AIC berarti kriteria data Akaike dan kriteria data BIC Bayesian. Meskipun kedua istilah ini merujuk pada pemilihan model, mereka tidak sama. Mungkin ada perbedaan antara dua pendekatan untuk pemilihan model.

AIC dapat disebut kriteria kepatuhan dengan model statistik yang diprediksi. BIC adalah jenis pemilihan model antara kelas model parametrik dengan parameter yang berbeda. Kriteria data Akaike biasanya mencari model yang tidak diketahui dengan realitas dimensional. Di sisi lain, kriteria data Bayesian hanya dapat ditemukan dalam model nyata.

AIC(model)
## [1] 389.0088
BIC(model)
## [1] 393.2124

Data Dengan Predict dan Visualisasi Grafik Dengan Plot(Head(Predict))

head(predict(model), n = 16)
##         1         2         3         4         5         6         7         8 
##  94862.47  95872.51  96882.56  97892.61  98902.66  99912.71 100922.76 101932.80 
##         9        10        11        12        13        14        15        16 
## 102942.85 103952.90 104962.95 105973.00 106983.05 107993.09 109003.14 110013.19
plot(head(predict(model), n = 30))

Data Dengan Residuals

head(resid(model), n = 14)
##           1           2           3           4           5           6 
##  -43.466667    3.485057   19.436782  -59.611494  -96.659770  -82.708046 
##           7           8           9          10          11          12 
## -106.756322 -141.804598  -98.852874  191.098851  154.050575  216.002299 
##          13          14 
##  163.954023  215.905747
coef(model)
##        (Intercept) datasembuh$Tanggal 
##      -1.865870e+07       1.169037e-02

Menampilkan Nilai Residuals dan Predict Pada Tabel

datasembuh$residuals <- model$residuals
datasembuh$predict <- model$fitted.values
datasembuh
## # A tibble: 30 x 10
##    Tanggal             Sembuh retail_and_recr~ grocery_and_pha~ parks_percent_c~
##    <dttm>               <dbl>            <dbl>            <dbl>            <dbl>
##  1 2020-11-01 00:00:00  94819              -38              -15              -55
##  2 2020-11-02 00:00:00  95876              -30               -7              -52
##  3 2020-11-03 00:00:00  96902              -31               -9              -56
##  4 2020-11-04 00:00:00  97833              -31              -12              -56
##  5 2020-11-05 00:00:00  98806              -33              -14              -57
##  6 2020-11-06 00:00:00  99830              -28               -9              -49
##  7 2020-11-07 00:00:00 100816              -29               -8              -47
##  8 2020-11-08 00:00:00 101791              -33              -13              -51
##  9 2020-11-09 00:00:00 102844              -30              -11              -54
## 10 2020-11-10 00:00:00 104144              -32              -12              -53
## # ... with 20 more rows, and 5 more variables:
## #   transit_stations_percent_change_from_baseline <dbl>,
## #   workplaces_percent_change_from_baseline <dbl>,
## #   residential_percent_change_from_baseline <dbl>, residuals <dbl>,
## #   predict <dbl>

Membuat Grafik Dengan Scatter.Smooth

scatter.smooth(x=datasembuh$Tanggal, y=datasembuh$Sembuh, main = "Grafik Scatter.Smooth")

Membuat Diagram Dengan Boxplot

boxplot(datasembuh$Sembuh, main = "Diagram Sembuh", boxplot.stats(datasembuh$Sembuh)$out)

Membuat Grafik Dengan Plot

plot(density(datasembuh$Sembuh), main = "Plot Mobility Index Sembuh", ylab = "Frekuensi")

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

Menghitung Korelasi Antara Variabel X dan Y

Untuk menghitung nilai koefisien Korelasi antara dua variabel kontinyu pada r dapat menggunakan fungsi cor( ), sedangkan untuk menguji apakah nilai tersebut signifikan dapat menggunakan fungsi cor.test( ).

Korelasi Y dan X1
cor.test(datasembuh$retail_and_recreation_percent_change_from_baseline, datasembuh$Sembuh)
## 
##  Pearson's product-moment correlation
## 
## data:  datasembuh$retail_and_recreation_percent_change_from_baseline and datasembuh$Sembuh
## t = 3.0115, df = 28, p-value = 0.005459
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
##  0.1634967 0.7255982
## sample estimates:
##       cor 
## 0.4946308

Berdasarkan hasil uji diperoleh nilai p-value sebesar 0.005459 atau > 5% menunjukkan nilai korelasi antara variabel data X1 dan Y.

Korelasi Y dan X2
cor.test(datasembuh$grocery_and_pharmacy_percent_change_from_baseline, datasembuh$Sembuh)
## 
##  Pearson's product-moment correlation
## 
## data:  datasembuh$grocery_and_pharmacy_percent_change_from_baseline and datasembuh$Sembuh
## t = 1.8691, df = 28, p-value = 0.07211
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
##  -0.03092777  0.61904352
## sample estimates:
##       cor 
## 0.3330524

Berdasarkan hasil uji diperoleh nilai p-value sebesar 0.07211 atau > 5% menunjukkan nilai korelasi antara variabel data X2 dan Y.

Korelasi Y dan X3
cor.test(datasembuh$parks_percent_change_from_baseline, datasembuh$Sembuh)
## 
##  Pearson's product-moment correlation
## 
## data:  datasembuh$parks_percent_change_from_baseline and datasembuh$Sembuh
## t = 2.5958, df = 28, p-value = 0.01486
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
##  0.09526585 0.69104132
## sample estimates:
##       cor 
## 0.4404193

Berdasarkan hasil uji diperoleh nilai p-value sebesar 0.01486 atau > 5% menunjukkan nilai korelasi antara variabel data X3 dan Y.

Korelasi Y dan X4
cor.test(datasembuh$transit_stations_percent_change_from_baseline, datasembuh$Sembuh)
## 
##  Pearson's product-moment correlation
## 
## data:  datasembuh$transit_stations_percent_change_from_baseline and datasembuh$Sembuh
## t = 0.73345, df = 28, p-value = 0.4694
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
##  -0.2345750  0.4741148
## sample estimates:
##       cor 
## 0.1372972

Berdasarkan hasil uji diperoleh nilai p-value sebesar 0.4694 atau > 5% menunjukkan nilai korelasi antara variabel data X4 dan Y.

Korelasi Y dan X5
cor.test(datasembuh$workplaces_percent_change_from_baseline, datasembuh$Sembuh)
## 
##  Pearson's product-moment correlation
## 
## data:  datasembuh$workplaces_percent_change_from_baseline and datasembuh$Sembuh
## t = 0.54842, df = 28, p-value = 0.5878
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
##  -0.2671004  0.4467653
## sample estimates:
##       cor 
## 0.1030888

Berdasarkan hasil uji diperoleh nilai p-value sebesar 0.5878 atau > 5% menunjukkan nilai korelasi antara variabel data X5 dan Y.

Korelasi Y dan X6
cor.test(datasembuh$residential_percent_change_from_baseline, datasembuh$Sembuh)
## 
##  Pearson's product-moment correlation
## 
## data:  datasembuh$residential_percent_change_from_baseline and datasembuh$Sembuh
## t = -0.69242, df = 28, p-value = 0.4944
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
##  -0.4681360  0.2418235
## sample estimates:
##        cor 
## -0.1297498

Berdasarkan hasil uji diperoleh nilai p-value sebesar 0.4944 atau > 5% menunjukkan nilai korelasi antara variabel data X6 dan Y.