Lembaga : Universitas Islam Negeri Maulana Malik Ibrahim Malang

Fakultas : Sains dan Teknologi

Program Studi : Teknik Informatika

Mata Kuliah : Linear Algebra (b)

0.1 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

0.2 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==