TUGAS INDIVIDU 1 MPDW

Data dan Packages

Memanggil packages

Diperlukan beberapa packages sebelum melakukan analisis dan eksplorasi regresi data time series, packages yang digunakan yaitu:

tidyverse

readxl

forecast

TTR

forecast

TTR

tseries

lmtest

orcutt

HoRM

library(dplyr)
library(readxl)
library(forecast)
library(TTR)
library(tseries)
library(lmtest) 
library(orcutt) 
library(HoRM)

Import Data IPM Bengkulu Tahun 2010-2021

tugas_mpdw1 <- read_xlsx("D:/FILE KULIAH SEMESTER 5/MINGGU 3/MPDW (P)/Tugas Individu MPDW.xlsx", sheet=2)
head(tugas_mpdw1)
## # A tibble: 6 x 2
##   Tahun   IPM
##   <dbl> <dbl>
## 1  2010  65.4
## 2  2011  66.0
## 3  2012  66.6
## 4  2013  67.5
## 5  2014  68.1
## 6  2015  68.6

Indeks Pembangunan Manusia

Indeks Pembangunan Manusia (IPM) merupakan pengukuran perbandingan dari harapan hidup, pendidikan, dan standar hidup untuk semua negara. IPM digunakan sebagai indikator untuk menilai aspek kualitas dari pembangunan dan untuk mengklasifikasikan apakah sebuah negara termasuk negara maju, negara berkembang, atau negara terbelakang dan juga untuk mengukur pengaruh dari kebijakan ekonomi terhadap kualitas hidup. (Direktorat Analisis dan Pengembangan Statistik BPS, 2015)

Autokorelasi

Autokorelasi dapat didefinisikan sebagai korelasi di antara nilainilai pengamatan yang terurut dalam waktu (time series data) atau nilai-nilai yang terurut dalam ruang (cross-sectional data). Uji autokorelasi bertujuan untuk mendeteksi tingkat keeratan suatu hubungan, asumsi ini dedefinisikan sebagai terjadinya korelasi diantara dua pengamatan, dimana munculnya suatu data dipengaruhi oleh data sebelumnya.

Eksplorasi Data

Plot Time Series

library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.1.3
tugas_mpdw1%>%
  ggplot(aes(x=Tahun, y=`IPM`))+
  geom_line(color="blue")+
  geom_point()+
  geom_text(aes(label=paste(IPM)),vjust=+1.5,size=3)+
  ggtitle("Nilai IPM Bengkulu Tahun 2010-2021")

Line plot di atas menunjukkan bahwa IPM di Bengkulu selalu meningkat secara konstat setiap tahunnya, tanpa adanya penurunan IPM. Jadi bisa dikatakan time series data IPM Bengkulu berpola trend, yaitu linear positif. Rata-rata peningkatan IPM Bengkulu dari 2010-2021 sebesar 0,572. Peningkatan terbesar terjadi pada tahun 2013, IPM naik 1,35% dibandingkan tahun 2012.

Model Regresi

regipm <- lm(IPM ~ Tahun, data=tugas_mpdw1)
summary(regipm)
## 
## Call:
## lm(formula = IPM ~ Tahun, data = tugas_mpdw1)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.52987 -0.17010  0.07467  0.17941  0.27915 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -1.147e+03  4.254e+01  -26.95 1.14e-10 ***
## Tahun        6.030e-01  2.111e-02   28.57 6.43e-11 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.2524 on 10 degrees of freedom
## Multiple R-squared:  0.9879, Adjusted R-squared:  0.9867 
## F-statistic: 816.1 on 1 and 10 DF,  p-value: 6.43e-11

dari summary di atas diperoleh model regresi data time series yaitu IPM = -1.147e+03 + 6.030e-01(Tahun).

Deteksi Autokolerasi

Residual Plot

residual <- residuals(regipm)
fit <- predict(regipm)

#Diagnostik dengan eksploratif
par(mfrow = c(2,2))

qqnorm(residual)
qqline(residual, col = "steelblue", lwd = 2)

plot(fit, residual, col = "steelblue", pch = 20, xlab = "Sisaan", 
     ylab = "Fitted Values", main = "Sisaan vs Fitted Values")
abline(a = 0, b = 0, lwd = 2)

hist(residual, col = "steelblue")

plot(seq(1,12,1), residual, col = "steelblue", pch = 20, 
     xlab = "Sisaan", ylab = "Order", main = "Sisaan vs Order")
lines(seq(1,12,1), residual, col = "red")
abline(a = 0, b = 0, lwd = 2)

Dilihat dari plot Sisaan cs Order dan plot Sisaan vs Fitted Values sisaan membentuk pola tertentu, jadi secara eksploratif dinyatakan bahwa terdapat autokorelasi pada data IPM Bengkulu.

ACF dan PACF Plot

par(mfrow = c(1,2))
acf(residual)
pacf(residual)

Jika dilihat pada plot ACF dan PACF-nya, terlihat bahwa data masih berada di antara batas autokorelasi, sehingga berdasarkan grafik tersebut tidak terdapat adanya autokorelasi yang terjadi pada data IPM Bengkulu. Untuk memastikannya, maka dapat dilakukan pengujian menggunakan Uji Durbin-Watson dll.

Uji Durbin-Watson

H0: tidak ada autokorelasi H1: ada autokorelasi

dwtest(regipm)
## 
##  Durbin-Watson test
## 
## data:  regipm
## DW = 0.66209, p-value = 0.0004334
## alternative hypothesis: true autocorrelation is greater than 0

Berdasarkan output di atas diperoleh nilai p-value < alpha 5% artinya tolak H0, sehingga cukup bukti untuk menyatakan bahwa terdapat autokorelasi (positif) pada taraf 5% pada data IPM Bengkulu. Jika dilihat dari DW = 0.662 nilainya terletak dalam rentang 0 sampai dL = 0.9708, artinya terdapat autokorelasi POSITIF pada data.

Uji Rand-Test

library(randtests)
## Warning: package 'randtests' was built under R version 4.1.3
## 
## Attaching package: 'randtests'
## The following object is masked from 'package:tseries':
## 
##     runs.test
runs.test(regipm$residuals)
## 
##  Runs Test
## 
## data:  regipm$residuals
## statistic = -1.2111, runs = 5, n1 = 6, n2 = 6, n = 12, p-value = 0.2259
## alternative hypothesis: nonrandomness

Uji Breusch-Godfrey Test

H0: tidak ada autokorelasi H1: ada autokorelasi

lmtest::bgtest(IPM ~ Tahun, data=tugas_mpdw1, order=1)
## 
##  Breusch-Godfrey test for serial correlation of order up to 1
## 
## data:  IPM ~ Tahun
## LM test = 5.4261, df = 1, p-value = 0.01984

Karena pada Uji BG-test dan DW-test keduanya tolak H0 artinya terdapat autokorelasi pada data IPM Bengkulu. Karena adanya autokorelasi maka problem tersebut perlu dilakukan penanganan.

Penanganan Autokorelasi

Cochrane-Orcutt

modelreg <- cochrane.orcutt(regipm, convergence=4, max.iter = 1000)
modelreg
## Cochrane-orcutt estimation for first order autocorrelation 
##  
## Call:
## lm(formula = IPM ~ Tahun, data = tugas_mpdw1)
## 
##  number of interaction: 202
##  rho 0.933052
## 
## Durbin-Watson statistic 
## (original):    0.66209 , p-value: 4.334e-04
## (transformed): 1.44844 , p-value: 8.132e-02
##  
##  coefficients: 
## (Intercept)       Tahun 
##   -20.31582     0.04801

Model Hasil Transformasi

summary(modelreg)
## Call:
## lm(formula = IPM ~ Tahun, data = tugas_mpdw1)
## 
##              Estimate Std. Error t value Pr(>|t|)
## (Intercept) -20.31582  483.00348  -0.042   0.9674
## Tahun         0.04801    0.23794   0.202   0.8446
## 
## Residual standard error: 0.1671 on 9 degrees of freedom
## Multiple R-squared:  0.0045 ,  Adjusted R-squared:  -0.1061
## F-statistic: 0 on 1 and 9 DF,  p-value: < 8.446e-01
## 
## Durbin-Watson statistic 
## (original):    0.66209 , p-value: 4.334e-04
## (transformed): 1.44844 , p-value: 8.132e-02
x <- tugas_mpdw1$Tahun
y <- tugas_mpdw1$IPM
(y.trans <- y[-1]-y[-12]*modelreg$rho)
##  [1] 4.985055 5.065893 5.349409 5.078993 5.086484 5.331966 5.261508 5.373016
##  [9] 5.299210 4.957370 5.020090
(x.trans <- x[-1]-x[-12]*modelreg$rho)
##  [1] 135.5656 135.6325 135.6995 135.7664 135.8334 135.9003 135.9673 136.0342
##  [9] 136.1012 136.1681 136.2350
modelco <- lm(y.trans~x.trans)
summary(modelco) 
## 
## Call:
## lm(formula = y.trans ~ x.trans)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.21994 -0.12307 -0.07476  0.14631  0.20213 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)
## (Intercept) -1.36010   32.33614  -0.042    0.967
## x.trans      0.04801    0.23794   0.202    0.845
## 
## Residual standard error: 0.1671 on 9 degrees of freedom
## Multiple R-squared:  0.004503,   Adjusted R-squared:  -0.1061 
## F-statistic: 0.04071 on 1 and 9 DF,  p-value: 0.8446

Model terkoreksi yang diperoleh dengan menggunakan metode Cochrane-Orcutt adalah yi=-1.36010+0.04801x

Uji Autokorelasi Model Transformasi

dwtest(modelco, alternative = 'two.sided')
## 
##  Durbin-Watson test
## 
## data:  modelco
## DW = 1.4484, p-value = 0.1626
## alternative hypothesis: true autocorrelation is not 0

H0: tidak ada autokorelasi H1: ada autokorelasi

Terlihat bahwa terjadi perubahan pula pada nilai Uji Durbin-Watson menjadi yang sebelumnya 0.66209 menjadi 1.4484, artinya nilai tersebut lebih besar dari 0.05. Sehingga Tak Tolak H0 atau cukup bukti untuk mengatakan bahwa pada model tersebut tidak terdapat autokorelasi pada taraf nyata 5%. Jika dilihat dari nilai DW baru maka nilai tersebut berada pada rentang dU < 1.4484 < 4-dU artinya tidak ada autokorelasi. Nilai rho optimum yang digunakan pada model tersebut adalah sebesar 0.933052.

Metode Hildreth-Lu

hildreth.lu.func<- function(r, model){
  x <- model.matrix(model)[,-1]
  y <- model.response(model.frame(model))
  n <- length(y)
  t <- 2:n
  y <- y[t]-r*y[t-1]
  x <- x[t]-r*x[t-1]
  
  return(lm(y~x))
}

mencari rho yang meminimumkan SSE

r <- c(seq(0.1,0.8, by= 0.1), seq(0.9,0.99, by= 0.01))
tab <- data.frame("rho" = r, "SSE" = sapply(r, function(i){deviance(hildreth.lu.func(i, regipm))}))
round(tab, 4)
##     rho    SSE
## 1  0.10 0.5317
## 2  0.20 0.4805
## 3  0.30 0.4341
## 4  0.40 0.3925
## 5  0.50 0.3556
## 6  0.60 0.3236
## 7  0.70 0.2963
## 8  0.80 0.2738
## 9  0.90 0.2560
## 10 0.91 0.2545
## 11 0.92 0.2531
## 12 0.93 0.2516
## 13 0.94 0.2503
## 14 0.95 0.2490
## 15 0.96 0.2477
## 16 0.97 0.2465
## 17 0.98 0.2453
## 18 0.99 0.2442

Didapatkan hasil ρ optimum sebesar 0.99 dan berikut adalah plot antara nilai ρ dengan SSE-nya.

plot(tab$SSE ~ tab$rho , type = "l", xlab = "Nilai rho", ylab = "SSE", 
     main = "Plot Rho vs SSE Metode Hildreth-Lu", lwd = 1.5)
abline(v = tab[tab$SSE==min(tab$SSE),"rho"], lty = 3)

Model Hildreth-Lu

modelhild <- hildreth.lu.func(0.99, regipm)
summary(modelhild)
## 
## Call:
## lm(formula = y ~ x)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.22463 -0.11416 -0.07931  0.14249  0.19997 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)  
## (Intercept)   70.570     33.214   2.125   0.0626 .
## x             -3.277      1.570  -2.087   0.0665 .
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.1647 on 9 degrees of freedom
## Multiple R-squared:  0.3261, Adjusted R-squared:  0.2512 
## F-statistic: 4.355 on 1 and 9 DF,  p-value: 0.06652

Pengecekan kembali autokorelasi dengan menggunakan Uji Durbin-Watson terkait dengan model optimum yang telah diperoleh sebelumnya menggunakan metode Hildreth-Lu adalah seperti dibawah ini.

Uji Autokorelasi Model Transformasi

dwtest(modelhild, alternative = 'two.sided')
## 
##  Durbin-Watson test
## 
## data:  modelhild
## DW = 1.546, p-value = 0.226
## alternative hypothesis: true autocorrelation is not 0

H0: tidak ada autokorelasi H1: ada autokorelasi

Terlihat bahwa terjadi perubahan pula pada nilai Uji Durbin-Watson menjadi yang sebelumnya 0.66209 menjadi 1.546, dan p-valuenya lebih besar dari 0.05. Sehingga Tak Tolak H0 atau cukup bukti untuk mengatakan bahwa pada model tersebut tidak terdapat autokorelasi pada taraf nyata 5%. Jika dilihat dari nilai DW baru maka nilai tersebut berada pada rentang dU < 1.546 < 4-dU artinya tidak ada autokorelasi. Nilai rho optimum yang digunakan pada model tersebut adalah sebesar 0.99.

Transformasi Balik

cat("y = ", coef(modelhild)[1]/(1-0.99), "+", coef(modelhild)[2],"x", sep = "")
## y = 7057.021+-3.277182x

Simpulan

Data IPM Provinsi Bengkulu tahun 2010 - 2021 jika dianalisis melalui diagnostik dengan eksploratif dan Uji Durbin-Watson, Uji Breusch-Godfrey Test dan Uji Run’s Test, model regresinya terdapat autokorelasi. Untuk melakukan penanganan autokorelasi tersebut, dapat dilakukan dengan menggunakan Metode Cochrane-Orcutt dan Metode Hildreth-Lu. Setelah dilakukan penanganan, kedua metode tersebut berhasil menangani masalah autokorelasi pada data.