knitr::opts_chunk$set(echo = TRUE)

Package

library("TTR")
library("TSA")
## 
## Attaching package: 'TSA'
## The following objects are masked from 'package:stats':
## 
##     acf, arima
## The following object is masked from 'package:utils':
## 
##     tar
library("graphics")
library("forecast")
## Registered S3 method overwritten by 'quantmod':
##   method            from
##   as.zoo.data.frame zoo
## Registered S3 methods overwritten by 'forecast':
##   method       from
##   fitted.Arima TSA 
##   plot.Arima   TSA
library("tseries")

Nomor 1

Bangkitkan data Yt (n=200) berupa model ARIMA (0,2,2) dengan \(\mu=0.25\), \(\theta_1=0.60\), \(\theta_2=-0.75\), dan \(e_t\)~\(N(0,1)\). Gunakan 175 data terakhir. Berikut adalah persamaannya \(y_t=\mu+2y_{t-1}-y_{t-2}+e_t-\theta_1e_{t-1}-\theta_2e_{t-2}\)

set.seed(7) 
e<-rnorm(200,0,1)
n<-length(e) 
mu<-0.25 
tetha1<-0.6 
tetha2<--0.75
y<-c(1:n) 
for (i in 3:n)
{y[i]<-mu+(2*y[i-1])-y[i-2]+e[i]-tetha1*e[i-1]-tetha2*e[i-2]}  
y<-y[-c(1:25)]
head(y)
## [1] 248.1450 269.8439 292.0713 313.7748 336.4859 358.0045

Buat plot, correlogram dan uji ADF apakah dapat diidentifikasi ketidakstasioneran data.

#berdasarkan plot data tidak stasioner
plot.ts(y,lty=1,ylab=expression(Y[t]))

#berdasarkan plot ACF teridentifikasi data tidak stasioner
acf(y,lag.max = 20)

#ujiADF menghasilkan terima H0 (pvalue>0.05) artinya data tidak stasioner
adf.test(y,alternative=c("stationary"),k=trunc((length(y)-1)^(1/3)))
## Warning in adf.test(y, alternative = c("stationary"), k = trunc((length(y) - :
## p-value greater than printed p-value
## 
##  Augmented Dickey-Fuller Test
## 
## data:  y
## Dickey-Fuller = 1.2146, Lag order = 5, p-value = 0.99
## alternative hypothesis: stationary

Data tidak stasioner kemudian diterapkan proses pembedaan 1.

#berdasarkan plot dif 1 data tidak stasioner
y.dif1<-diff(y,differences = 1) 
plot.ts(y.dif1,lty=1)

#berdasarkan plot ACF dif1 teridentifikasi data tidak stasioner
acf(y.dif1,lag.max = 20) 

#ujiADF menghasilkan terima H0 (pvalue>0.05) artinya data tidak stasioner
adf.test(y.dif1,alternative=c("stationary"),k=trunc((length(y)-1)^(1/3)))
## 
##  Augmented Dickey-Fuller Test
## 
## data:  y.dif1
## Dickey-Fuller = -3.3555, Lag order = 5, p-value = 0.06413
## alternative hypothesis: stationary

Data tidak stasioner kemudian diterapkan proses pembedaan 2.

#berdasarkan plot data telah stasioner
y.dif2_1<-diff(y,differences = 2)
plot.ts(y.dif2_1,lty=1)

#berdasarkan plot ACF dif2 teridentifikasi data telah stasioner
acf(y.dif2_1,lag.max = 20) 

#ujiADF  menghasilkan tolak H0 (pvalue<0.05) artinya data stasioner
adf.test(y.dif2_1,alternative=c("stationary"),k=trunc((length(y)-1)^(1/3)))
## Warning in adf.test(y.dif2_1, alternative = c("stationary"), k =
## trunc((length(y) - : p-value smaller than printed p-value
## 
##  Augmented Dickey-Fuller Test
## 
## data:  y.dif2_1
## Dickey-Fuller = -6.1595, Lag order = 5, p-value = 0.01
## alternative hypothesis: stationary

Dengan demikian, berdasarkan plot acf untuk data telah stasioner pada d=2 dan diperoleh nilai q=2.

Nomor 2

Bangkitkan data Yt (n=200) berupa model ARIMA (2,2,2) dengan \(\mu=0.15\),\(\phi_1=0.55\), \(\phi_2=0.80\),\(\theta_1=0.35\), \(\theta_2=0.70\) dan \(e_t\)~\(N(0,1)\). Gunakan 175 data terakhir. Berikut \(y_t=\mu+(2+\phi_1)y_{t-1}-(1+2\phi_1-\phi_2)y_{t-2}-(-\phi_1+2\phi_2)y_{t-3}+(\phi_2)y_{t-4}+e_t\) \(-\theta_1e_{t-1}-\theta_2e_{t-2}\)

set.seed(7) 
e<-rnorm(200,0,1) 
n<-length(e) 
mu<-0.15
phi1<-0.55
phi2<--0.80 
tetha1<--0.35
tetha2<-0.70 
x<-c(1:n) 
for (i in 5:n)
{x[i]<-mu+((2+phi1)*x[i-1])+((phi2-2*phi1-1)*x[i-2])+(phi1-2*phi2)*x[i-3]+phi2*x[i-4]+e[i]-tetha1*e[i-1]-tetha2*e[i-2]} 
x<-x[-c(1:25)] 
head(x)
## [1] 151.2902 164.6930 177.6137 187.6037 195.4832 204.4171

Buat plot, correlogram dan uji ADF apakah dapat diidentifikasi ketidakstasioneran data.

#berdasarkan plot data tidak stasioner
plot.ts(x,lty=1,ylab=expression(X[t]))

#berdasarkan plot ACF data tidak stasioner
acf(x,lag.max = 20)

#UjiADF menghasilkan terima H0 (pvalue>0.05) artinya data tidak stasioner
adf.test(x,alternative=c("stationary"),k=trunc((length(x)-1)^(1/3)))
## Warning in adf.test(x, alternative = c("stationary"), k = trunc((length(x) - :
## p-value greater than printed p-value
## 
##  Augmented Dickey-Fuller Test
## 
## data:  x
## Dickey-Fuller = 0.1641, Lag order = 5, p-value = 0.99
## alternative hypothesis: stationary

Data tidak stasioner kemudian diterapkan proses pembedaan 1.

#berdasarkan plot dif 1 data tidak stasioner
x.dif1<-diff(x,differences = 1)
plot.ts(x.dif1,lty=1)

#berdasarkan plot ACF data tidak stasioner
acf(x.dif1,lag.max = 20)

#install.packages("urca")
library(urca)
#UjiADF, Nilai mutlak statistik ADF < mutlak nilai kritis 5pct maka data tidak stasioner pada level
d<-ur.df(x.dif1, type = c("none", "drift", "trend"), lags = 1,
      selectlags = c("Fixed", "AIC", "BIC")) 
summary(d)
## 
## ############################################### 
## # Augmented Dickey-Fuller Test Unit Root Test # 
## ############################################### 
## 
## Test regression none 
## 
## 
## Call:
## lm(formula = z.diff ~ z.lag.1 - 1 + z.diff.lag)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -6.3620 -1.7659  0.2455  1.8836  7.8808 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## z.lag.1    -0.004114   0.007919  -0.519 0.604100    
## z.diff.lag  0.288512   0.074113   3.893 0.000142 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2.725 on 170 degrees of freedom
## Multiple R-squared:  0.0819, Adjusted R-squared:  0.0711 
## F-statistic: 7.582 on 2 and 170 DF,  p-value: 0.0007009
## 
## 
## Value of test-statistic is: -0.5195 
## 
## Critical values for test statistics: 
##       1pct  5pct 10pct
## tau1 -2.58 -1.95 -1.62

Data tidak stasioner kemudian diterapkan proses pembedaan 2.

#berdasarkan plot dif 2 data telah stasioner
x.dif2<-diff(x,differences = 2)
plot.ts(x.dif2,lty=1)

#berdasarkan plot ACF data telah  stasioner
acf(x.dif2,lag.max = 20)

#UjiADF menghasilkan tolak H0 (pvalue<0.05) artinya data stasioner
adf.test(x.dif2,alternative=c("stationary"),k=trunc((length(x.dif2)-1)^(1/3)))
## Warning in adf.test(x.dif2, alternative = c("stationary"), k =
## trunc((length(x.dif2) - : p-value smaller than printed p-value
## 
##  Augmented Dickey-Fuller Test
## 
## data:  x.dif2
## Dickey-Fuller = -8.2195, Lag order = 5, p-value = 0.01
## alternative hypothesis: stationary

Dengan demikian, berdasarkan plot acf untuk data telah stasioner pada d=2 dan diperoleh nilai q=2.