Dosen Pengampu : Prof. Dr. Suhartono, M.Kom
Lembaga : Universitas Islam Negeri Maulana Malik Ibrahim Malang
Fakultas : Sains dan Teknologi
Jurusan : Teknik Informatika
Kelas : (C) Linear Algebra
NIM : 210605110048
Regresi linear berganda merupakan model regresi yang melibatkan lebih dari satu variabel independen. Analisis regresi linear berganda dilakukan untuk mengetahui arah dan seberapa besar pengaruh variabel independen terhadap variabel dependen (Ghozali, 2018).
Excel adalah salah satu jenis file eksternal yang sering digunakan untuk menyimpan data. Kita dapat menggunakan package {readxl} dengan fungsi read_excel() untuk import data dari file Excel. Argumen path = adalah lokasi dan nama file Excel yang akan kita gunakan.
library(readxl)
Meninggal <- read_excel((path = "DataMeninggal.xlsx"))
Meninggal
## # A tibble: 31 x 8
## Tanggal MENINGGAL retail_and_recreation_pe~ grocery_and_pha~ parks_percent_c~
## <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 1 5528 -29 -5 -51
## 2 2 5568 -29 -5 -52
## 3 3 5613 -27 -5 -49
## 4 4 5657 -29 -10 -50
## 5 5 5702 -26 -6 -45
## 6 6 5748 -26 -2 -45
## 7 7 5790 -31 -9 -52
## 8 8 5838 -28 -7 -48
## 9 9 5883 -29 -9 -49
## 10 10 5923 -25 -5 -46
## # ... with 21 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>
Nilai statistik yang dicari adalah minimum, Q1, median, mean, Q3, dan maximum.
summary(Meninggal)
## Tanggal MENINGGAL
## Min. : 1.0 Min. :5528
## 1st Qu.: 8.5 1st Qu.:5860
## Median :16.0 Median :6062
## Mean :16.0 Mean :6018
## 3rd Qu.:23.5 3rd Qu.:6215
## Max. :31.0 Max. :6341
## retail_and_recreation_percent_change_from_baseline
## Min. :-31.00
## 1st Qu.:-29.00
## Median :-27.00
## Mean :-27.19
## 3rd Qu.:-26.00
## Max. :-21.00
## grocery_and_pharmacy_percent_change_from_baseline
## Min. :-11.000
## 1st Qu.: -8.000
## Median : -6.000
## Mean : -6.032
## 3rd Qu.: -4.500
## Max. : 0.000
## parks_percent_change_from_baseline
## Min. :-52.00
## 1st Qu.:-46.50
## Median :-44.00
## Mean :-44.35
## 3rd Qu.:-42.00
## Max. :-34.00
## transit_stations_percent_change_from_baseline
## Min. :-51.00
## 1st Qu.:-38.50
## Median :-37.00
## Mean :-36.03
## 3rd Qu.:-32.00
## Max. :-28.00
## workplaces_percent_change_from_baseline
## Min. :-66.00
## 1st Qu.:-33.00
## Median :-31.00
## Mean :-29.06
## 3rd Qu.:-24.50
## Max. :-12.00
## residential_percent_change_from_baseline
## Min. : 5.000
## 1st Qu.: 7.500
## Median :10.000
## Mean : 9.032
## 3rd Qu.:10.000
## Max. :18.000
pairs(Meninggal)
pairs(Meninggal, lower.panel=NULL)
plot(Meninggal$MENINGGAL ~ Meninggal$Tanggal, data = Meninggal)
plot(Meninggal$MENINGGAL, Meninggal$retail_and_recreation_percent_change_from_baseline+Meninggal$grocery_and_pharmacy_percent_change_from_baseline+Meninggal$parks_percent_change_from_baseline+Meninggal$transit_stations_percent_change_from_baseline+Meninggal$workplaces_percent_change_from_baseline+Meninggal$residential_percent_change_from_baseline, data = Meninggal)
## 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
cor(Meninggal$MENINGGAL,Meninggal$
retail_and_recreation_percent_change_from_baseline)
## [1] 0.4032442
cor(Meninggal$MENINGGAL,Meninggal$
grocery_and_pharmacy_percent_change_from_baseline)
## [1] 0.2311619
cor(Meninggal$MENINGGAL,Meninggal$
parks_percent_change_from_baseline)
## [1] 0.6432437
cor(Meninggal$MENINGGAL,Meninggal$
transit_stations_percent_change_from_baseline)
## [1] 0.3405294
cor(Meninggal$MENINGGAL,Meninggal$
workplaces_percent_change_from_baseline)
## [1] 0.2016787
cor(Meninggal$MENINGGAL,Meninggal$
residential_percent_change_from_baseline)
## [1] -0.1715708
model <- lm(Meninggal$MENINGGAL ~ Meninggal$Tanggal, data = Meninggal)
summary(model)
##
## Call:
## lm(formula = Meninggal$MENINGGAL ~ Meninggal$Tanggal, data = Meninggal)
##
## Residuals:
## Min 1Q Median 3Q Max
## -99.435 -28.285 5.358 38.215 61.071
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 5601.3806 16.9825 329.83 <2e-16 ***
## Meninggal$Tanggal 26.0548 0.9265 28.12 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 46.14 on 29 degrees of freedom
## Multiple R-squared: 0.9646, Adjusted R-squared: 0.9634
## F-statistic: 790.9 on 1 and 29 DF, p-value: < 2.2e-16
Di atas merupakan rincian dari model yang telah dibuat.
Di posisi paling atas terdapat lm formula adalah Meninggal\(MENINGGAL ~ Meninggal\)Tanggal, data = Meninggal
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 = -99.435
Nilai maximum = 61.071
Nilai median = 5.358
Nilai quartil 1 = -28.285
Nilai quartil 3 = 38.215
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
Uji Anova(Analysis of Variance Table) berfungsi untuk membandingkan rata-rata populasi untuk mengetahui perbedaan signifikan dari dua atau lebih kelompok data.
anova(model)
## Analysis of Variance Table
##
## Response: Meninggal$MENINGGAL
## Df Sum Sq Mean Sq F value Pr(>F)
## Meninggal$Tanggal 1 1683559 1683559 790.88 < 2.2e-16 ***
## Residuals 29 61732 2129
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
plot(Meninggal$MENINGGAL ~ Meninggal$Tanggal, data = Meninggal, col = "red", pch = 20, cex = 1.5, main = "Data Inflow Covid DKI Jakarta Maret 2021 dan Google Mobility Index")
abline(model)
Titik-titik merah yang ada pada grafik tersebut adalah data real dan garis hitam di dalam kotak adalah data prediksi.
plot(cooks.distance(model), pch = 16, col = "red") #Plot the Cooks Distances.
plot(model)
AIC berarti Kriteria Informasi Akaike dan BIC berarti Kriteria Informasi Bayesian. Meskipun kedua istilah ini membahas pemilihan model, keduanya tidak sama. Seseorang dapat menemukan perbedaan antara dua pendekatan pemilihan model.
AIC(model)
## [1] 329.4681
BIC(model)
## [1] 333.7701
head(predict(model), n = 11)
## 1 2 3 4 5 6 7 8
## 5627.435 5653.490 5679.545 5705.600 5731.655 5757.710 5783.765 5809.819
## 9 10 11
## 5835.874 5861.929 5887.984
plot(head(predict(model), n = 10))
head(resid(model), n = 11)
## 1 2 3 4 5 6 7
## -99.435484 -85.490323 -66.545161 -48.600000 -29.654839 -9.709677 6.235484
## 8 9 10 11
## 28.180645 47.125806 61.070968 55.016129
coef(model)
## (Intercept) Meninggal$Tanggal
## 5601.38065 26.05484
Meninggal$residuals <- model$residuals
Meninggal$predicted <- model$fitted.values
Meninggal
## # A tibble: 31 x 10
## Tanggal MENINGGAL retail_and_recreation_pe~ grocery_and_pha~ parks_percent_c~
## <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 1 5528 -29 -5 -51
## 2 2 5568 -29 -5 -52
## 3 3 5613 -27 -5 -49
## 4 4 5657 -29 -10 -50
## 5 5 5702 -26 -6 -45
## 6 6 5748 -26 -2 -45
## 7 7 5790 -31 -9 -52
## 8 8 5838 -28 -7 -48
## 9 9 5883 -29 -9 -49
## 10 10 5923 -25 -5 -46
## # ... with 21 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>,
## # predicted <dbl>
scatter.smooth(x=Meninggal$Tanggal, y=Meninggal$MENINGGAL, main="Tanggal ~ Meninggal")
boxplot(Meninggal$MENINGGAL, main="Meninggal", boxplot.stats(Meninggal$MENINGGAL)$out)
plot(density(Meninggal$MENINGGAL), main="Google Mobility Index : Meninggal", ylab="Frequency")
coefs <- coef(model)
plot(MENINGGAL ~ Tanggal, data = Meninggal)
abline(coefs)
text(x = 12, y = 10, paste('expression = ', round(coefs[1], 2), '+', round(coefs[2], 2), '*Meninggal'))
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.
cor.test(Meninggal$retail_and_recreation_percent_change_from_baseline, Meninggal$MENINGGAL)
##
## Pearson's product-moment correlation
##
## data: Meninggal$retail_and_recreation_percent_change_from_baseline and Meninggal$MENINGGAL
## t = 2.373, df = 29, p-value = 0.02449
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
## 0.05705662 0.66286976
## sample estimates:
## cor
## 0.4032442
cor.test(Meninggal$grocery_and_pharmacy_percent_change_from_baseline, Meninggal$MENINGGAL)
##
## Pearson's product-moment correlation
##
## data: Meninggal$grocery_and_pharmacy_percent_change_from_baseline and Meninggal$MENINGGAL
## t = 1.2795, df = 29, p-value = 0.2109
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
## -0.1341679 0.5411745
## sample estimates:
## cor
## 0.2311619
cor.test(Meninggal$parks_percent_change_from_baseline, Meninggal$MENINGGAL)
##
## Pearson's product-moment correlation
##
## data: Meninggal$parks_percent_change_from_baseline and Meninggal$MENINGGAL
## t = 4.5242, df = 29, p-value = 9.498e-05
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
## 0.3741921 0.8124129
## sample estimates:
## cor
## 0.6432437
cor.test(Meninggal$transit_stations_percent_change_from_baseline, Meninggal$MENINGGAL)
##
## Pearson's product-moment correlation
##
## data: Meninggal$transit_stations_percent_change_from_baseline and Meninggal$MENINGGAL
## t = 1.9504, df = 29, p-value = 0.06086
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
## -0.01570588 0.62005201
## sample estimates:
## cor
## 0.3405294
cor.test(Meninggal$workplaces_percent_change_from_baseline, Meninggal$MENINGGAL)
##
## Pearson's product-moment correlation
##
## data: Meninggal$workplaces_percent_change_from_baseline and Meninggal$MENINGGAL
## t = 1.1089, df = 29, p-value = 0.2766
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
## -0.1644107 0.5189343
## sample estimates:
## cor
## 0.2016787
cor.test(Meninggal$residential_percent_change_from_baseline, Meninggal$MENINGGAL)
##
## Pearson's product-moment correlation
##
## data: Meninggal$residential_percent_change_from_baseline and Meninggal$MENINGGAL
## t = -0.93784, df = 29, p-value = 0.3561
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
## -0.4957708 0.1945999
## sample estimates:
## cor
## -0.1715708
https://rpubs.com/suhartono-uinmaliki/877449
https://accounting.binus.ac.id/2021/08/12/memahami-analisis-regresi-linear-berganda/
PENDITEKSIAN PENCILAN (OUTLIER) DAN RESIDUAL …https://www.litbang.pertanian.go.id