Loading Required R Packages

library(tidyverse)
library(broom)
library(MASS)
library(dgof)
library(car)
library(lmtest)
library(caret)
library(mctest)

Input Dataset

Unduh dataset di sini.

mydata = read.table("path_to_file", header = TRUE, sep = " ")
head(mydata)
##    x  y
## 1  3  5
## 2  7 11
## 3 11 21
## 4 15 16
## 5 18 16
## 6 27 28

Membangun Model Regresi

# building a regression model
model <- lm(y ~ x, data = mydata)
summary(model)
## 
## Call:
## lm(formula = y ~ x, data = mydata)
## 
## Residuals:
##    Min     1Q Median     3Q    Max 
## -5.939 -1.783 -0.228  1.506  8.157 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  3.82963    1.76845   2.166   0.0382 *  
## x            0.90364    0.05012  18.030   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 3.23 on 31 degrees of freedom
## Multiple R-squared:  0.9129, Adjusted R-squared:  0.9101 
## F-statistic: 325.1 on 1 and 31 DF,  p-value: < 2.2e-16
model.diag.metrics <- augment(model)
head(model.diag.metrics)
## # A tibble: 6 × 8
##       y     x .fitted .resid   .hat .sigma  .cooksd .std.resid
##   <int> <int>   <dbl>  <dbl>  <dbl>  <dbl>    <dbl>      <dbl>
## 1     5     3    6.54 -1.54  0.254    3.27 0.0518      -0.552 
## 2    11     7   10.2   0.845 0.199    3.28 0.0106       0.292 
## 3    21    11   13.8   7.23  0.152    2.95 0.528        2.43  
## 4    16    15   17.4  -1.38  0.112    3.27 0.0131      -0.455 
## 5    16    18   20.1  -4.10  0.0878   3.19 0.0849      -1.33  
## 6    28    27   28.2  -0.228 0.0403   3.28 0.000109    -0.0721

Asumsi Linearitas Data

Asumsi linearitas dapat diperiksa dengan memperhatikan Residuals vs Fitted plot.

# Linearity of the data
plot(model, 1)

Idealnya, plot residual tidak menunjukkan pola yang sesuai. Artinya, garis merah harus kira-kira horizontal di nol. Adanya pola dapat menunjukkan adanya masalah dengan beberapa aspek model linier. Dalam contoh ini, tidak tredapat pola pada plot residual. Ini menunjukkan bahwa kita dapat mengasumsikan adanya hubungan linier antara variabel independen dan variabel dependen.

Asumsi Normalitas Residual

Q-Q Plot

Q-Q Plot untuk residual dapat digunakan untuk memeriksa asumsi normalitas secara visual. Plot probabilitas normal dari residual harus kurang lebih mengikuti garis lurus.

# Normality of residuals
plot(model, 2)

Dalam contoh ini, semua titik jatuh kira-kira di sepanjang garis regerensi ini, sehingga kita dapat mengasumsikan normalitas pada residual.

Uji Shapiro-Wilk

Uji Shapiro-Wilk merupakan metode untuk menguji normalitas untuk data berukuran kecil (kurang dari 30 atau kurang dari 50).

standardized_res = model.diag.metrics$.std.resid
shapiro.test(standardized_res)
## 
##  Shapiro-Wilk normality test
## 
## data:  standardized_res
## W = 0.9465, p-value = 0.1051

Dari hasil tersebut diperoleh p-value = 0.1051 > 0.05. Dengan demikian, dapat disimpulkan bahwa residual berdistribusi normal.

Uji Kolmogorov-Smirnov

Uji Kolmogorov-Smirnov merupakan metode untuk menguji normalitas untuk data berukuran kecil (lebih dari 30 atau lebih dari 50).

ks.test(standardized_res, "pnorm")
## 
##  One-sample Kolmogorov-Smirnov test
## 
## data:  standardized_res
## D = 0.11726, p-value = 0.711
## alternative hypothesis: two-sided

Dari hasil tersebut diperoleh p-value = 0.711 > 0.05. Dengan demikian, dapat disimpulkan bahwa residual berdistribusi normal.

Asumsi Homoskdastisitas

Plot Scale-location

Homoskedastisitas adalah kondisi di mana terdapat varians yang sama dari setiap residualnya. Untuk melakukan anaisis regresi, asumai homoskedastisitas harus terpenuhi. Kebalikan dari homoskedastisitas adalah heteroskedastisitas. Heteroskedastisitas berarti kondisi di mana varians dari setiap residualnya tidak sama. Asumsi homoskedastisitas dapat diperiksa dengan memperhatikan plot Scale-location, yang disebut juga plot spread-location.

plot(model, 3)

Plot ini menunjukkan bahwa residu tersebar merata di sepanjang rentang prediktor. Garis horizontal sebaiknya terlihat dengan titik sebaran yang sama. Dalam contoh ini, terlihat bahwa garis horizontal disertai titik-titik sebaran yang sama. Sehingga, kita dapat mengasumsikan homogenitas variansi.

ncvTest() Untuk Uji Homoskedastisitas

# non-constant error variance test
ncvTest(model)
## Non-constant Variance Score Test 
## Variance formula: ~ fitted.values 
## Chisquare = 1.446157, Df = 1, p = 0.22915

Dari hasil tersebut, diperoleh p = 0.22915 > 0.05, menunjukkan bahwa data dalam kondisi homoskedastisitas. Dengan demikian, asumsi homoskedastisitas terpenuhi.

Uji Breusch-Pagan Untuk Homoskedastisitas

bptest(model)
## 
##  studentized Breusch-Pagan test
## 
## data:  model
## BP = 1.0853, df = 1, p-value = 0.2975

Dari hasil tersebut, diperoleh p-value = 0.2975 > 0.05, menunjukkan bahwa data dalam kondisi homoskedastisitas. Dengan demikian, asumsi homoskedastisitas terpenuhi.

Asumsi Independensi (Tidak Autokorelasi)

Uji Durbin Watson

Autokorelasi dikenal sebagai korelasi serial, maksudnya adalah korelasi antara serial data atau antara data sebelum dengan data sesudahnya dalam data yang disusun berdasarkan urutan waktu ( time series ). Dengan demikian, dapat dipahami bahwa asumsi autokorelasi digunakan untuk data runtun waktu (time series). Analisis regresi dapat dilakukan jika tidak terdapat autokorelasi pada data.

Untuk menguji asumsi autokorelasi, dapat digunakan metode Durbin Watson. Durbin Watson menguji apakah error memiliki kondisi autokorelasi dengan dirinya sendiri. Hipotesis nol menyatakan bahwa error tidak ber-autokorelasi (kondisi ini yang diharapkan). Uji Durbin Watson ini bisa sangat berguna saat melakukan regresi berganda (untuk data time series). Misalnya, uji ini dapat menunjukkan apakah residu pada titik waktu 1 berkorelasi dengan residu pada titik waktu 2 (seharusnya tidak demikian). Dengan kata lain, pengujian ini berguna untuk memverifikasi bahwa asumsi independensi terpenuhi (tidak dilanggar).

# durbin watson test

durbinWatsonTest(model)
##  lag Autocorrelation D-W Statistic p-value
##    1      -0.1870909      2.354616   0.408
##  Alternative hypothesis: rho != 0

Dari hasil tersebut diperoleh p-value = 0.338 > 0.05, menunjukkan bahwa tidak terdapat autokorelasi pada error. Dengan demikian, asumsi independensi terpenuhi.

Sumber

1. Linear Regression Assumptions and Diagnostics in R
2. Kolmogorov-Smirnov Test in R (With Examples)
3. Linear Regression Assumptions and Diagnostics in R: Essentials