Teknik Informatika
Universitas Islam Negeri Maulana Malik Ibrahim Malang
Regresi Linear Berganda adalah model regresi linear dengan melibatkan lebih dari satu variable bebas atau predictor. Tujuan dari regresi linier berganda ini untuk memodelkan hubungan linier antara variabel penjelas (independen) dan variabel respon (dependen).
Import data dari file excel ke Rpubs dengan fungsi read_excel().
library(readxl)
## Warning: package 'readxl' was built under R version 4.1.3
datameninggal <- read_excel(path = "MeninggalDes2020.xlsx")
datameninggal
## # A tibble: 31 x 8
## Tanggal Meninggal retail_and_recreation_p~ grocery_and_pharmacy_~
## <dttm> <dbl> <dbl> <dbl>
## 1 2020-12-01 00:00:00 3287 -24 1
## 2 2020-12-02 00:00:00 3266 -24 -3
## 3 2020-12-03 00:00:00 3246 -26 -6
## 4 2020-12-04 00:00:00 3226 -23 -2
## 5 2020-12-05 00:00:00 3204 -25 -2
## 6 2020-12-06 00:00:00 3182 -33 -13
## 7 2020-12-07 00:00:00 3167 -28 -9
## 8 2020-12-08 00:00:00 3146 -26 -6
## 9 2020-12-09 00:00:00 3130 -26 -9
## 10 2020-12-10 00:00:00 3115 -27 -7
## # ... with 21 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>
Ringkasan data digunakan untuk mencari nilai statistik lima serangkai (minimum, Q1, Q2 atau median, Q3, maksimum).
summary(datameninggal)
## Tanggal Meninggal
## Min. :2020-12-01 00:00:00 Min. :2689
## 1st Qu.:2020-12-08 12:00:00 1st Qu.:2851
## Median :2020-12-16 00:00:00 Median :3010
## Mean :2020-12-16 00:00:00 Mean :2997
## 3rd Qu.:2020-12-23 12:00:00 3rd Qu.:3138
## Max. :2020-12-31 00:00:00 Max. :3287
## retail_and_recreation_percent_change_from_baseline
## Min. :-36.00
## 1st Qu.:-28.50
## Median :-27.00
## Mean :-27.48
## 3rd Qu.:-25.00
## Max. :-23.00
## grocery_and_pharmacy_percent_change_from_baseline
## Min. :-17.000
## 1st Qu.: -8.500
## Median : -6.000
## Mean : -6.548
## 3rd Qu.: -3.500
## Max. : 1.000
## parks_percent_change_from_baseline
## Min. :-59.00
## 1st Qu.:-49.50
## Median :-47.00
## Mean :-47.52
## 3rd Qu.:-45.50
## Max. :-37.00
## transit_stations_percent_change_from_baseline
## Min. :-53.00
## 1st Qu.:-39.00
## Median :-36.00
## Mean :-36.39
## 3rd Qu.:-33.50
## Max. :-27.00
## workplaces_percent_change_from_baseline
## Min. :-66.00
## 1st Qu.:-32.50
## Median :-30.00
## Mean :-30.77
## 3rd Qu.:-27.50
## Max. :-10.00
## residential_percent_change_from_baseline
## Min. : 6.00
## 1st Qu.:10.50
## Median :12.00
## Mean :11.87
## 3rd Qu.:13.00
## Max. :22.00
pairs(datameninggal)
pairs(datameninggal, lower.panel=NULL)
plot(datameninggal$Meninggal ~ datameninggal$Tanggal, data = datameninggal)
plot(datameninggal$Meninggal ~ datameninggal$
retail_and_recreation_percent_change_from_baseline+datameninggal$
grocery_and_pharmacy_percent_change_from_baseline+datameninggal$
parks_percent_change_from_baseline+datameninggal$
transit_stations_percent_change_from_baseline+datameninggal$
workplaces_percent_change_from_baseline+datameninggal$
residential_percent_change_from_baseline, data = datameninggal)
cor(datameninggal$Meninggal,datameninggal$
retail_and_recreation_percent_change_from_baseline)
## [1] 0.4762492
cor(datameninggal$Meninggal,datameninggal$
grocery_and_pharmacy_percent_change_from_baseline)
## [1] 0.2914278
cor(datameninggal$Meninggal,datameninggal$
parks_percent_change_from_baseline)
## [1] -0.04223129
cor(datameninggal$Meninggal,datameninggal$
transit_stations_percent_change_from_baseline)
## [1] 0.1923779
cor(datameninggal$Meninggal,datameninggal$
workplaces_percent_change_from_baseline)
## [1] 0.2676248
cor(datameninggal$Meninggal,datameninggal$
residential_percent_change_from_baseline)
## [1] -0.2444782
model <- lm(datameninggal$Meninggal ~ datameninggal$Tanggal, data = datameninggal)
summary(model)
##
## Call:
## lm(formula = datameninggal$Meninggal ~ datameninggal$Tanggal,
## data = datameninggal)
##
## Residuals:
## Min 1Q Median 3Q Max
## -13.7621 -5.6069 0.4831 3.4972 13.3226
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 3.677e+05 2.953e+03 124.5 <2e-16 ***
## datameninggal$Tanggal -2.268e-04 1.836e-06 -123.5 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 7.902 on 29 degrees of freedom
## Multiple R-squared: 0.9981, Adjusted R-squared: 0.998
## F-statistic: 1.525e+04 on 1 and 29 DF, p-value: < 2.2e-16
ANOVA (analysis of variance) yaitu pengujian yang dilakukan dengan membandingkan varians.
anova(model)
## Analysis of Variance Table
##
## Response: datameninggal$Meninggal
## Df Sum Sq Mean Sq F value Pr(>F)
## datameninggal$Tanggal 1 952168 952168 15250 < 2.2e-16 ***
## Residuals 29 1811 62
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
plot(datameninggal$Meninggal ~ datameninggal$
Tanggal,
data = datameninggal, col = "Magenta", pch = 20, cex = 1.5,
main = "Data Covid di DKI Jakarta dan Google Mobility Index")
abline(model)
plot(cooks.distance(model), pch = 15, col = "Red")
plot(model)
AIC(model)
## [1] 220.066
BIC(model)
## [1] 224.368
head(predict(model), n = 11)
## 1 2 3 4 5 6 7 8
## 3290.593 3270.998 3251.404 3231.810 3212.215 3192.621 3173.027 3153.432
## 9 10 11
## 3133.838 3114.244 3094.649
plot(head(predict(model), n = 10))
head(resid(model), n = 11)
## 1 2 3 4 5 6
## -3.5927419 -4.9983871 -5.4040323 -5.8096774 -8.2153226 -10.6209677
## 7 8 9 10 11
## -6.0266129 -7.4322581 -3.8379032 0.7564516 2.3508065
coef(model)
## (Intercept) datameninggal$Tanggal
## 3.676868e+05 -2.267865e-04
datameninggal$residuals <- model$residuals
datameninggal$predicted <- model$fitted.values
datameninggal
## # A tibble: 31 x 10
## Tanggal Meninggal retail_and_recreation_p~ grocery_and_pharmacy_~
## <dttm> <dbl> <dbl> <dbl>
## 1 2020-12-01 00:00:00 3287 -24 1
## 2 2020-12-02 00:00:00 3266 -24 -3
## 3 2020-12-03 00:00:00 3246 -26 -6
## 4 2020-12-04 00:00:00 3226 -23 -2
## 5 2020-12-05 00:00:00 3204 -25 -2
## 6 2020-12-06 00:00:00 3182 -33 -13
## 7 2020-12-07 00:00:00 3167 -28 -9
## 8 2020-12-08 00:00:00 3146 -26 -6
## 9 2020-12-09 00:00:00 3130 -26 -9
## 10 2020-12-10 00:00:00 3115 -27 -7
## # ... with 21 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>
scatter.smooth(x=datameninggal$Tanggal, y=datameninggal$Meninggal,
main="Tanggal ~ Meninggal")
boxplot(datameninggal$Meninggal, main="Meninggal",
boxplot.stats(datameninggal$Meninggal)$out)
plot(density(datameninggal$Meninggal), main="Google Mobility Index : Pasien Meninggal",
ylab="Frekuensi")
coefs <- coef(model)
plot(Meninggal ~ Tanggal, data = datameninggal)
abline(coefs)
text(x = 12, y = 10, paste('expression = ', round(coefs[1], 2), '+',
round(coefs[2], 2), '*Meninggal'))
cor.test(datameninggal$
retail_and_recreation_percent_change_from_baseline,
datameninggal$Meninggal)
##
## Pearson's product-moment correlation
##
## data: datameninggal$retail_and_recreation_percent_change_from_baseline and datameninggal$Meninggal
## t = 2.9167, df = 29, p-value = 0.006762
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
## 0.1466583 0.7106621
## sample estimates:
## cor
## 0.4762492
cor.test(datameninggal$
grocery_and_pharmacy_percent_change_from_baseline,
datameninggal$Meninggal)
##
## Pearson's product-moment correlation
##
## data: datameninggal$grocery_and_pharmacy_percent_change_from_baseline and datameninggal$Meninggal
## t = 1.6406, df = 29, p-value = 0.1117
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
## -0.07015705 0.58532463
## sample estimates:
## cor
## 0.2914278
cor.test(datameninggal$
parks_percent_change_from_baseline,
datameninggal$Meninggal)
##
## Pearson's product-moment correlation
##
## data: datameninggal$parks_percent_change_from_baseline and datameninggal$Meninggal
## t = -0.22763, df = 29, p-value = 0.8215
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
## -0.3907245 0.3168503
## sample estimates:
## cor
## -0.04223129
cor.test(datameninggal$
transit_stations_percent_change_from_baseline,
datameninggal$Meninggal)
##
## Pearson's product-moment correlation
##
## data: datameninggal$transit_stations_percent_change_from_baseline and datameninggal$Meninggal
## t = 1.0557, df = 29, p-value = 0.2998
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
## -0.1738104 0.5118281
## sample estimates:
## cor
## 0.1923779
cor.test(datameninggal$
workplaces_percent_change_from_baseline,
datameninggal$Meninggal)
##
## Pearson's product-moment correlation
##
## data: datameninggal$workplaces_percent_change_from_baseline and datameninggal$Meninggal
## t = 1.4958, df = 29, p-value = 0.1455
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
## -0.09580003 0.56809261
## sample estimates:
## cor
## 0.2676248
cor.test(datameninggal$
residential_percent_change_from_baseline,
datameninggal$Meninggal)
##
## Pearson's product-moment correlation
##
## data: datameninggal$residential_percent_change_from_baseline and datameninggal$Meninggal
## t = -1.3578, df = 29, p-value = 0.185
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
## -0.5510792 0.1202818
## sample estimates:
## cor
## -0.2444782