Tugas 9 ADW - ARCH GARCH
library(forecast)## Registered S3 method overwritten by 'quantmod':
## method from
## as.zoo.data.frame zoo
library(tseries)
library(TTR)
library("graphics")
library("TSA")## Registered S3 methods overwritten by 'TSA':
## method from
## fitted.Arima forecast
## plot.Arima forecast
##
## Attaching package: 'TSA'
## The following objects are masked from 'package:stats':
##
## acf, arima
## The following object is masked from 'package:utils':
##
## tar
library("xlsx")## Warning: package 'xlsx' was built under R version 4.1.3
Import data
Dataset ini merupakan data Rata-rata Harga Beras di Tingkat Perdagangan Besar/Grosir Indonesia (Rupiah/Kg), 2010-2020 yang diperoleh dari website BPS https://www.bps.go.id/linkTableDinamis/view/id/963 . Rentang data selama 11 Tahun yaitu mulai Januari 2010 hingga Juli 2020.
data.hargaberas <- read.csv("D:/3. KULIAH PPs STATISTIKA/SEMESTER 2/STA542 Analisis Deret Waktu/Harga Beras.csv",header=TRUE)Menampilkan Data Univariat yaitu Kolom Ketiga
price <- data.hargaberas [,3]Membentuk Data time-series
#price.ts<-ts(price, start= c(2010,1), end=c(2020,7))
price.ts<-ts(price, start= 1, end=127)
price.ts## Time Series:
## Start = 1
## End = 127
## Frequency = 1
## [1] 6702.49 6887.83 6853.78 6761.49 6772.46 6873.45 7025.88 7317.51
## [9] 7350.80 7391.27 7457.08 7617.46 7853.48 7612.37 7371.25 7199.03
## [17] 7233.47 7463.10 7899.41 8152.01 8255.34 8416.09 8496.46 8726.09
## [25] 8726.09 8777.55 8687.01 8582.55 8536.89 8554.30 8606.15 8635.17
## [33] 8623.56 8624.33 8654.51 8702.10 8834.82 8842.94 8782.58 8711.39
## [41] 8681.21 8784.42 9017.72 9056.67 9057.99 9108.46 9152.07 9262.00
## [49] 9433.17 9531.20 9595.89 9424.65 9413.91 9462.01 9525.38 9525.38
## [57] 9693.67 9780.91 9924.39 10343.98 10612.11 10765.74 10986.76 10648.34
## [65] 10568.63 10679.00 10732.00 10935.00 11055.00 11169.00 11365.00 11465.00
## [73] 11614.37 11729.36 11677.75 11449.00 11417.00 11469.00 11498.00 11475.00
## [81] 11448.00 11432.58 11450.00 11476.00 11579.00 11571.24 11494.00 11449.00
## [89] 11465.00 11465.00 11448.00 11411.00 11481.84 11552.00 11665.08 11838.00
## [97] 12276.00 12414.00 12299.00 12035.00 11943.00 11907.26 11936.00 11899.00
## [105] 11900.00 11926.21 12013.00 12105.77 12211.09 12222.00 12124.00 12019.00
## [113] 12008.00 12009.00 12021.00 12018.00 12050.00 12108.00 12120.00 12183.03
## [121] 12342.74 12355.15 12368.00 12382.10 12293.03 12223.98 12212.63
Create training and validation Data
price.train <- subset(price.ts,start=1,end=108) #Data 5 Tahun pertama
price.test <- subset(price.ts,start=109,end=127) #Data 1 tahun terakhirPlot Time Series
ts.plot(price.train, xlab="Periode", ylab="Harga", lty=1)
title("Harga Beras")
points(price.train)Cek Kestasioneran
#Cek Kestasioneran
acf(price.train, lag.max=20)adf.test(price.train,alternative=c("stationary"),
k=trunc((length(price.train)-1)^(1/3))) #Augmented Dickey-Fuller##
## Augmented Dickey-Fuller Test
##
## data: price.train
## Dickey-Fuller = -1.9938, Lag order = 4, p-value = 0.5792
## alternative hypothesis: stationary
Terlihat bahwa nilai p value > dari 0.05 maka H0 gagal ditolak . Hal ini berarti bahwa plot data belum stasioner. Dan juga jika dilihat dari plot yang dihasilkan, nampak jelas bahwa data belum stasioner dalam nilai tengah dan ragam. Ditinjau dari plot acf yang turun secara lambat atau tail off terindikasi bahwa data belum stasioner. Sehingga perlu dilakukan differencing.
#Differencing Ordo 1
price.dif1 <- diff(price.train,difference=1)
plot.ts(price.dif1, lty=1, xlab="Waktu", ylab="Data Diff Ordo 1")
points(price.dif1)#Cek Kestasioneran
acf(price.dif1, lag.max=20)adf.test(price.dif1, alternative= c("stationary"),
k= trunc((length(price.train)-1)^(1/3))) #Augmented Dickey-Fuller## Warning in adf.test(price.dif1, alternative = c("stationary"), k =
## trunc((length(price.train) - : p-value smaller than printed p-value
##
## Augmented Dickey-Fuller Test
##
## data: price.dif1
## Dickey-Fuller = -4.6098, Lag order = 4, p-value = 0.01
## alternative hypothesis: stationary
Terlihat bahwa nilai p value < dari 0.05 maka H0 ditolak dan H1 diterima. Hal ini berarti bahwa plot data stasioner. Dan juga jika dilihat dari plot yang dihasilkan, nampak jelas bahwa data sudah stasioner dalam nilai tengah dan ragam, meskipun masih terdapat pencilan. Ditinjau dari plot acf yang cut off setelah lag pertama menandakan bahwa data sudah stasioner. Selanjutnya kan dilakukan uji model ARIMA tentatif nya
Pengidentifikasian Model
#Pengidentifikasian Model
acf(price.dif1, lag.max=20)pacf(price.dif1, lag.max=20)eacf(price.dif1)## AR/MA
## 0 1 2 3 4 5 6 7 8 9 10 11 12 13
## 0 x o o x o o o o o o x x o o
## 1 x o o x o o o o o o x x x o
## 2 x o o x o o o o o o o o o o
## 3 x o x x o o o o o o o x o o
## 4 x o x x o o o o o o o x o o
## 5 x o x o o o o o o o o x o o
## 6 x x x o x o o o o o o x o o
## 7 x x x x o x o o o o o o o o
Kandidat Model Hasil Identifikasi
#Pendugaan Parameter dan Penentuan Model Terbaik
#Berdasarkan Kandidat model Hasil Identifikasi
arima(price.train, order=c(0,0,1), method="ML") #ARIMA (0,1,1) #Berdasarkan ACF dan EACF##
## Call:
## arima(x = price.train, order = c(0, 0, 1), method = "ML")
##
## Coefficients:
## ma1 intercept
## 0.9715 9795.1336
## s.e. 0.0245 167.0755
##
## sigma^2 estimated as 782697: log likelihood = -887.49, aic = 1778.98
arima(price.train, order=c(2,0,0), method="ML") #ARIMA (2,1,0) #Berdasarkan PACF##
## Call:
## arima(x = price.train, order = c(2, 0, 0), method = "ML")
##
## Coefficients:
## ar1 ar2 intercept
## 1.5314 -0.5339 9458.035
## s.e. 0.0818 0.0821 2198.077
##
## sigma^2 estimated as 14355: log likelihood = -673.33, aic = 1352.66
arima(price.train, order=c(2,0,1), method="ML") #ARIMA (2,1,1) #Berdasarkan ACF dan PACF##
## Call:
## arima(x = price.train, order = c(2, 0, 1), method = "ML")
##
## Coefficients:
## ar1 ar2 ma1 intercept
## 1.3785 -0.3811 0.2228 9461.787
## s.e. 0.1550 0.1551 0.1607 2290.131
##
## sigma^2 estimated as 14088: log likelihood = -672.36, aic = 1352.72
arima(price.train, order=c(1,0,1), method="ML") #ARIMA (1,1,1) #Berdasarkan EACF##
## Call:
## arima(x = price.train, order = c(1, 0, 1), method = "ML")
##
## Coefficients:
## ar1 ma1 intercept
## 0.9975 0.5160 9476.256
## s.e. 0.0034 0.0734 2441.417
##
## sigma^2 estimated as 14688: log likelihood = -674.58, aic = 1355.17
#Kompare AIC
model.arima1 <- c("ARIMA(0,0,1)","ARIMA(2,0,0)","ARIMA(2,0,1)","ARIMA(1,0,1)")
AIC.kandididat1 = c (1778.98, 1352.66, 1352.72, 1355.17)
comp.arima1 <- cbind(model.arima1, AIC.kandididat1)
colnames(comp.arima1) <- c("Kandidat Model", "Nilai AIC")
comp.aic1 <- as.data.frame(comp.arima1)
comp.aic1## Kandidat Model Nilai AIC
## 1 ARIMA(0,0,1) 1778.98
## 2 ARIMA(2,0,0) 1352.66
## 3 ARIMA(2,0,1) 1352.72
## 4 ARIMA(1,0,1) 1355.17
Fungsi auto.arima
auto.arima(price.train, trace=TRUE)##
## ARIMA(2,1,2) with drift : 1325.609
## ARIMA(0,1,0) with drift : 1353.094
## ARIMA(1,1,0) with drift : 1329.237
## ARIMA(0,1,1) with drift : 1327.997
## ARIMA(0,1,0) : 1365.579
## ARIMA(1,1,2) with drift : 1330.276
## ARIMA(2,1,1) with drift : 1324.694
## ARIMA(1,1,1) with drift : 1328.413
## ARIMA(2,1,0) with drift : 1326.684
## ARIMA(3,1,1) with drift : 1326.939
## ARIMA(3,1,0) with drift : 1326.202
## ARIMA(3,1,2) with drift : 1329.151
## ARIMA(2,1,1) : 1333.575
##
## Best model: ARIMA(2,1,1) with drift
## Series: price.train
## ARIMA(2,1,1) with drift
##
## Coefficients:
## ar1 ar2 ma1 drift
## 1.2184 -0.5102 -0.7142 51.5505
## s.e. 0.1621 0.0876 0.1765 10.8026
##
## sigma^2 = 13056: log likelihood = -657.05
## AIC=1324.1 AICc=1324.69 BIC=1337.46
Jika ditinjau berdasarkan nilai komparasi aic yang diperoleh dari fungsi ‘arima’ dengan metode ML diperoleh model arima(2,1,0) dan arima(2,1,1) dengan nilai aic terkecil yang nyaris seimbang. Untuk itu, dalam memperkuat analisis, digunakan fungsi ‘auto.arima’ yang menghasilkan model terbaik yaitu ARIMA(2,1,1). Olehnya itu, model terbaik yang dihasilkan adalah model ARIMA(2,1,1).
#Plot Data Aktual dan Nilai Dugaan Berdasarkan Model Terbaik
model <- arima(price.train, order=c(2,0,1), method="ML") #ARIMA (2,1,1)
dugaan <- fitted(model)
cbind(price.train, dugaan)## Time Series:
## Start = 1
## End = 108
## Frequency = 1
## price.train dugaan
## 1 6702.49 6831.581
## 2 6887.83 6736.245
## 3 6853.78 6992.526
## 4 6761.49 6816.996
## 5 6772.46 6721.099
## 6 6873.45 6795.197
## 7 7025.88 6936.218
## 8 7317.51 7110.391
## 9 7350.80 7480.468
## 10 7391.27 7340.181
## 11 7457.08 7423.552
## 12 7617.46 7494.933
## 13 7853.48 7710.758
## 14 7612.37 7979.480
## 15 7371.25 7443.584
## 16 7199.03 7268.772
## 17 7233.47 7123.843
## 18 7463.10 7276.913
## 19 7899.41 7597.381
## 20 8152.01 8137.112
## 21 8255.34 8255.060
## 22 8416.09 8297.973
## 23 8496.46 8506.434
## 24 8726.09 8527.420
## 25 8726.09 8859.811
## 26 8777.55 8698.243
## 27 8687.01 8816.641
## 28 8582.55 8625.673
## 29 8536.89 8535.458
## 30 8554.30 8522.254
## 31 8606.15 8570.475
## 32 8635.17 8636.122
## 33 8623.56 8648.204
## 34 8624.33 8615.862
## 35 8654.51 8628.725
## 36 8702.10 8673.892
## 37 8834.82 8728.531
## 38 8842.94 8910.739
## 39 8782.58 8832.566
## 40 8711.39 8750.236
## 41 8681.21 8677.589
## 42 8784.42 8672.580
## 43 9017.72 8850.463
## 44 9056.67 9145.070
## 45 9057.99 9052.890
## 46 9108.46 9060.697
## 47 9152.07 9139.270
## 48 9262.00 9172.361
## 49 9433.17 9324.394
## 50 9531.20 9522.714
## 51 9595.89 9570.267
## 52 9424.65 9625.898
## 53 9413.91 9314.651
## 54 9462.01 9432.058
## 55 9525.38 9487.014
## 56 9525.38 9557.910
## 57 9693.67 9517.964
## 58 9780.91 9796.339
## 59 9924.39 9809.876
## 60 10343.98 10003.360
## 61 10612.11 10577.442
## 62 10765.74 10718.976
## 63 10986.76 10831.259
## 64 10648.34 11101.603
## 65 10568.63 10415.244
## 66 10679.00 10569.499
## 67 10732.00 10742.239
## 68 10935.00 10746.557
## 69 11055.00 11050.451
## 70 11169.00 11097.532
## 71 11365.00 11223.853
## 72 11465.00 11466.109
## 73 11614.37 11497.565
## 74 11729.36 11691.625
## 75 11677.75 11775.592
## 76 11449.00 11630.421
## 77 11417.00 11316.147
## 78 11469.00 11422.103
## 79 11498.00 11493.957
## 80 11475.00 11504.567
## 81 11448.00 11454.322
## 82 11432.58 11431.048
## 83 11450.00 11421.832
## 84 11476.00 11457.656
## 85 11579.00 11484.668
## 86 11571.24 11633.670
## 87 11494.00 11548.794
## 88 11449.00 11446.981
## 89 11465.00 11427.044
## 90 11465.00 11474.256
## 91 11448.00 11457.639
## 92 11411.00 11434.120
## 93 11481.84 11386.592
## 94 11552.00 11524.715
## 95 11665.08 11579.289
## 96 11838.00 11721.461
## 97 12276.00 11923.580
## 98 12414.00 12513.997
## 99 12299.00 12436.505
## 100 12035.00 12217.033
## 101 11943.00 11887.026
## 102 11907.26 11913.846
## 103 11936.00 11885.704
## 104 11899.00 11951.614
## 105 11900.00 11866.731
## 106 11926.21 11901.344
## 107 12013.00 11935.220
## 108 12105.77 12056.657
plot.ts(price.train, xlab="Waktu", ylab="Harga Beras")
points(price.train)
par(col="red")
lines(dugaan)par(col="black")Analisis Diagnostik
# Model ARIMA (2,1,1) menggunakan Data Awal Y
model.diag = stats::arima(price.train, order = c(2,0,1), method="ML")
model.diag##
## Call:
## stats::arima(x = price.train, order = c(2, 0, 1), method = "ML")
##
## Coefficients:
## ar1 ar2 ma1 intercept
## 1.3785 -0.3811 0.2228 9461.787
## s.e. 0.1550 0.1551 0.1607 2290.131
##
## sigma^2 estimated as 14088: log likelihood = -672.36, aic = 1354.72
Uji Sisaan
sisaan = checkresiduals(model.diag)##
## Ljung-Box test
##
## data: Residuals from ARIMA(2,0,1) with non-zero mean
## Q* = 15.64, df = 6, p-value = 0.01582
##
## Model df: 4. Total lags used: 10
sisaan##
## Ljung-Box test
##
## data: Residuals from ARIMA(2,0,1) with non-zero mean
## Q* = 15.64, df = 6, p-value = 0.01582
sisaan2 <- model.diag$residuals# Eksplorasi
par(mfrow=c(2,2))
qqnorm(sisaan2)
qqline(sisaan2, col = "blue", lwd = 2)
plot(c(1:length(sisaan2)),sisaan2)
acf(sisaan2)
pacf(sisaan2)Terlihat dari plot di atas bahwa sisaan tidak mengikuti sebaran normal. Selanjutnya ditinjau dari plot ACF dan PACFterlihat ada lag-lag yang signifikan. Hal ini berarti bahwa ada gejala autokorelasi pada sisaan.
Normalitas Data
H0: sisaan menyebar normal
H1: sisaan tidak mengikuti sebaran normal
Hasil : pâvalue=0.000000002466<α=0.05 yang berarti TOLAK H0.Sisaan tidak menyebar normal
Autokorelasi
Plot ACF dan PACFterlihat ada lag-lag yang signifikan. Hal ini berarti bahwa ada gejala autokorelasi pada sisaan.
Kesimpulan : Asumsi tidak terpenuhi
Karena terdapat hetereskedastik pada model terbaik yang dihasilkan maka selanjutnya akan dilakukan uji ‘ARCH-GARCH’
#ARCH-GARCH
##Evaluasi perilaku volatilitas – mean model
library(dynlm)## Warning: package 'dynlm' 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
price.mean <- dynlm(price.dif1~1)
summary(price.mean)##
## Time series regression with "ts" data:
## Start = 2, End = 108
##
## Call:
## dynlm(formula = price.dif1 ~ 1)
##
## Residuals:
## Min 1Q Median 3Q Max
## -388.92 -70.50 -6.89 64.00 387.50
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 50.50 12.85 3.931 0.000151 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 132.9 on 106 degrees of freedom
Evaluasi perilaku volatilitas – variance model
ehatsq <- ts(resid(price.mean)^2)
price.ARCH <- dynlm(ehatsq~L(ehatsq))
summary(price.ARCH)##
## Time series regression with "ts" data:
## Start = 2, End = 107
##
## Call:
## dynlm(formula = ehatsq ~ L(ehatsq))
##
## Residuals:
## Min 1Q Median 3Q Max
## -36588 -13968 -11186 -820 133210
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1.392e+04 3.507e+03 3.97 0.000132 ***
## L(ehatsq) 2.019e-01 9.615e-02 2.10 0.038134 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 31600 on 104 degrees of freedom
## Multiple R-squared: 0.04068, Adjusted R-squared: 0.03146
## F-statistic: 4.411 on 1 and 104 DF, p-value: 0.03813
Evaluasi perilaku volatilitas – LM Test
library(broom)## Warning: package 'broom' was built under R version 4.1.3
T <- nobs(price.mean)
q <- length(coef(price.ARCH))-1
Rsq <- glance(price.ARCH)[[1]]## Warning: Tidiers for objects of class dynlm are not maintained by the broom
## team, and are only supported through the lm tidier method. Please be cautious in
## interpreting and reporting broom output.
LM <- (T-q)*Rsq
alpha <- 0.05
Chicr <- qchisq(1-alpha, q)Evaluasi perilaku volatilitas – ARCH Test
library(FinTS)## Warning: package 'FinTS' was built under R version 4.1.3
##
## Attaching package: 'FinTS'
## The following object is masked from 'package:forecast':
##
## Acf
priceArchTest <- ArchTest(price.dif1, lags=1, demean=TRUE)
priceArchTest##
## ARCH LM-test; Null hypothesis: no ARCH effects
##
## data: price.dif1
## Chi-squared = 4.3126, df = 1, p-value = 0.03783
library(FinTS)
priceArchTest2 <- ArchTest(price.dif1, lags=2, demean=TRUE)
priceArchTest2##
## ARCH LM-test; Null hypothesis: no ARCH effects
##
## data: price.dif1
## Chi-squared = 5.0202, df = 2, p-value = 0.08126
##Evaluasi perilaku volatilitas – model ragam
library(tseries)
price.arch <- garch(price.dif1,c(0,1))##
## ***** ESTIMATION WITH ANALYTICAL GRADIENT *****
##
##
## I INITIAL X(I) D(I)
##
## 1 1.677244e+04 1.000e+00
## 2 5.000000e-02 1.000e+00
##
## IT NF F RELDF PRELDF RELDX STPPAR D*STEP NPRELDF
## 0 1 5.758e+02
## 1 2 5.744e+02 2.31e-03 6.68e-02 3.0e-05 4.0e+01 1.0e+00 1.32e+00
## 2 3 5.737e+02 1.36e-03 7.01e-04 4.0e-06 0.0e+00 1.3e-01 7.01e-04
## 3 4 5.718e+02 3.28e-03 4.14e-03 1.6e-05 3.3e+00 5.4e-01 6.17e-03
## 4 6 5.718e+02 1.75e-05 2.91e-05 8.3e-07 3.3e+00 2.8e-02 4.30e-05
## 5 7 5.718e+02 2.36e-08 2.18e-08 2.7e-08 0.0e+00 1.2e-03 2.18e-08
## 6 8 5.718e+02 1.21e-09 6.89e-10 2.5e-08 0.0e+00 8.5e-04 6.89e-10
## 7 10 5.718e+02 5.76e-09 3.67e-09 1.7e-07 0.0e+00 5.7e-03 3.67e-09
## 8 12 5.718e+02 1.26e-08 7.68e-09 4.5e-07 0.0e+00 1.5e-02 7.68e-09
## 9 14 5.718e+02 3.55e-08 2.20e-08 1.4e-06 0.0e+00 4.6e-02 2.20e-08
## 10 16 5.718e+02 9.04e-08 5.58e-08 3.7e-06 0.0e+00 1.2e-01 5.58e-08
## 11 18 5.718e+02 2.40e-07 1.48e-07 1.0e-05 0.0e+00 3.4e-01 1.48e-07
## 12 20 5.718e+02 6.26e-07 3.87e-07 2.7e-05 0.0e+00 9.1e-01 3.87e-07
## 13 22 5.718e+02 1.65e-06 1.02e-06 7.2e-05 0.0e+00 2.4e+00 1.02e-06
## 14 24 5.718e+02 4.34e-06 2.69e-06 1.9e-04 0.0e+00 6.4e+00 2.69e-06
## 15 26 5.718e+02 1.15e-05 7.11e-06 5.1e-04 0.0e+00 1.7e+01 7.11e-06
## 16 28 5.717e+02 3.07e-05 1.90e-05 1.3e-03 0.0e+00 4.5e+01 1.90e-05
## 17 30 5.717e+02 8.28e-05 5.13e-05 3.6e-03 0.0e+00 1.2e+02 5.13e-05
## 18 32 5.716e+02 2.28e-04 1.41e-04 1.0e-02 0.0e+00 3.3e+02 1.41e-04
## 19 34 5.712e+02 6.49e-04 4.03e-04 2.9e-02 0.0e+00 9.1e+02 4.03e-04
## 20 36 5.702e+02 1.81e-03 1.17e-03 9.1e-02 0.0e+00 2.6e+03 1.17e-03
## 21 37 5.687e+02 2.54e-03 2.57e-03 2.6e-01 0.0e+00 5.2e+03 2.57e-03
## 22 38 5.668e+02 3.39e-03 2.38e-03 2.2e-02 0.0e+00 3.4e+02 2.38e-03
## 23 39 5.657e+02 1.96e-03 1.53e-03 2.2e-02 1.8e+00 3.4e+02 2.38e-03
## 24 42 5.649e+02 1.30e-03 1.41e-03 1.5e-01 4.9e-01 2.0e+03 1.51e-03
## 25 43 5.647e+02 4.86e-04 3.95e-04 1.2e-02 0.0e+00 1.4e+02 3.95e-04
## 26 44 5.646e+02 7.10e-05 6.47e-05 1.2e-02 1.4e+00 1.4e+02 7.21e-05
## 27 45 5.646e+02 1.28e-05 1.20e-05 1.1e-02 0.0e+00 1.2e+02 1.20e-05
## 28 46 5.646e+02 1.71e-07 1.79e-07 3.5e-04 0.0e+00 3.9e+00 1.79e-07
## 29 47 5.646e+02 1.66e-09 1.76e-09 2.1e-04 0.0e+00 2.3e+00 1.76e-09
## 30 48 5.646e+02 6.28e-12 6.29e-12 1.2e-05 0.0e+00 1.4e-01 6.29e-12
##
## ***** RELATIVE FUNCTION CONVERGENCE *****
##
## FUNCTION 5.646214e+02 RELDX 1.242e-05
## FUNC. EVALS 48 GRAD. EVALS 31
## PRELDF 6.286e-12 NPRELDF 6.286e-12
##
## I FINAL X(I) D(I) G(I)
##
## 1 5.465279e+03 1.000e+00 -2.100e-11
## 2 1.093498e+00 1.000e+00 -7.241e-07
## Warning in sqrt(pred$e): NaNs produced
spricearch <- summary(price.arch)
spricearch##
## Call:
## garch(x = price.dif1, order = c(0, 1))
##
## Model:
## GARCH(0,1)
##
## Residuals:
## Min 1Q Median 3Q Max
## -2.4992 -0.1872 0.3817 0.9552 2.7924
##
## Coefficient(s):
## Estimate Std. Error t value Pr(>|t|)
## a0 5465.2792 1288.5041 4.242 2.22e-05 ***
## a1 1.0935 0.2894 3.779 0.000158 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Diagnostic Tests:
## Jarque Bera Test
##
## data: Residuals
## X-squared = 1.3439, df = 2, p-value = 0.5107
##
##
## Box-Ljung test
##
## data: Squared.Residuals
## X-squared = 0.4677, df = 1, p-value = 0.494
hhat <- ts(2*price.arch$fitted.values[-1,1]^2)
plot.ts(hhat)Evaluasi perilaku volatilitas – model GARCH
library(rugarch)## Warning: package 'rugarch' was built under R version 4.1.3
## Loading required package: parallel
##
## Attaching package: 'rugarch'
## The following object is masked from 'package:stats':
##
## sigma
garchSpec <- ugarchspec(
variance.model=list(model="sGARCH",
garchOrder=c(1,1)),
mean.model=list(armaOrder=c(0,0)),
distribution.model="std")
garchFit <- ugarchfit(spec=garchSpec, data=price.dif1)
coef(garchFit)## mu omega alpha1 beta1 shape
## 4.772236e+01 1.804649e+01 2.441475e-08 9.970588e-01 5.019162e+00
rhat <- garchFit@fit$fitted.values
plot.ts(rhat)hhat <- ts(garchFit@fit$sigma^2)
plot.ts(hhat)Terimakasih.