Lembaga : Universitas Islam Negeri Maulana Malik Ibrahim Malang
Fakultas : Sains dan Teknologi
Program Studi : Teknik Informatika
Mata Kuliah : Linear Algebra (b)
Definisi Analisis Regresi
Analisis Regresi merupakan salah satu analisis yang bertujuan untuk mengetahui pengaruh suatu variable terhadap variable lainnya. Dalam analisis regresi variable yang mempengaruhi disebut independent variable dan variable yang dipengaruhi disebut dependent variable. Jika dalam persamaan regresi hanya terdapat satu variable bebas dan satu variable terikat maka disebut persamaan regresi sederhana sedangkan jjika variable bebasnya lebih dari satu maka disebut persamaan regresi berganda.
library(readxl)
mobilityindex <- read.csv(file = '2020_ID_Region_Mobility_Report.csv')
mobilityindex
library(tidyverse)
mobilJK <- mobilityindex %>%
filter(iso_3166_2_code== "ID-JK")
mobilJK
mobilJK$date <- as.Date(mobilJK$date)
mobilJK
mobilJTup <- filter(mobilJK, "2020-12-01" < date & date < "2020-12-31")
mobilJTup
library(ggplot2)
library(reshape2)
x <- mobilJTup$date
retail <- mobilJTup$retail_and_recreation_percent_change_from_baseline
grocery <- mobilJTup$grocery_and_pharmacy_percent_change_from_baseline
park <- mobilJTup$parks_percent_change_from_baseline
station <- mobilJTup$transit_stations_percent_change_from_baseline
workplace <- mobilJTup$workplaces_percent_change_from_baseline
residental <- mobilJTup$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 = "Propinsi DKI Jakarta Indonesia 2020",
y = "Mobility", x = "Date") +
theme(axis.text.x = element_text(angle = -90))

dim(mobilJTup)
[1] 29 15
Regrasi Linier Sederhana (Simple Linear Regression)
Pada pembahasan pembentukan model linier sederhana menggunakan dataset google mobility index dengan jumlah observasi sebesar 29 observasi. Pada contoh kali ini kita akan mencoba membentuk model dengan variabel dependen berupa medv (median harga rumah) dan variabel independen berupa retail_and_recreation_percent_change_from_baseline dengan mobilJTup$grocery_and_pharmacy_percent_change_from_baseline. Berikut adalah sintaks untuk membentuk model tersebut:
library(MASS)
lm.fit <- lm(mobilJTup$retail_and_recreation_percent_change_from_baseline~mobilJTup$grocery_and_pharmacy_percent_change_from_baseline, data=mobilJTup)
anova(lm.fit)
Analysis of Variance Table
Response: mobilJTup$retail_and_recreation_percent_change_from_baseline
Df Sum Sq Mean Sq
mobilJTup$grocery_and_pharmacy_percent_change_from_baseline 1 310.837 310.837
Residuals 27 46.336 1.716
F value Pr(>F)
mobilJTup$grocery_and_pharmacy_percent_change_from_baseline 181.13 1.723e-13 ***
Residuals
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
summary(lm.fit)
Call:
lm(formula = mobilJTup$retail_and_recreation_percent_change_from_baseline ~
mobilJTup$grocery_and_pharmacy_percent_change_from_baseline,
data = mobilJTup)
Residuals:
Min 1Q Median 3Q Max
-2.9066 -0.7599 0.4757 0.6816 3.0638
Coefficients:
Estimate Std. Error
(Intercept) -21.9172 0.4776
mobilJTup$grocery_and_pharmacy_percent_change_from_baseline 0.7941 0.0590
t value Pr(>|t|)
(Intercept) -45.89 < 2e-16 ***
mobilJTup$grocery_and_pharmacy_percent_change_from_baseline 13.46 1.72e-13 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 1.31 on 27 degrees of freedom
Multiple R-squared: 0.8703, Adjusted R-squared: 0.8655
F-statistic: 181.1 on 1 and 27 DF, p-value: 1.723e-13
plot(lm.fit)




# error berdistribusi normal
# (data tidak berdistribusi normal)
shapiro.test(residuals(lm.fit))
Shapiro-Wilk normality test
data: residuals(lm.fit)
W = 0.9521, p-value = 0.2075
# varians bersifat konstan
# (varians tidak konstan)
library(lmtest)
bptest(lm.fit)
studentized Breusch-Pagan test
data: lm.fit
BP = 0.047053, df = 1, p-value = 0.8283
# error bersifat independen
# (error tidak bersifat independen)
dwtest(lm.fit, alternative = "two.sided")
Durbin-Watson test
data: lm.fit
DW = 1.5026, p-value = 0.1467
alternative hypothesis: true autocorrelation is not 0
# deteksi outlier (stdres > 2)
sres <- rstandard(lm.fit)
sres[which(abs(sres)>2)] # nomor observasi outlier
8 29
2.390562 -2.279139
# influential observation
# observasi > percentil 50
# tidak ada observasi dengan jarak cook yang extrim
cooksD <- cooks.distance(lm.fit)
p50 <- qf(0.5, df1=2, df2=560-2)
any(cooksD>p50)
[1] FALSE
LS0tDQp0aXRsZTogIk1lbWJhbmd1biBSZWdyZXNpIExpbmllciBTZWRlcmhhbmEgKFNpbXBsZSBMaW5lYXIgUmVncmVzc2lvbikgcGFkYSBEYXRhIEdvb2dsZSBNb2JpbGl0eSBJbmRleCINCmF1dGhvcjogIioqUmlmcWkgTXVydGlhbmksIFByb2YuIERyLiBTdWhhcnRvbm8sIE0uS29tLioqIg0KZGF0ZTogIjI3LzMvMjAyMiINCm91dHB1dDogDQogIGh0bWxfbm90ZWJvb2s6DQogICAgbnVtYmVyX3NlY3Rpb25zOiB5ZXMNCiAgICB0aGVtZTogZGFya2x5DQogICAgZGZfcHJpbnQ6IHBhZ2VkDQogICAgdG9jOiB5ZXMNCiAgICB0b2NfZGVwdGg6IDQNCiAgICB0b2NfZmxvYXQ6IHRydWUNCiAgaHRtbF9kb2N1bWVudDoNCiAgICBudW1iZXJfc2VjdGlvbnM6IHllcw0KICAgIHRoZW1lOiBkYXJrbHkNCiAgICBkZl9wcmludDogcGFnZWQNCiAgICB0b2M6IHllcw0KICAgIHRvY19kZXB0aDogJzQnDQogICAgdG9jX2Zsb2F0OiB0cnVlDQotLS0NCg0KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4NCg0KYm9keXsgLyogTm9ybWFsICAqLw0KICAgICAgZm9udC1zaXplOiAxMnB4Ow0KICB9DQp0ZCB7ICAvKiBUYWJsZSAgKi8NCiAgZm9udC1zaXplOiAxMnB4Ow0KfQ0KaDEudGl0bGUgew0KICBmb250LXNpemU6IDM4cHg7DQogIGNvbG9yOiBwaW5rOw0KICBmb250LXdlaWdodDogYm9sZDsNCn0NCmgxIHsgLyogSGVhZGVyIDEgKi8NCiAgZm9udC1zaXplOiAyNHB4Ow0KICBjb2xvcjogcGluazsNCn0NCmgyIHsgLyogSGVhZGVyIDIgKi8NCiAgZm9udC1zaXplOiAyMHB4Ow0KICBjb2xvcjogcGluazsNCn0NCmgzIHsgLyogSGVhZGVyIDMgKi8NCiAgZm9udC1zaXplOiAxNnB4Ow0KIyAgZm9udC1mYW1pbHk6ICJUaW1lcyBOZXcgUm9tYW4iLCBUaW1lcywgc2VyaWY7DQogIGNvbG9yOiBwaW5rOw0KfQ0KaDQgeyAvKiBIZWFkZXIgNCAqLw0KICBmb250LXNpemU6IDE0cHg7DQogIGNvbG9yOiBwaW5rOw0KfQ0KY29kZS5yeyAvKiBDb2RlIGJsb2NrICovDQogICAgZm9udC1zaXplOiAxMnB4Ow0KfQ0KcHJlIHsgLyogQ29kZSBibG9jayAtIGRldGVybWluZXMgY29kZSBzcGFjaW5nIGJldHdlZW4gbGluZXMgKi8NCiAgICBmb250LXNpemU6IDEycHg7DQp9DQo8L3N0eWxlPg0KLS0tDQoNCkxlbWJhZ2EgOiBVbml2ZXJzaXRhcyBJc2xhbSBOZWdlcmkgTWF1bGFuYSBNYWxpayBJYnJhaGltIE1hbGFuZw0KDQpGYWt1bHRhcyA6IFNhaW5zIGRhbiBUZWtub2xvZ2kNCg0KUHJvZ3JhbSBTdHVkaSA6IFRla25payBJbmZvcm1hdGlrYQ0KDQpNYXRhIEt1bGlhaCA6IExpbmVhciBBbGdlYnJhIChiKQ0KDQojIyBEZWZpbmlzaSBBbmFsaXNpcyBSZWdyZXNpDQoNCkFuYWxpc2lzIFJlZ3Jlc2kgbWVydXBha2FuIHNhbGFoIHNhdHUgYW5hbGlzaXMgeWFuZyBiZXJ0dWp1YW4gdW50dWsgbWVuZ2V0YWh1aSBwZW5nYXJ1aCBzdWF0dSB2YXJpYWJsZSB0ZXJoYWRhcCB2YXJpYWJsZSBsYWlubnlhLiBEYWxhbSBhbmFsaXNpcyByZWdyZXNpIHZhcmlhYmxlIHlhbmcgbWVtcGVuZ2FydWhpIGRpc2VidXQgaW5kZXBlbmRlbnQgdmFyaWFibGUgZGFuIHZhcmlhYmxlIHlhbmcgZGlwZW5nYXJ1aGkgZGlzZWJ1dCBkZXBlbmRlbnQgdmFyaWFibGUuIEppa2EgZGFsYW0gcGVyc2FtYWFuIHJlZ3Jlc2kgaGFueWEgdGVyZGFwYXQgc2F0dSB2YXJpYWJsZSBiZWJhcyBkYW4gc2F0dSB2YXJpYWJsZSB0ZXJpa2F0IG1ha2EgZGlzZWJ1dCBwZXJzYW1hYW4gcmVncmVzaSBzZWRlcmhhbmEgc2VkYW5na2FuIGpqaWthIHZhcmlhYmxlIGJlYmFzbnlhIGxlYmloIGRhcmkgc2F0dSBtYWthIGRpc2VidXQgcGVyc2FtYWFuIHJlZ3Jlc2kgYmVyZ2FuZGEuDQoNCmBgYHtyfQ0KbGlicmFyeShyZWFkeGwpDQptb2JpbGl0eWluZGV4IDwtIHJlYWQuY3N2KGZpbGUgPSAgJzIwMjBfSURfUmVnaW9uX01vYmlsaXR5X1JlcG9ydC5jc3YnKQ0KbW9iaWxpdHlpbmRleA0KYGBgDQpgYGB7cn0NCmxpYnJhcnkodGlkeXZlcnNlKQ0KYGBgDQoNCmBgYHtyfQ0KbW9iaWxKSyA8LSBtb2JpbGl0eWluZGV4ICU+JQ0KICAgICAgIGZpbHRlcihpc29fMzE2Nl8yX2NvZGU9PSAiSUQtSksiKQ0KbW9iaWxKSw0KYGBgDQoNCmBgYHtyfQ0KbW9iaWxKSyRkYXRlIDwtIGFzLkRhdGUobW9iaWxKSyRkYXRlKQ0KbW9iaWxKSw0KYGBgDQoNCmBgYHtyfQ0KbW9iaWxKVHVwIDwtIGZpbHRlcihtb2JpbEpLLCAiMjAyMC0xMi0wMSIgPCBkYXRlICYgZGF0ZSA8ICIyMDIwLTEyLTMxIikNCm1vYmlsSlR1cA0KYGBgDQoNCg0KYGBge3J9DQpsaWJyYXJ5KGdncGxvdDIpDQpsaWJyYXJ5KHJlc2hhcGUyKQ0KYGBgDQoNCmBgYHtyfQ0KeCA8LSBtb2JpbEpUdXAkZGF0ZQ0KcmV0YWlsIDwtIG1vYmlsSlR1cCRyZXRhaWxfYW5kX3JlY3JlYXRpb25fcGVyY2VudF9jaGFuZ2VfZnJvbV9iYXNlbGluZQ0KZ3JvY2VyeSA8LSBtb2JpbEpUdXAkZ3JvY2VyeV9hbmRfcGhhcm1hY3lfcGVyY2VudF9jaGFuZ2VfZnJvbV9iYXNlbGluZQ0KcGFyayA8LSBtb2JpbEpUdXAkcGFya3NfcGVyY2VudF9jaGFuZ2VfZnJvbV9iYXNlbGluZQ0Kc3RhdGlvbiA8LSBtb2JpbEpUdXAkdHJhbnNpdF9zdGF0aW9uc19wZXJjZW50X2NoYW5nZV9mcm9tX2Jhc2VsaW5lDQp3b3JrcGxhY2UgPC0gbW9iaWxKVHVwJHdvcmtwbGFjZXNfcGVyY2VudF9jaGFuZ2VfZnJvbV9iYXNlbGluZQ0KcmVzaWRlbnRhbCA8LSBtb2JpbEpUdXAkcmVzaWRlbnRpYWxfcGVyY2VudF9jaGFuZ2VfZnJvbV9iYXNlbGluZQ0KZGYgPC0gZGF0YS5mcmFtZSh4LCByZXRhaWwsIGdyb2NlcnksIHBhcmssIHN0YXRpb24sIHdvcmtwbGFjZSxyZXNpZGVudGFsICApDQoNCiMgbWVsdCB0aGUgZGF0YSB0byBhIGxvbmcgZm9ybWF0DQpkZjIgPC0gbWVsdChkYXRhID0gZGYsIGlkLnZhcnMgPSAieCIpDQoNCiMgcGxvdCwgdXNpbmcgdGhlIGFlc3RoZXRpY3MgYXJndW1lbnQgJ2NvbG91cicNCmdncGxvdChkYXRhID0gZGYyLCBhZXMoeCA9IHgsIHkgPSB2YWx1ZSwgY29sb3VyID0gdmFyaWFibGUpKSsNCiAgZ2VvbV9wb2ludCgpICsNCiAgZ2VvbV9saW5lKCkgKyANCiAgdGhlbWUobGVnZW5kLmp1c3RpZmljYXRpb24gPSAidG9wIikgKw0KICBsYWJzKHRpdGxlID0gIkdvb2dsZSBNb2JpbGl0eSBJbmRleCIsIA0KICAgICAgICAgc3VidGl0bGUgPSAiUHJvcGluc2kgREtJIEpha2FydGEgSW5kb25lc2lhIDIwMjAiLCANCiAgICAgICAgIHkgPSAiTW9iaWxpdHkiLCB4ID0gIkRhdGUiKSArDQp0aGVtZShheGlzLnRleHQueCA9IGVsZW1lbnRfdGV4dChhbmdsZSA9IC05MCkpDQpgYGANCg0KYGBge3J9DQpkaW0obW9iaWxKVHVwKQ0KYGBgDQoNCg0KIyMgUmVncmFzaSBMaW5pZXIgU2VkZXJoYW5hIChTaW1wbGUgTGluZWFyIFJlZ3Jlc3Npb24pDQoNClBhZGEgcGVtYmFoYXNhbiBwZW1iZW50dWthbiBtb2RlbCBsaW5pZXIgc2VkZXJoYW5hIG1lbmdndW5ha2FuIGRhdGFzZXQgZ29vZ2xlIG1vYmlsaXR5IGluZGV4IGRlbmdhbiBqdW1sYWggb2JzZXJ2YXNpIHNlYmVzYXIgMjkgb2JzZXJ2YXNpLiBQYWRhIGNvbnRvaCBrYWxpIGluaSBraXRhIGFrYW4gbWVuY29iYSBtZW1iZW50dWsgbW9kZWwgZGVuZ2FuIHZhcmlhYmVsIGRlcGVuZGVuIGJlcnVwYSBtZWR2IChtZWRpYW4gaGFyZ2EgcnVtYWgpIGRhbiB2YXJpYWJlbCBpbmRlcGVuZGVuIGJlcnVwYSByZXRhaWxfYW5kX3JlY3JlYXRpb25fcGVyY2VudF9jaGFuZ2VfZnJvbV9iYXNlbGluZSBkZW5nYW4gbW9iaWxKVHVwJGdyb2NlcnlfYW5kX3BoYXJtYWN5X3BlcmNlbnRfY2hhbmdlX2Zyb21fYmFzZWxpbmUuDQpCZXJpa3V0IGFkYWxhaCBzaW50YWtzIHVudHVrIG1lbWJlbnR1ayBtb2RlbCB0ZXJzZWJ1dDoNCg0KYGBge3J9DQpsaWJyYXJ5KE1BU1MpDQpgYGANCg0KYGBge3J9DQpsbS5maXQgPC0gbG0obW9iaWxKVHVwJHJldGFpbF9hbmRfcmVjcmVhdGlvbl9wZXJjZW50X2NoYW5nZV9mcm9tX2Jhc2VsaW5lfm1vYmlsSlR1cCRncm9jZXJ5X2FuZF9waGFybWFjeV9wZXJjZW50X2NoYW5nZV9mcm9tX2Jhc2VsaW5lLCBkYXRhPW1vYmlsSlR1cCkNCmFub3ZhKGxtLmZpdCkNCmBgYA0KDQpgYGB7cn0NCnN1bW1hcnkobG0uZml0KQ0KYGBgDQoNCmBgYHtyfQ0KcGxvdChsbS5maXQpDQpgYGANCg0KYGBge3J9DQojIGVycm9yIGJlcmRpc3RyaWJ1c2kgbm9ybWFsIA0KIyAoZGF0YSB0aWRhayBiZXJkaXN0cmlidXNpIG5vcm1hbCkNCnNoYXBpcm8udGVzdChyZXNpZHVhbHMobG0uZml0KSkNCg0KYGBgDQoNCmBgYHtyfQ0KIyB2YXJpYW5zIGJlcnNpZmF0IGtvbnN0YW4gDQojICh2YXJpYW5zIHRpZGFrIGtvbnN0YW4pDQpsaWJyYXJ5KGxtdGVzdCkNCg0KYGBgDQoNCmBgYHtyfQ0KYnB0ZXN0KGxtLmZpdCkNCmBgYA0KDQoNCmBgYHtyfQ0KIyBlcnJvciBiZXJzaWZhdCBpbmRlcGVuZGVuDQojIChlcnJvciB0aWRhayBiZXJzaWZhdCBpbmRlcGVuZGVuKQ0KZHd0ZXN0KGxtLmZpdCwgYWx0ZXJuYXRpdmUgPSAidHdvLnNpZGVkIikNCmBgYA0KDQpgYGB7cn0NCiMgZGV0ZWtzaSBvdXRsaWVyIChzdGRyZXMgPiAyKQ0Kc3JlcyA8LSByc3RhbmRhcmQobG0uZml0KQ0Kc3Jlc1t3aGljaChhYnMoc3Jlcyk+MildICMgbm9tb3Igb2JzZXJ2YXNpIG91dGxpZXINCg0KYGBgDQoNCmBgYHtyfQ0KIyBpbmZsdWVudGlhbCBvYnNlcnZhdGlvbg0KIyBvYnNlcnZhc2kgPiBwZXJjZW50aWwgNTANCiMgdGlkYWsgYWRhIG9ic2VydmFzaSBkZW5nYW4gamFyYWsgY29vayB5YW5nIGV4dHJpbQ0KY29va3NEIDwtIGNvb2tzLmRpc3RhbmNlKGxtLmZpdCkNCnA1MCA8LSBxZigwLjUsIGRmMT0yLCBkZjI9NTYwLTIpDQphbnkoY29va3NEPnA1MCkNCmBgYA0KDQojIyBSZWZlcmVuc2kNCg0KIGh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vY292aWQxOS9tb2JpbGl0eS8/aGw9aWQNCiANCiBodHRwczovL3JwdWJzLmNvbS9zdWhhcnRvbm8tdWlubWFsaWtpLzg3MDQ3MA==