Lembaga : Universitas Islam Negeri Maulana Malik Ibrahim Malang

Jurusan : 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
datapositifcovid<- read_excel(path = "positifcovid.xlsx")
datapositifcovid
## # A tibble: 30 x 8
##    Tanggal             POSITIF retail_and_recreation_pe~ grocery_and_pharmacy_p~
##    <dttm>                <dbl>                     <dbl>                   <dbl>
##  1 2020-11-01 00:00:00  106205                       -38                     -15
##  2 2020-11-02 00:00:00  107229                       -30                      -7
##  3 2020-11-03 00:00:00  107846                       -31                      -9
##  4 2020-11-04 00:00:00  108620                       -31                     -12
##  5 2020-11-05 00:00:00  109411                       -33                     -14
##  6 2020-11-06 00:00:00  110083                       -28                      -9
##  7 2020-11-07 00:00:00  111201                       -29                      -8
##  8 2020-11-08 00:00:00  112027                       -33                     -13
##  9 2020-11-09 00:00:00  112743                       -30                     -11
## 10 2020-11-10 00:00:00  113756                       -32                     -12
## # ... 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>

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(datapositifcovid)
##     Tanggal                       POSITIF      
##  Min.   :2020-11-01 00:00:00   Min.   :106205  
##  1st Qu.:2020-11-08 06:00:00   1st Qu.:112206  
##  Median :2020-11-15 12:00:00   Median :119130  
##  Mean   :2020-11-15 12:00:00   Mean   :120085  
##  3rd Qu.:2020-11-22 18:00:00   3rd Qu.:127921  
##  Max.   :2020-11-30 00:00:00   Max.   :136861  
##  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(datapositifcovid)

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(datapositifcovid$POSITIF ~ datapositifcovid$retail_and_recreation_percent_change_from_baseline, data = datapositifcovid)

plot(datapositifcovid$POSITIF ~ datapositifcovid$grocery_and_pharmacy_percent_change_from_baseline, data = datapositifcovid)

plot(datapositifcovid$POSITIF ~ datapositifcovid$parks_percent_change_from_baseline, data = datapositifcovid)

plot(datapositifcovid$POSITIF ~ datapositifcovid$transit_stations_percent_change_from_baseline, data = datapositifcovid)

plot(datapositifcovid$POSITIF ~ datapositifcovid$workplaces_percent_change_from_baseline, data = datapositifcovid)

plot(datapositifcovid$POSITIF ~ datapositifcovid$residential_percent_change_from_baseline, data = datapositifcovid)

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(datapositifcovid$POSITIF, datapositifcovid$retail_and_recreation_percent_change_from_baseline)
## [1] 0.4916337

Berdasarkan hasil perhitungan diperoleh nilai Korelasi sebesar 0.49

Korelasi Y dan X2

cor(datapositifcovid$POSITIF, datapositifcovid$grocery_and_pharmacy_percent_change_from_baseline)
## [1] 0.359462

Berdasarkan hasil perhitungan diperoleh nilai Korelasi sebesar 0.33

Korelasi Y dan X3

cor(datapositifcovid$POSITIF, datapositifcovid$parks_percent_change_from_baseline)
## [1] 0.4292698

Berdasarkan hasil perhitungan diperoleh nilai Korelasi sebesar 0.44

Korelasi Y dan X4

cor(datapositifcovid$POSITIF, datapositifcovid$transit_stations_percent_change_from_baseline)
## [1] 0.1600396

Berdasarkan hasil perhitungan diperoleh nilai Korelasi sebesar 0.13

Korelasi Y dan X5

cor(datapositifcovid$POSITIF, datapositifcovid$workplaces_percent_change_from_baseline)
## [1] 0.1185174

Berdasarkan hasil perhitungan diperoleh nilai Korelasi sebesar 0.10

Korelasi Y dan X6

cor(datapositifcovid$POSITIF, datapositifcovid$residential_percent_change_from_baseline)
## [1] -0.1536775

Berdasarkan hasil perhitungan diperoleh nilai Korelasi sebesar -0.12

Membuat Model Regresi Linier Berganda

model <- lm(datapositifcovid$POSITIF ~ datapositifcovid$Tanggal, data = datapositifcovid)

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

summary (model)
## 
## Call:
## lm(formula = datapositifcovid$POSITIF ~ datapositifcovid$Tanggal, 
##     data = datapositifcovid)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -1217.42  -896.12    81.65   603.11  1551.35 
## 
## Coefficients:
##                            Estimate Std. Error t value Pr(>|t|)    
## (Intercept)              -1.965e+07  3.454e+05  -56.91   <2e-16 ***
## datapositifcovid$Tanggal  1.232e-02  2.151e-04   57.25   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 881.2 on 28 degrees of freedom
## Multiple R-squared:  0.9915, Adjusted R-squared:  0.9912 
## F-statistic:  3278 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: datapositifcovid$POSITIF
##                          Df     Sum Sq    Mean Sq F value    Pr(>F)    
## datapositifcovid$Tanggal  1 2545490312 2545490312  3277.9 < 2.2e-16 ***
## Residuals                28   21743550     776555                      
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Grafik Plot dan Abline

plot (datapositifcovid$POSITIF ~ datapositifcovid$Tanggal, data = datapositifcovid, col = "purple", pch = 20, cex =         1.5, main = "Data Positif Covid di DKI Jakarta Pada November 2020")
abline(model)

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

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] 495.9452
BIC (model)
## [1] 500.1488

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

head(predict(model), n = 16)
##        1        2        3        4        5        6        7        8 
## 104653.7 105717.9 106782.1 107846.3 108910.6 109974.8 111039.0 112103.3 
##        9       10       11       12       13       14       15       16 
## 113167.5 114231.7 115296.0 116360.2 117424.4 118488.7 119552.9 120617.1
plot (head(predict(model), n = 30))

Data Dengan Residuals

head (resid(model), n = 16)
##           1           2           3           4           5           6 
##  1551.34839  1511.11746  1063.88654   773.65562   500.42469   108.19377 
##           7           8           9          10          11          12 
##   161.96285   -76.26808  -424.49900  -475.72992  -952.96085 -1186.19177 
##          13          14          15          16 
## -1217.42269 -1026.65362  -925.88454  -984.11546
coef(model)
##              (Intercept) datapositifcovid$Tanggal 
##            -1.965492e+07             1.231749e-02

Menampilkan Nilai Residuals dan Predict Pada Tabel

datapositifcovid$residuals <- model$residuals
datapositifcovid$predict <- model$fitted.values
datapositifcovid
## # A tibble: 30 x 10
##    Tanggal             POSITIF retail_and_recreation_pe~ grocery_and_pharmacy_p~
##    <dttm>                <dbl>                     <dbl>                   <dbl>
##  1 2020-11-01 00:00:00  106205                       -38                     -15
##  2 2020-11-02 00:00:00  107229                       -30                      -7
##  3 2020-11-03 00:00:00  107846                       -31                      -9
##  4 2020-11-04 00:00:00  108620                       -31                     -12
##  5 2020-11-05 00:00:00  109411                       -33                     -14
##  6 2020-11-06 00:00:00  110083                       -28                      -9
##  7 2020-11-07 00:00:00  111201                       -29                      -8
##  8 2020-11-08 00:00:00  112027                       -33                     -13
##  9 2020-11-09 00:00:00  112743                       -30                     -11
## 10 2020-11-10 00:00:00  113756                       -32                     -12
## # ... 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>,
## #   predict <dbl>

Membuat Grafik Dengan Scatter.Smooth

scatter.smooth(x=datapositifcovid$Tanggal, y=datapositifcovid$Sembuh, main = "Grafik Scatter.Smooth")
## Warning: Unknown or uninitialised column: `Sembuh`.

Membuat Diagram Dengan Boxplot

boxplot(datapositifcovid$POSITIF, main = "Grafik Positif" , boxplot.stats(datapositifcovid$POSITIF)$out)

Membuat Grafik Dengan Plot

plot(density(datapositifcovid$POSITIF), main = "Grafik Mobility Index Positif", ylab = "frequency")

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

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(datapositifcovid$retail_and_recreation_percent_change_from_baseline, datapositifcovid$POSITIF)
## 
##  Pearson's product-moment correlation
## 
## data:  datapositifcovid$retail_and_recreation_percent_change_from_baseline and datapositifcovid$POSITIF
## t = 2.9875, df = 28, p-value = 0.005794
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
##  0.1596400 0.7237177
## sample estimates:
##       cor 
## 0.4916337

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(datapositifcovid$grocery_and_pharmacy_percent_change_from_baseline, datapositifcovid$POSITIF)
## 
##  Pearson's product-moment correlation
## 
## data:  datapositifcovid$grocery_and_pharmacy_percent_change_from_baseline and datapositifcovid$POSITIF
## t = 2.0383, df = 28, p-value = 0.05106
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
##  -0.0009272999  0.6372104990
## sample estimates:
##      cor 
## 0.359462

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(datapositifcovid$parks_percent_change_from_baseline, datapositifcovid$POSITIF)
## 
##  Pearson's product-moment correlation
## 
## data:  datapositifcovid$parks_percent_change_from_baseline and datapositifcovid$POSITIF
## t = 2.515, df = 28, p-value = 0.01792
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
##  0.08162389 0.68378916
## sample estimates:
##       cor 
## 0.4292698

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(datapositifcovid$transit_stations_percent_change_from_baseline, datapositifcovid$POSITIF)
## 
##  Pearson's product-moment correlation
## 
## data:  datapositifcovid$transit_stations_percent_change_from_baseline and datapositifcovid$POSITIF
## t = 0.85791, df = 28, p-value = 0.3982
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
##  -0.2124807  0.4919446
## sample estimates:
##       cor 
## 0.1600396

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(datapositifcovid$workplaces_percent_change_from_baseline, datapositifcovid$POSITIF)
## 
##  Pearson's product-moment correlation
## 
## data:  datapositifcovid$workplaces_percent_change_from_baseline and datapositifcovid$POSITIF
## t = 0.63159, df = 28, p-value = 0.5328
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
##  -0.2525346  0.4591804
## sample estimates:
##       cor 
## 0.1185174

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(datapositifcovid$residential_percent_change_from_baseline, datapositifcovid$POSITIF)
## 
##  Pearson's product-moment correlation
## 
## data:  datapositifcovid$residential_percent_change_from_baseline and datapositifcovid$POSITIF
## t = -0.82296, df = 28, p-value = 0.4175
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
##  -0.4869847  0.2187002
## sample estimates:
##        cor 
## -0.1536775

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

Referensi

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

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

https://riwayat-file-covid-19-dki-jakarta-jakartagis.hub.arcgis.com/

https://www.google.com/covid19/mobility/?hl=id

https://simdos.unud.ac.id/uploads/file_pendidikan_1_dir/5f0221d2b0bb7ced1d61798fab7f4ad3.pdf

https://id.berita.yahoo.com/korelasi-adalah-hubungan-dua-variabel-040025974.html?guccounter=1&guce_referrer=aHR0cHM6Ly93d3cuYmluZy5jb20v&guce_referrer_sig=AQAAANP_3I0NxpZvFlQWNLWVwEuJLdMDGwF0GIUUeAr2ghNHP2NyT0RNpmEKjn8uaLBqI5XFnFNGbJbxu4rh19Ggk137iHKrMITbI_lavq8uhYwoKuYJKd3CxMAudDoO2_U3i7CL3aNhesS-BaKodZB9EMQ-LKXX2k-686i40NWcZVGM

https://environmentallearning.wordpress.com/2019/01/14/mengukur-korelasi-antar-variabel-r/

https://www.labmutu.com/2020/12/pengertian-uji-anova-rumus-dan-tabel.html

https://ujistatistikhalal.com/blog/apa-itu-anova-untuk-analisis-statistik/

https://id.classicfoxvalley.com/collate/difference-between-aic-and-bic-a0119b/