Dosen Pengampu : Prof. Dr. Suhartono, M.Kom

Mata Kuliah : Linier Algebra

Prodi : Teknik Informatika

Lembaga : Universitas Islam Negeri Maulana Malik Ibrahim Malang

0.1 Model Linier Dengan Interaksi Antar Variabel Prediktor Interaksi Antar Variabel

Pada model linier dapat dengan mudah dimasukkan kedalam fungsi lm(). Terdapat dua buah cara untuk melakukannya. Cara pertama dengan menggunakan tanda : pada formula ( contoh: y1 x1 + x2 + x1:x2 ). Tanda : menyatakan formula persamaan linier memasukkan interaksi antar variabel prediktor di dalamnya. Cara kedua adalah dengan menggunakan tanda *. Cara ini lebih sederhana, dimana fungsi lm() akan secara otomatis menerjemahkannya sebagai serangkaian variabel tunggal dan interaksinya. Berikut adalah contoh penerapannya menggunakan kedua cara tersebut:

library(readr)
X2020_ID_Region_Mobility_Report <- read_csv("2020_ID_Region_Mobility_Report.csv")
## Rows: 11235 Columns: 15
## -- Column specification --------------------------------------------------------
## Delimiter: ","
## chr  (5): country_region_code, country_region, sub_region_1, iso_3166_2_code...
## dbl  (6): retail_and_recreation_percent_change_from_baseline, grocery_and_ph...
## lgl  (3): sub_region_2, metro_area, census_fips_code
## date (1): date
## 
## i Use `spec()` to retrieve the full column specification for this data.
## i Specify the column types or set `show_col_types = FALSE` to quiet this message.
X2020_ID_Region_Mobility_Report
library(tidyverse)
## -- Attaching packages --------------------------------------- tidyverse 1.3.1 --
## v ggplot2 3.3.5     v dplyr   1.0.8
## v tibble  3.1.6     v stringr 1.4.0
## v tidyr   1.2.0     v forcats 0.5.1
## v purrr   0.3.4
## -- Conflicts ------------------------------------------ tidyverse_conflicts() --
## x dplyr::filter() masks stats::filter()
## x dplyr::lag()    masks stats::lag()
mobilJK <- X2020_ID_Region_Mobility_Report %>%
       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)
## Warning: package 'reshape2' was built under R version 4.1.3
## 
## Attaching package: 'reshape2'
## The following object is masked from 'package:tidyr':
## 
##     smiths
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
# cara 1
lm.inter <- lm(retail_and_recreation_percent_change_from_baseline~grocery_and_pharmacy_percent_change_from_baseline+parks_percent_change_from_baseline+grocery_and_pharmacy_percent_change_from_baseline:parks_percent_change_from_baseline, data=mobilJTup)
anova(lm.inter)
summary(lm.inter)
## 
## Call:
## lm(formula = retail_and_recreation_percent_change_from_baseline ~ 
##     grocery_and_pharmacy_percent_change_from_baseline + parks_percent_change_from_baseline + 
##         grocery_and_pharmacy_percent_change_from_baseline:parks_percent_change_from_baseline, 
##     data = mobilJTup)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.5336 -0.6497  0.4277  0.7500  2.4945 
## 
## Coefficients:
##                                                                                       Estimate
## (Intercept)                                                                          -18.26069
## grocery_and_pharmacy_percent_change_from_baseline                                      0.54858
## parks_percent_change_from_baseline                                                     0.08411
## grocery_and_pharmacy_percent_change_from_baseline:parks_percent_change_from_baseline  -0.00403
##                                                                                      Std. Error
## (Intercept)                                                                             5.71701
## grocery_and_pharmacy_percent_change_from_baseline                                       0.56427
## parks_percent_change_from_baseline                                                      0.12472
## grocery_and_pharmacy_percent_change_from_baseline:parks_percent_change_from_baseline    0.01196
##                                                                                      t value
## (Intercept)                                                                           -3.194
## grocery_and_pharmacy_percent_change_from_baseline                                      0.972
## parks_percent_change_from_baseline                                                     0.674
## grocery_and_pharmacy_percent_change_from_baseline:parks_percent_change_from_baseline  -0.337
##                                                                                      Pr(>|t|)
## (Intercept)                                                                           0.00377
## grocery_and_pharmacy_percent_change_from_baseline                                     0.34027
## parks_percent_change_from_baseline                                                    0.50625
## grocery_and_pharmacy_percent_change_from_baseline:parks_percent_change_from_baseline  0.73908
##                                                                                        
## (Intercept)                                                                          **
## grocery_and_pharmacy_percent_change_from_baseline                                      
## parks_percent_change_from_baseline                                                     
## grocery_and_pharmacy_percent_change_from_baseline:parks_percent_change_from_baseline   
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.265 on 25 degrees of freedom
## Multiple R-squared:  0.888,  Adjusted R-squared:  0.8746 
## F-statistic: 66.07 on 3 and 25 DF,  p-value: 5.075e-12
plot(lm.inter)