Lembaga : Universitas Islam Negeri Maulana Malik Ibrahim Malan”

Jurusan : Teknik Informatika

1 Regresi Linear

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.

2 Data Dirawat Terhadap Pasien Covid-19 Beserta Google Mobility Index DKI Jakarta pada Bulan Maret 2020

library(readxl)
## Warning: package 'readxl' was built under R version 4.1.3
dataDirawat <- read_excel((path = "Data Dirawat Covid DKI Jakarta Bulan Agustus.xlsx"))
dataDirawat
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.1.3
library(reshape2)
## Warning: package 'reshape2' was built under R version 4.1.3
x <- dataDirawat$Dirawat
retail <- dataDirawat$retail_and_recreation_percent_change_from_baseline
grocery <- dataDirawat$grocery_and_pharmacy_percent_change_from_baseline
park <- dataDirawat$parks_percent_change_from_baseline
station <- dataDirawat$transit_stations_percent_change_from_baseline
workplace <- dataDirawat$workplaces_percent_change_from_baseline
residental <- dataDirawat$residential_percent_change_from_baseline
df <- data.frame(x, retail, grocery, park, station, workplace,residental  )

# melt the data to a long format
df2 <- melt(data = df, id.vars = "x")

# plot, using the aesthetics argument 'colour'
ggplot(data = df2, aes(x = x, y = value, colour = variable))+
  geom_point() +
  geom_line() + 
  theme(legend.justification = "top") +
  labs(title = "Google Mobility Index", 
         subtitle = "Provinsi DKI Jakarta Indonesia Bulan Agustus 2020", 
         y = "Mobility", x = "Data Dirawat") +
theme(axis.text.x = element_text(angle = -90))

3 Summary() dari Data Dirawat

summary(dataDirawat)
##     Tanggal                       Dirawat    
##  Min.   :2020-08-01 00:00:00   Min.   :2153  
##  1st Qu.:2020-08-08 12:00:00   1st Qu.:2508  
##  Median :2020-08-16 00:00:00   Median :2576  
##  Mean   :2020-08-16 00:00:00   Mean   :2611  
##  3rd Qu.:2020-08-23 12:00:00   3rd Qu.:2716  
##  Max.   :2020-08-31 00:00:00   Max.   :3288  
##  retail_and_recreation_percent_change_from_baseline
##  Min.   :-37.00                                    
##  1st Qu.:-32.00                                    
##  Median :-27.00                                    
##  Mean   :-28.32                                    
##  3rd Qu.:-26.00                                    
##  Max.   :-21.00                                    
##  grocery_and_pharmacy_percent_change_from_baseline
##  Min.   :-19.000                                  
##  1st Qu.:-14.000                                  
##  Median : -9.000                                  
##  Mean   : -9.871                                  
##  3rd Qu.: -7.000                                  
##  Max.   : -2.000                                  
##  parks_percent_change_from_baseline
##  Min.   :-71.00                    
##  1st Qu.:-65.50                    
##  Median :-62.00                    
##  Mean   :-62.06                    
##  3rd Qu.:-59.00                    
##  Max.   :-49.00                    
##  transit_stations_percent_change_from_baseline
##  Min.   :-57.00                               
##  1st Qu.:-42.00                               
##  Median :-41.00                               
##  Mean   :-40.84                               
##  3rd Qu.:-38.50                               
##  Max.   :-32.00                               
##  workplaces_percent_change_from_baseline
##  Min.   :-70.0                          
##  1st Qu.:-33.0                          
##  Median :-31.0                          
##  Mean   :-30.1                          
##  3rd Qu.:-20.0                          
##  Max.   :-12.0                          
##  residential_percent_change_from_baseline
##  Min.   : 7.00                           
##  1st Qu.: 9.00                           
##  Median :14.00                           
##  Mean   :12.58                           
##  3rd Qu.:14.00                           
##  Max.   :21.00

4 Matriks Data Dirawat

pairs(dataDirawat)

pairs(dataDirawat, lower.panel=NULL)

5 Visualisas Data Dirawat

plot(dataDirawat$Dirawat ~ dataDirawat$Tanggal, data = dataDirawat)

Mengvisualisasikan dengan Data Positif sebagai Variable Y dan Google Mobility Index sebagai Variable X

plot(dataDirawat$Dirawat, dataDirawat$retail_and_recreation_percent_change_from_baseline+dataDirawat$grocery_and_pharmacy_percent_change_from_baseline+dataDirawat$parks_percent_change_from_baseline+dataDirawat$transit_stations_percent_change_from_baseline+dataDirawat$workplaces_percent_change_from_baseline+dataDirawat$residential_percent_change_from_baseline, data = dataDirawat)
## Warning in plot.window(...): "data" is not a graphical parameter
## Warning in plot.xy(xy, type, ...): "data" is not a graphical parameter
## Warning in axis(side = side, at = at, labels = labels, ...): "data" is not a
## graphical parameter

## Warning in axis(side = side, at = at, labels = labels, ...): "data" is not a
## graphical parameter
## Warning in box(...): "data" is not a graphical parameter
## Warning in title(...): "data" is not a graphical parameter

6 Korelasi Antar Variable

Korelasi Variable Y dengan X1

cor(dataDirawat$Dirawat,dataDirawat$retail_and_recreation_percent_change_from_baseline)
## [1] 0.418288

Korelasi Variable Y dengan X2

cor(dataDirawat$Dirawat,dataDirawat$grocery_and_pharmacy_percent_change_from_baseline)
## [1] 0.2548986

Korelasi Variable Y dengan X3

cor(dataDirawat$Dirawat,dataDirawat$parks_percent_change_from_baseline)
## [1] 0.4896806

Korelasi Variable Y dengan X4

cor(dataDirawat$Dirawat,dataDirawat$transit_stations_percent_change_from_baseline)
## [1] 0.1840179

Korelasi Variable Y dengan X5

cor(dataDirawat$Dirawat,dataDirawat$workplaces_percent_change_from_baseline)
## [1] 0.130145

Korelasi Variable Y dengan X6

cor(dataDirawat$Dirawat,dataDirawat$residential_percent_change_from_baseline)
## [1] 0.03703214

Permodelan Regresi Linier Berganda

model <- lm(dataDirawat$Dirawat ~ dataDirawat$Tanggal, data = dataDirawat)
summary(model)
## 
## Call:
## lm(formula = dataDirawat$Dirawat ~ dataDirawat$Tanggal, data = dataDirawat)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -297.06 -105.33   20.39   73.12  385.16 
## 
## Coefficients:
##                       Estimate Std. Error t value Pr(>|t|)    
## (Intercept)         -3.569e+05  5.305e+04  -6.728 2.21e-07 ***
## dataDirawat$Tanggal  2.251e-04  3.321e-05   6.778 1.93e-07 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 142.9 on 29 degrees of freedom
## Multiple R-squared:  0.613,  Adjusted R-squared:  0.5997 
## F-statistic: 45.94 on 1 and 29 DF,  p-value: 1.935e-07

Di atas merupakan rincian dari model yang telah dibuat.

Di posisi paling atas terdapat lm formula adalah dataDirawat$Dirawat ~ dataDirawat$Tanggal, data = dataDirawat

Lalu di bawahnya terdapat 5 nilai residual, sebelumnya kita perlu tahu bahwa Residual merupakan selisih dari nilai prediksi dan nilai sebenarnya (actual) atau ei =Yi - (a + b Xi ). Jika nilai pengamatan terletak dalam garis regresi maka nilai residunya sama dengan nol. Yang mana semakin kecil nilai residual maka semakin baik atau benar model yang kita buat. Berikut nilai-nilai residual yang dihasilkan:

Nilai minimum = -22.032

Nilai maximum = 10.413

Nilai median = 1.523

Nilai quartil 1 = -4.415

Nilai quartil 3 = 6.648

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, retail_and_recreation, grocery_and_pharmacy, parks, transit_stations, workplaces dan residential. Selain itu juga terdapat nilai-p dari koefisien

7 Fungsi Anova

Uji Anova(Analysis of Variance Table) berfungsi untuk membandingkan rata-rata populasi untuk mengetahui perbedaan signifikan dari dua atau lebih kelompok data.

anova(model)

8 Visualisasi Model Dari Data Real dengan Data Prediksi

plot(dataDirawat$Dirawat ~ dataDirawat$Tanggal, data = dataDirawat, col = "navy", pch = 20, cex = 1.5, main = "Data Inflow Covid DKI Jakarta Agustus 2020 dan Google Mobility Index")
abline(model)

Titik-titik biru tua yang ada pada grafik tersebut adalah data real dan garis hitam di dalam kotak adalah data prediksi

plot(cooks.distance(model), pch = 16, col = "navy") #Plot the Cooks Distances.

plot(model)

9 Penggunaan AIC dan BIC

AIC(model)
## [1] 399.5496
BIC(model)
## [1] 403.8516

10 Predicted dan Residuals

Nilai Predicted dan Residuals

head(predict(model), n = 11)
##        1        2        3        4        5        6        7        8 
## 2319.484 2338.929 2358.374 2377.819 2397.265 2416.710 2436.155 2455.600 
##        9       10       11 
## 2475.045 2494.490 2513.935
plot(head(predict(model), n = 10))

head(resid(model), n = 11)
##          1          2          3          4          5          6          7 
## -166.48387 -179.92903  -31.37419   54.18065   85.73548  135.29032  158.84516 
##          8          9         10         11 
##   32.40000  -59.04516   60.50968   34.06452
coef(model)
##         (Intercept) dataDirawat$Tanggal 
##       -3.569299e+05        2.250597e-04

Tabel Data Predicted dan Data Residuals

dataDirawat$residuals <- model$residuals
dataDirawat$predicted <- model$fitted.values
dataDirawat

Visualisasi Data Menggunakan Scatter.Smooth, Boxplot dan Plot

scatter.smooth(x=dataDirawat$Tanggal, y=dataDirawat$Dirawat, main="Tanggal ~ Dirawat")

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

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

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

11 Uji Korelasi Antar Variable

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.

Uji Korelasi Variable Y dengan X1

cor.test(dataDirawat$retail_and_recreation_percent_change_from_baseline, dataDirawat$Dirawat)
## 
##  Pearson's product-moment correlation
## 
## data:  dataDirawat$retail_and_recreation_percent_change_from_baseline and dataDirawat$Dirawat
## t = 2.4799, df = 29, p-value = 0.01919
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
##  0.07507529 0.67289430
## sample estimates:
##      cor 
## 0.418288

Uji Korelasi Variable Y dengan X2

cor.test(dataDirawat$grocery_and_pharmacy_percent_change_from_baseline, dataDirawat$Dirawat)
## 
##  Pearson's product-moment correlation
## 
## data:  dataDirawat$grocery_and_pharmacy_percent_change_from_baseline and dataDirawat$Dirawat
## t = 1.4196, df = 29, p-value = 0.1664
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
##  -0.1093150  0.5587701
## sample estimates:
##       cor 
## 0.2548986

Uji Korelasi Variable Y dengan X3

cor.test(dataDirawat$parks_percent_change_from_baseline, dataDirawat$Dirawat)
## 
##  Pearson's product-moment correlation
## 
## data:  dataDirawat$parks_percent_change_from_baseline and dataDirawat$Dirawat
## t = 3.0244, df = 29, p-value = 0.005173
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
##  0.1637540 0.7192254
## sample estimates:
##       cor 
## 0.4896806

Uji Korelasi Variable Y dengan X4

cor.test(dataDirawat$transit_stations_percent_change_from_baseline, dataDirawat$Dirawat)
## 
##  Pearson's product-moment correlation
## 
## data:  dataDirawat$transit_stations_percent_change_from_baseline and dataDirawat$Dirawat
## t = 1.0082, df = 29, p-value = 0.3217
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
##  -0.1822028  0.5054032
## sample estimates:
##       cor 
## 0.1840179

Uji Korelasi Variable Y dengan X5

cor.test(dataDirawat$workplaces_percent_change_from_baseline, dataDirawat$Dirawat)
## 
##  Pearson's product-moment correlation
## 
## data:  dataDirawat$workplaces_percent_change_from_baseline and dataDirawat$Dirawat
## t = 0.70686, df = 29, p-value = 0.4853
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
##  -0.2350338  0.4631277
## sample estimates:
##      cor 
## 0.130145

Uji Korelasi Variable Y dengan X6

cor.test(dataDirawat$residential_percent_change_from_baseline, dataDirawat$Dirawat)
## 
##  Pearson's product-moment correlation
## 
## data:  dataDirawat$residential_percent_change_from_baseline and dataDirawat$Dirawat
## t = 0.19956, df = 29, p-value = 0.8432
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
##  -0.3215270  0.3863032
## sample estimates:
##        cor 
## 0.03703214