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

Lembaga : Universitas Islam Negeri Maulana Malik Ibrahim Malang

Jurusan : Teknik Informatika

Pengertian Regresi Linear

Regresi linier merupakan metode yang digunakan dalam memperoleh hubungan antara 1 variable dependen dengan 1 atau lebih variabel independen. Apabila variable idependen yang digunakan hanya satu maka disebut regresi linear sederhana sedangkan apabila lebih dari satu maka disebut regresi linear berganda. Berikut contoh regresi linear berganda pada data Self Isolation Covid-19 & Google Mobility Index pada bulan Mei 2020.

Data Riwayat Covid-19 dan Google Mobility Index di Jakarta pada Bulan Mei 2020

library(readxl)
## Warning: package 'readxl' was built under R version 4.1.3
Data<- read_excel(path = "Data Riwayat Covid-19 & Google Mobility Index Mei 2020.xlsx")
Data
## # A tibble: 31 x 13
##    Tanggal             Nama_provinsi POSITIF Dirawat Sembuh Meninggal
##    <dttm>              <chr>           <dbl>   <dbl>  <dbl>     <dbl>
##  1 2020-05-01 00:00:00 DKI Jakarta      4283    2151    427       393
##  2 2020-05-02 00:00:00 DKI Jakarta      4355    2089    562       400
##  3 2020-05-03 00:00:00 DKI Jakarta      4417    2062    622       410
##  4 2020-05-04 00:00:00 DKI Jakarta      4472    2080    650       412
##  5 2020-05-05 00:00:00 DKI Jakarta      4641    2146    711       414
##  6 2020-05-06 00:00:00 DKI Jakarta      4709    2195    713       420
##  7 2020-05-07 00:00:00 DKI Jakarta      4775    2196    718       430
##  8 2020-05-08 00:00:00 DKI Jakarta      4901    2281    763       431
##  9 2020-05-09 00:00:00 DKI Jakarta      4958    2312    767       437
## 10 2020-05-10 00:00:00 DKI Jakarta      5140    2360    803       444
## # ... with 21 more rows, and 7 more variables: Self_Isolation <dbl>,
## #   retail_and_recreation_percent_change_from_baseline <dbl>,
## #   grocery_and_pharmacy_percent_change_from_baseline <dbl>,
## #   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>
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.1.3
library(reshape2)
## Warning: package 'reshape2' was built under R version 4.1.3
x <- Data$Self_Isolation
retail <- Data$retail_and_recreation_percent_change_from_baseline
grocery <- Data$grocery_and_pharmacy_percent_change_from_baseline
park <- Data$parks_percent_change_from_baseline
station <- Data$transit_stations_percent_change_from_baseline
workplace <- Data$workplaces_percent_change_from_baseline
residental <- Data$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 = "Provinsi DKI Jakarta Indonesia Bulan Mei 2020", 
         y = "Mobility", x = "Data Self_Isolation") +
theme(axis.text.x = element_text(angle = -90))

Regresi Linear Berganda

model <- lm(Data$Self_Isolation~Data$retail_and_recreation_percent_change_from_baseline+Data$grocery_and_pharmacy_percent_change_from_baseline+Data$parks_percent_change_from_baseline+Data$transit_stations_percent_change_from_baseline+Data$workplaces_percent_change_from_baseline+Data$residential_percent_change_from_baseline)
model
## 
## Call:
## lm(formula = Data$Self_Isolation ~ Data$retail_and_recreation_percent_change_from_baseline + 
##     Data$grocery_and_pharmacy_percent_change_from_baseline + 
##     Data$parks_percent_change_from_baseline + Data$transit_stations_percent_change_from_baseline + 
##     Data$workplaces_percent_change_from_baseline + Data$residential_percent_change_from_baseline)
## 
## Coefficients:
##                                             (Intercept)  
##                                               2984.3712  
## Data$retail_and_recreation_percent_change_from_baseline  
##                                                 77.9410  
##  Data$grocery_and_pharmacy_percent_change_from_baseline  
##                                                 -0.7385  
##                 Data$parks_percent_change_from_baseline  
##                                                -13.0861  
##      Data$transit_stations_percent_change_from_baseline  
##                                                -77.4220  
##            Data$workplaces_percent_change_from_baseline  
##                                                -21.9884  
##           Data$residential_percent_change_from_baseline  
##                                               -173.2946

Uji Asumsi Klasik

Uji Normalitas

Uji normalitas dalam contoh regresi dipakai untuk menguji apakah nilai residual yang didapatkan menurut regresi terdistribusi secara normal atau tidak. Model regresi yang baik mempunyai nilai residual yang terdistribusi secara normal. Pada contoh berikut akan dilakukakan uji normalitas menggunakan metode One-sample Kolmogorov-Smirnov

ks.test(model$residuals, ecdf(model$residuals))
## 
##  One-sample Kolmogorov-Smirnov test
## 
## data:  model$residuals
## D = 0.032258, p-value = 1
## alternative hypothesis: two-sided
  • Berdasarkan dasar teori atau syarat dari uji normalitas adalah jika nilai p-value > 0.05 maka data berdistribusi normal. Namun apabila sebaliknya maka data tidak berdstribusi normal. Sehingga dapat disimpulkan bahwa model regresi diatas berdistribusi normal dikarenakan nilai p-value sama dengan 1 dimana > 0.05.

Uji Multikolinearitas

Uji multikolinearitas merupakan pengujian untuk memastikan apakah pada sebuah model regresi terdapat interkorelasi atau kolinearitas antar variabel bebas. Interkorelasi merupakan hubungan yang linear antara satu variabel bebas atau variabel prediktor dengan variabel prediktor lainnya di dalam sebuah model regresi. Interkorelasi itu dapat dilihat dengan nilai koefisien korelasi antara variabel bebas, nilai VIF dan Tolerance, nilai Eigenvalue dan Condition Index, serta nilai standar error koefisien beta atau koefisien regresi parsial. Pada contoh berikut akan dilakukakan uji multikolinearitas dengan menggunakan tolerance dimana pada bahasa program R kita membutuhkan package olsrr.

library(olsrr)
## Warning: package 'olsrr' was built under R version 4.1.3
## 
## Attaching package: 'olsrr'
## The following object is masked from 'package:datasets':
## 
##     rivers
ols_vif_tol(model)
##                                                 Variables Tolerance      VIF
## 1 Data$retail_and_recreation_percent_change_from_baseline 0.2151619 4.647663
## 2  Data$grocery_and_pharmacy_percent_change_from_baseline 0.1903505 5.253467
## 3                 Data$parks_percent_change_from_baseline 0.5952791 1.679884
## 4      Data$transit_stations_percent_change_from_baseline 0.1202990 8.312623
## 5            Data$workplaces_percent_change_from_baseline 0.2211583 4.521648
## 6           Data$residential_percent_change_from_baseline 0.1622959 6.161586
  • Berdasarkan dasar teori uji multikolinearitas jika nilai tolerance > 0.1 dan nilai VIF < 10 maka tidak terjadi gejala multikolinearitas. Sehingga dapat disimpulkan pada regresi diatas tidak terjadi gejala multikolinearitas dikarenakan dari semua variabel independent memiliki nilai tolerance > 0.1 dan nilai VIF < 10.

Uji Autokorelasi

Uji Autokorelasi merupakan pengujian yang dilakukan untuk mengetahui adakah korelasi variabel yang ada di dalam model prediksi dengan perubahan waktu. Oleh karena itu, apabila asumsi autokorelasi terjadi pada sebuah model prediksi, maka nilai disturbance tidak lagi berpasangan secara bebas, melainkan berpasangan secara autokorelasi. Pada contoh berikut akan dilakukakan uji normalitas menggunakan metode Durbin-Watson .

library(lmtest)
## Warning: package 'lmtest' was built under R version 4.1.3
## Loading required package: zoo
## Warning: package 'zoo' was built under R version 4.1.3
## 
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
## 
##     as.Date, as.Date.numeric
library(car)
## Warning: package 'car' was built under R version 4.1.3
## Loading required package: carData
## Warning: package 'carData' was built under R version 4.1.3
dwtest(model)
## 
##  Durbin-Watson test
## 
## data:  model
## DW = 0.86417, p-value = 1.532e-05
## alternative hypothesis: true autocorrelation is greater than 0
  • Berdasarkan dasar teori atau syarat dari uji autokorelasi adalah jika nilai p-value > 0.05 maka tidak terjadi autokorelasi. Namun apabila sebaliknya maka terjadi autokorelasi. Sehingga dapat disimpulkan pada model diatas terdapat gejala autokorelasi.

Uji Homogenitas

Uji homogenitas dimaksudkan untuk memperlihatkan bahwa dua atau lebih kelompok data sampel berasal dari populasi yang memiliki variansi yang sama. Pada contoh berikut akan dilakukakan uji homogenitas menggunakan metode studentized Breusch-Pagan.

bptest(model)
## 
##  studentized Breusch-Pagan test
## 
## data:  model
## BP = 5.9263, df = 6, p-value = 0.4315
  • Berdasarkan dasar teori atau syarat dari uji homogenitas jika nilai p-value > 0.05 maka variansi setiap sampel sama (homogen). Namun apabila sebaliknya nilai p-value< 0.05, maka variansi setiap sampel tidak sama (tidak homogen). Sehingga dapat disimpulkan bahwa data tersebut homogen.

Interpretasi Hasil Regresi Berganda

Dalam menampilkan hasil regresi kita dapat menggunakan fungsi summary.

summary(model)
## 
## Call:
## lm(formula = Data$Self_Isolation ~ Data$retail_and_recreation_percent_change_from_baseline + 
##     Data$grocery_and_pharmacy_percent_change_from_baseline + 
##     Data$parks_percent_change_from_baseline + Data$transit_stations_percent_change_from_baseline + 
##     Data$workplaces_percent_change_from_baseline + Data$residential_percent_change_from_baseline)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -390.54 -129.82  -42.64  104.01  537.78 
## 
## Coefficients:
##                                                          Estimate Std. Error
## (Intercept)                                             2984.3712  1753.5144
## Data$retail_and_recreation_percent_change_from_baseline   77.9410    19.6407
## Data$grocery_and_pharmacy_percent_change_from_baseline    -0.7385    12.6077
## Data$parks_percent_change_from_baseline                  -13.0861     4.3367
## Data$transit_stations_percent_change_from_baseline       -77.4220    33.3912
## Data$workplaces_percent_change_from_baseline             -21.9884     7.5879
## Data$residential_percent_change_from_baseline           -173.2946    29.2032
##                                                         t value Pr(>|t|)    
## (Intercept)                                               1.702 0.101688    
## Data$retail_and_recreation_percent_change_from_baseline   3.968 0.000571 ***
## Data$grocery_and_pharmacy_percent_change_from_baseline   -0.059 0.953774    
## Data$parks_percent_change_from_baseline                  -3.018 0.005953 ** 
## Data$transit_stations_percent_change_from_baseline       -2.319 0.029252 *  
## Data$workplaces_percent_change_from_baseline             -2.898 0.007900 ** 
## Data$residential_percent_change_from_baseline            -5.934 4.01e-06 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 261.3 on 24 degrees of freedom
## Multiple R-squared:  0.7867, Adjusted R-squared:  0.7334 
## F-statistic: 14.76 on 6 and 24 DF,  p-value: 5.196e-07

Plot Hasil Regresi Berganda

Plot Pengaruh Variable Retail and Recreation Percent Change From Baseline terhadap Variable Self Isolation

plot(Data$retail_and_recreation_percent_change_from_baseline, Data$Self_Isolation, col = "dodgerblue")

Plot Pengaruh Variable Grocery and Pharmacy Percent Change From Baseline terhadap Variable Self Isolation

plot(Data$grocery_and_pharmacy_percent_change_from_baseline, Data$Self_Isolation, col = "red")

Plot Pengaruh Variable Parks Percent Change From Baseline terhadap Variable Self Isolation

plot(Data$parks_percent_change_from_baseline, Data$Self_Isolation, col = "darkorange")

Plot Pengaruh Variable Stations Percent Change From Baseline terhadap Variable Self Isolation

plot(Data$transit_stations_percent_change_from_baseline, Data$Self_Isolation, col = "darkgreen")

Plot Pengaruh Variable Workplaces Percent Change From Baseline terhadap Variable Self Isolation

plot(Data$workplaces_percent_change_from_baseline, Data$Self_Isolation, col = "blueviolet")

Plot Pengaruh Variable Residential Percent Change From Baseline terhadap Variable Self Isolation

plot(Data$residential_percent_change_from_baseline, Data$Self_Isolation, col = "darkcyan")

Plot Hasil Regresi Linear Berganda

plot(model)

Refrensi

https://bookdown.org/moh_rosidi2610/Metode_Numerik/datamod.html#reglin

https://rpubs.com/suhartono-uinmaliki/861286

https://duwiconsultant.blogspot.com/2011/11/uji-normalitas-regresi.html

https://www.statistikian.com/2016/11/uji-multikolinearitas.html

https://www.statistikian.com/2017/01/uji-autokorelasi-durbin-watson-spss.html

https://belalangtue.wordpress.com/2010/08/05/uji-homogenitas-dengan-spss/