UAS Econometric
~ Ujian Akhir Semester ~
| Kontak | : \(\downarrow\) |
| dsciencelabs@outlook.com | |
| https://www.instagram.com/dsciencelabs/ | |
| RPubs | https://rpubs.com/dsciencelabs/ |
DataSet
Disini saya menggunakan data Producer Price Index (PPI) merupakan
salah satu indikator utama stabilitas perekonomian suatu negara. Proyek
ini bertujuan untuk meramalkan PPI triwulanan AS di masa depan
menggunakan Model Time Series Regression Models, Model Exponential
Smoothing, dan Model ARIMA untuk tahun 2003 2007, menggunakan kumpulan
data dengan data PPI triwulanan untuk tahun 1960 2002.
Berikut
Dataset dari Time Series PPI yang akan saya gunakan.
mydata<- read.csv("timeseries_ppi.csv")
attach(mydata)
mydataDefining variables
Y <- ppi
d.Y <- diff(Y)
t <- yearqrtTime Series Regression Models
Pemodelan regresi linier adalah pemodelan untuk mengeksplorasi
hubungan sebab akibat antara peristiwa dan memprediksi hasil di masa
depan. Model ini memberikan pemahaman yang lebih baik tentang
signifikansi prediktor dan dampaknya terhadap output.
Berisi data
rata-rata perubahan harga jual yang diterima oleh produsen barang dan
jasa dalam negeri dari waktu ke waktu untuk 1960-2002 dalam hitungan
triwulan.
priceindex <- ts(ppi, frequency=4, start=c(1960,1))
priceindex## Qtr1 Qtr2 Qtr3 Qtr4
## 1960 25.40 25.44 25.37 25.40
## 1961 25.49 25.24 25.24 25.28
## 1962 25.42 25.28 25.41 25.37
## 1963 25.28 25.24 25.34 25.36
## 1964 25.39 25.27 25.35 25.42
## 1965 25.53 25.79 25.98 26.13
## 1966 26.53 26.64 26.93 26.75
## 1967 26.74 26.70 26.81 26.86
## 1968 27.23 27.40 27.51 27.65
## 1969 28.07 28.44 28.65 28.93
## 1970 29.35 29.49 29.66 29.70
## 1971 30.14 30.50 30.74 30.76
## 1972 31.33 31.64 32.11 32.45
## 1973 34.02 35.67 37.14 37.46
## 1974 39.94 41.36 44.30 45.84
## 1975 45.83 46.32 47.31 47.82
## 1976 48.06 48.77 49.36 49.80
## 1977 50.90 52.12 52.19 52.80
## 1978 54.08 55.70 56.56 57.84
## 1979 59.94 62.07 64.01 66.27
## 1980 69.35 70.74 73.08 74.77
## 1981 77.00 78.75 79.28 79.20
## 1982 79.87 79.96 80.32 80.40
## 1983 80.45 80.73 81.50 81.90
## 1984 82.82 83.37 83.17 82.96
## 1985 82.77 82.85 82.29 82.80
## 1986 81.54 80.02 79.65 79.94
## 1987 80.88 82.16 83.09 83.49
## 1988 83.98 85.37 86.57 86.97
## 1989 88.92 90.41 90.09 90.44
## 1990 91.78 91.59 93.27 96.05
## 1991 94.13 93.19 93.03 93.17
## 1992 92.93 93.89 94.37 94.45
## 1993 94.82 95.79 95.33 95.30
## 1994 95.65 96.21 96.91 97.31
## 1995 98.94 100.14 100.35 100.57
## 1996 101.24 102.47 102.60 102.81
## 1997 103.00 101.96 101.96 102.14
## 1998 100.22 100.14 99.63 98.91
## 1999 98.27 99.79 101.69 102.55
## 2000 103.91 105.83 107.17 108.64
## 2001 110.43 109.20 106.90 103.69
## 2002 103.40
Berikut model plot nya.
log_price_index <- log(priceindex)
plot.ts(log_price_index)
Keterangan :
Di sini kita dapat melihat bahwa ukuran fluktuasi
seasonal dan fluktuasi acak dalam deret waktu yang diubah-log tampaknya
kira-kira konstan sepanjang waktu atau seperti yang dapat diamati secara
visual, PPI berkorelasi positif dengan waktu.
Model Regresi
Nama variabel yang akan saya gunakan dalam perintah R dalam dataset, maka perintah nya seperti di bawah ini
mdl <- lm(dppi ~ lppi, na.action=na.omit)
mdl##
## Call:
## lm(formula = dppi ~ lppi, na.action = na.omit)
##
## Coefficients:
## (Intercept) lppi
## 0.5035691 -0.0006095
Uji Asumsi
Uji Asumsi Normalitas
Pengujian residual dari model regresi apakah berdistribusi normal maka dilakukan uji Normalitas, dengan perintah di bawah ini
par(mfrow=c(2,2))
plot(mdl)Keterangan:
Bisa dilihat dari hasil output di atas bahwa grafik
Normal Q-Q (pojok kanan atas) menunjukkan point-point data berada
disekitar garis lurus, maka dapat dikatakan terdistribusi normal,
sehingga dapat dikatakan model regresi memenuhi asumsi Normalitas.
Uji Asumsi Heteroskedastisitas
Mengukur apakah terjadi ketidaksamaan varians residual (Heteroskedastisitas) dari data-data pengukuran dapat kita lakukan dengan melihat sebaran pada grafik Residuals vs Vitted dengan perintah yang sama pada uji Normalitas.
par(mfrow=c(2,2))
plot(mdl)Keterangan:
Pada hasil output di atas dapat kita lihat bahwa pada grafik Residuals vs Fitted (pojok kiri atas) data-data terlihat tidak menyebar pada satu titik dan lainnya terlihat menyebar serta tidak membentuk satu pola tertentu, sehingga dapat dikatakan tidak terjadi perbedaan varians residual dan model kita memenuhi uji asumsi Heteroskedastisitas.
Uji Autokolerasi
Uji autokorelasi dilakukan untuk menguji apakah ada pengaruh dari data terdahulu kepada data yang baru, uji ini dilakukan untuk data time series, dengan menggunakan perintah dwtest() dalam package lmtest dengan perintah di bawah ini:
library(lmtest)
dwtest(mdl)##
## Durbin-Watson test
##
## data: mdl
## DW = 0.88947, p-value = 1.244e-13
## alternative hypothesis: true autocorrelation is greater than 0
Keterangan:
dari hasil uji di atas, dengan nilai Durbin-Watson
test p-value lebih dari 0.05 maka dapat dikatakan bahwa tidak terjadi
pengaruh antar data sebelum dan terbaru, dapat dikatakan asumsi tidak
ada Autokorelasi antar data model regresi terpenuhi.
Koefesien Signifikansi
summary(lm(dppi ~ lppi, na.action=na.omit))##
## Call:
## lm(formula = dppi ~ lppi, na.action = na.omit)
##
## Residuals:
## Min 1Q Median 3Q Max
## -3.6484 -0.4507 -0.1697 0.5135 2.6168
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.5035691 0.1682689 2.993 0.00319 **
## lppi -0.0006095 0.0023653 -0.258 0.79697
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.9233 on 166 degrees of freedom
## (1 observation deleted due to missingness)
## Multiple R-squared: 0.0003999, Adjusted R-squared: -0.005622
## F-statistic: 0.0664 on 1 and 166 DF, p-value: 0.797
Keterangan:
Berdasarkan outpur di atas, model regresi nya bisa
dilihat dari bagian estimasi, yaitu y = 0.5035691 + (-0.0006095). Dari
uji parsial dengan t-value sebesar -0.258 dan p-value sebesar 0.79697
dimana tingkat signifikansi yang digunakan adalah 0.05 , memberikan
hasil tolak.
Kesimpulan
Dalam time series regression model bisa dilihat hasil akhirnya bahwa tingkat signifikansi sangat tinggi maka ada masalah dalam root unit atau ketidakstabilan data. Untuk lebih lanjut akan dilakukan Dickey-Fuller test yang ada dalam model ARIMA.
Time Series Exponential Smoothing
Exponential Smoothing merupakan metode untuk meramalkan data-data
masa lampau pada ke masa mendatang. Konsep perhitungan dari Exponential
Smoothing adalah dengan memberikan pembobot pada perhitungan prediksi
untuk setiap t.
Parameter penghalusan (smoothing) biasanya
dilambangkan dengan α (alpha). Penggunaan exponential smoothing biasanya
digunakan untuk forecasting (peramalan) atau peramalan bisnis dengan
alpha ataupun parameter yang ditentukan.
lap <- ts(Y, start=c(1960,1),end=c(2002,1), frequency=4)
lap## Qtr1 Qtr2 Qtr3 Qtr4
## 1960 25.40 25.44 25.37 25.40
## 1961 25.49 25.24 25.24 25.28
## 1962 25.42 25.28 25.41 25.37
## 1963 25.28 25.24 25.34 25.36
## 1964 25.39 25.27 25.35 25.42
## 1965 25.53 25.79 25.98 26.13
## 1966 26.53 26.64 26.93 26.75
## 1967 26.74 26.70 26.81 26.86
## 1968 27.23 27.40 27.51 27.65
## 1969 28.07 28.44 28.65 28.93
## 1970 29.35 29.49 29.66 29.70
## 1971 30.14 30.50 30.74 30.76
## 1972 31.33 31.64 32.11 32.45
## 1973 34.02 35.67 37.14 37.46
## 1974 39.94 41.36 44.30 45.84
## 1975 45.83 46.32 47.31 47.82
## 1976 48.06 48.77 49.36 49.80
## 1977 50.90 52.12 52.19 52.80
## 1978 54.08 55.70 56.56 57.84
## 1979 59.94 62.07 64.01 66.27
## 1980 69.35 70.74 73.08 74.77
## 1981 77.00 78.75 79.28 79.20
## 1982 79.87 79.96 80.32 80.40
## 1983 80.45 80.73 81.50 81.90
## 1984 82.82 83.37 83.17 82.96
## 1985 82.77 82.85 82.29 82.80
## 1986 81.54 80.02 79.65 79.94
## 1987 80.88 82.16 83.09 83.49
## 1988 83.98 85.37 86.57 86.97
## 1989 88.92 90.41 90.09 90.44
## 1990 91.78 91.59 93.27 96.05
## 1991 94.13 93.19 93.03 93.17
## 1992 92.93 93.89 94.37 94.45
## 1993 94.82 95.79 95.33 95.30
## 1994 95.65 96.21 96.91 97.31
## 1995 98.94 100.14 100.35 100.57
## 1996 101.24 102.47 102.60 102.81
## 1997 103.00 101.96 101.96 102.14
## 1998 100.22 100.14 99.63 98.91
## 1999 98.27 99.79 101.69 102.55
## 2000 103.91 105.83 107.17 108.64
## 2001 110.43 109.20 106.90 103.69
## 2002 103.40
ts.plot(lap)Single Exponential Smoothing
Single Exponential Smoothing merupakan metode pemulusan yang tepat digunakan untuk data stasioner. Pada kesempatan kali ini akan dilakukan pemulusan pada data penjualan menggunakan λ = 0.1.
library(forecast)
# lambda 0.1
ses.1 <- ses(lap, h = 20)
plot(ses.1)#menampilkan ramalan 10 periode kedepan
ses.1## Point Forecast Lo 80 Hi 80 Lo 95 Hi 95
## 2002 Q2 103.4 102.07763 104.7224 101.37760 105.4225
## 2002 Q3 103.4 101.52997 105.2701 100.54002 106.2600
## 2002 Q4 103.4 101.10972 105.6903 99.89731 106.9028
## 2003 Q1 103.4 100.75543 106.0446 99.35547 107.4446
## 2003 Q2 103.4 100.44329 106.3568 98.87809 107.9220
## 2003 Q3 103.4 100.16110 106.6390 98.44651 108.3535
## 2003 Q4 103.4 99.90159 106.8985 98.04963 108.7504
## 2004 Q1 103.4 99.66005 107.1400 97.68023 109.1198
## 2004 Q2 103.4 99.43319 107.3669 97.33327 109.4668
## 2004 Q3 103.4 99.21862 107.5814 97.00511 109.7949
## 2004 Q4 103.4 99.01453 107.7855 96.69299 110.1071
## 2005 Q1 103.4 98.81953 107.9805 96.39476 110.4053
## 2005 Q2 103.4 98.63250 108.1676 96.10872 110.6913
## 2005 Q3 103.4 98.45253 108.3475 95.83348 110.9666
## 2005 Q4 103.4 98.27888 108.5212 95.56791 111.2321
## 2006 Q1 103.4 98.11093 108.6891 95.31106 111.4890
## 2006 Q2 103.4 97.94816 108.8519 95.06211 111.7379
## 2006 Q3 103.4 97.79010 109.0100 94.82038 111.9797
## 2006 Q4 103.4 97.63638 109.1637 94.58528 112.2148
## 2007 Q1 103.4 97.48665 109.3134 94.35629 112.4438
Selain menggunakan fungsi ses yang terdapat pada package
forecast, pemulusan single exponential dapat dilakukan
menggunakan fungsi HoltWinters. Berikut ilustrasinya.
Holt-Winters
Dalam metode paling dasar, sayacukup memanggil fungsi Holt-Winters
dan membiarkan R mengetahui parameter penyetelannya sendiri dengan
variabel penyetelan sebagai berikut:
- alpha: “nilai dasar”. Alfa
yang lebih tinggi memberi bobot lebih pada pengamatan terbaru.
-
beta: “nilai tren”. Beta yang lebih tinggi berarti kemiringan tren lebih
bergantung pada kemiringan tren terkini.
- gamma: “komponen
musiman”. Gamma yang lebih tinggi memberi bobot lebih pada siklus
musiman terbaru.
lapp <- log(lap)
lap1 <- HoltWinters(lapp, beta=FALSE, gamma=FALSE)
lap1## Holt-Winters exponential smoothing without trend and without seasonal component.
##
## Call:
## HoltWinters(x = lapp, beta = FALSE, gamma = FALSE)
##
## Smoothing parameters:
## alpha: 0.9999521
## beta : FALSE
## gamma: FALSE
##
## Coefficients:
## [,1]
## a 4.638605
Plot Forecast untuk Holtwinters sebagai berikut.
# lambda = 0.1
ses1<- HoltWinters(lap, gamma = FALSE, beta = FALSE, alpha = 0.1)
plot(ses1)ramalan1<- forecast(lap1, h=10)
#menampilkan ramalan 10 periode
ramalan1## Point Forecast Lo 80 Hi 80 Lo 95 Hi 95
## 2002 Q2 4.638605 4.620522 4.656688 4.610950 4.666260
## 2002 Q3 4.638605 4.613033 4.664177 4.599496 4.677714
## 2002 Q4 4.638605 4.607286 4.669924 4.590706 4.686504
## 2003 Q1 4.638605 4.602441 4.674769 4.583297 4.693913
## 2003 Q2 4.638605 4.598172 4.679038 4.576769 4.700442
## 2003 Q3 4.638605 4.594313 4.682897 4.570867 4.706343
## 2003 Q4 4.638605 4.590765 4.686446 4.565439 4.711771
## 2004 Q1 4.638605 4.587462 4.689749 4.560388 4.716822
## 2004 Q2 4.638605 4.584359 4.692851 4.555643 4.721567
## 2004 Q3 4.638605 4.581425 4.695785 4.551156 4.726055
Menghitung Nilai Keakuratan
# Nilai akurasiSES dengan lambda = 0.1
# Berdasarkan hasil pemulusan menggunakan fungsi HoltWinters
SSE1 <- lap1$SSE
MSE1 <- lap1$SSE/length(lap)
RMSE1 <- sqrt(MSE1)
akurasi1 <- matrix(c(SSE1,MSE1,RMSE1))
row.names(akurasi1)<- c("SSE", "MSE", "RMSE")
colnames(akurasi1) <- c("Akurasi lambda = 0.1")
akurasi1## Akurasi lambda = 0.1
## SSE 0.044980698
## MSE 0.000266158
## RMSE 0.016314349
Keterangan:
Berdasarkan hasil perhitungan akurasi diatas,
terlihat bahwa dari ketiga ukuran kebaikan (SSE,MSE, dan RMSE), metode
pemulusan dengan lambda = 0.1 memiliki nilai akurasi lebih kecil. Oleh
karena itu, dalam kasus ini dapat disimpulkan bahwa metode pemulusan
dengan lambda = 0.1 lebih baik digunakan untuk melakukan peramalan data.
Selanjutnya, akan dilakukan mulusan menggunakan Double Exponential
Smoothing
Double Exponential Smoothing
Metode pemulusan Double Exponential Smoothing (DES) digunakan untuk data yang memiliki pola trend. Berbeda dengan metode sebelumnya, pemulusan menggunakan metode ini akan menghasilkan permalan tidak konstan untuk periode berikutnya. Berikut penerapan metode Double Exponential Smoothing pada R dengan kombinasi nilai parameter (λ = 0.1, γ = 0.1)
# lambda = 0.1 dan gamma = 0.1
des.1<- HoltWinters(lap, gamma = FALSE, beta = 0.1, alpha = 0.1)
plot(des.1)ramalan.1<- forecast(des.1, h=10)
#menampilkan ramalan 10 periode
ramalan.1## Point Forecast Lo 80 Hi 80 Lo 95 Hi 95
## 2002 Q2 107.0375 102.5336 111.5414 100.1494 113.9256
## 2002 Q3 107.3251 102.7940 111.8562 100.3954 114.2548
## 2002 Q4 107.6127 103.0495 112.1759 100.6339 114.5915
## 2003 Q1 107.9003 103.2997 112.5009 100.8643 114.9363
## 2003 Q2 108.1879 103.5443 112.8315 101.0861 115.2897
## 2003 Q3 108.4755 103.7830 113.1680 101.2989 115.6521
## 2003 Q4 108.7631 104.0156 113.5106 101.5024 116.0238
## 2004 Q1 109.0507 104.2418 113.8596 101.6962 116.4052
## 2004 Q2 109.3383 104.4616 114.2150 101.8800 116.7966
## 2004 Q3 109.6259 104.6747 114.5771 102.0537 117.1982
Menghitung Nilai Keakuratan
# Akurasi DES lambda = 0.1 dan gamma = 0.1
SSE1= des.1$SSE
MSE1= SSE1/length(lap)
RMSE1 = sqrt(MSE1)
akurasi.des1 <- matrix(c(SSE1,MSE1,RMSE1))
row.names(akurasi.des1)<- c("SSE", "MSE", "RMSE")
colnames(akurasi.des1) <- c("Akurasi lambda = 0.1 dan gamma=0.1")
akurasi.des1## Akurasi lambda = 0.1 dan gamma=0.1
## SSE 2053.958846
## MSE 12.153603
## RMSE 3.486202
Keterangan:
Berdasarkan hasil perhitungan kebaikan model diatas,
terlihat bahwa nilai akurasi DES dengan lambda = 0.1 dan gamma=0.1
kecil. Dapat disimpulkan bahwa DES dengan lambda = 0.1 dan gamma=0.1
adalah metode yang lebih baik.
Decomposing Seasonal Data
Segera kita dapat “mengurai” deret waktu — yang dalam hal ini berarti
memisahkan 4 komponen utama yang membentuk deret waktu:
- tren:
tren jangka panjang dalam data
- musiman: penambah sinyal musiman
yang berulang
- acak: komponen “sisa” yang tidak diharapkan dari
komponen musiman atau tren.
Kita dapat dengan mudah
mengekstrak komponen ini dan memplotnya dengan:
df_timeseriescomponents <- decompose(lap)
plot(df_timeseriescomponents)
Keterangan:
Output di atas merupakan representasi grafis dari
perkiraan keadaan dari waktu ke waktu. Saat kita melihat komponen
dekomposisi, kita dapat melihat secara visual bagaimana komponen
tersebut dapat ditambahkan ke nilai “yang diamati(observed)” kita (nilai
kita yang sebenarnya). Juga sangat penting untuk memeriksa skala setiap
bagian untuk melihat mana yang lebih dominan. Misalnya, jika “acak”
memiliki rentang yang jauh lebih besar daripada musiman atau tren, data
ini akan sangat sulit untuk diramalkan secara akurat nanti.
Menentukan metode Pemulusan terbaik serta Kesimpulan
Pada kasus diketahui bahwa data time series terakhir berada pada tahun 2002 dan ingin diproyeksi untuk 1 periode (2003-2007)
# SES
akurasi1## Akurasi lambda = 0.1
## SSE 0.044980698
## MSE 0.000266158
## RMSE 0.016314349
# DES
akurasi.des1## Akurasi lambda = 0.1 dan gamma=0.1
## SSE 2053.958846
## MSE 12.153603
## RMSE 3.486202
Keterangan:
Berdasarkan hasil diatas, didapatkan model terbaik
antara masing-masing metode. Berdasarkan hasil diatas terlihat bahwa
nilai SSE, MSE, dan RMSE metode pemulusan SES dengan λ = 0.1 lebih kecil
dibandingkan metode pemulusan DES dengan λ = 0.1 dan γ= 0.1. Hal
tersebut menunjukkan bahwa metode SES dengan λ = 0.1 lebih baik
digunakan.
Time Series ARIMA Models
Disini saya menggunakan pemodelan ARIMA untuk menentukan model yang
sesuai untuk perkiraan. Langkah pertama adalah menentukan stasioneritas
dari data yang kita miliki. Ini dilakukan dengan Augmented Dickey Fuller
Test (ADF). Jika stasioneritas tidak tercapai, saya melakukan
diferensiasi data nya n kali sampai mencapai stasioneritas. Setelah itu,
saya memplot Fungsi Autokorelasi (ACF) dan fungsi Autokorelasi Parsial
(PACF) untuk data stasioner yang saya miliki, dan menentukan urutan
proses AR dan proses MA melalui jumlah lonjakan di PACF dan ACF
masing-masing.
Saya juga membandingkan model yang kami peroleh
dengan model lain dengan membandingkan nilai Akaike Information Criteria
(AIC) dan Bayesian Information Criteria (BIC), dan juga memeriksa
efisiensi model yang dibangun dengan memplot ACF dari residual dan
memeriksa apakah mereka berkorelasi.
Defining Variable
Y <- ppi
dY <- diff(Y)Plot PPI untuk Memvisualisasikan data
plot.ts(Y)plot.ts(d.Y)
Keterangan:
Dua grafik di atas menunjukkan plot PPI vs waktu dan
DPPI vs waktu. Seperti yang dapat diamati secara visual, PPI berkorelasi
positif dengan waktu, sedangkan DPPI secara visual dapat dilihat
memiliki rata-rata yang konstan dan kurang bergantung pada waktu.
Memeriksa Stasioneritas data Augmented Dickey Fuller Test
Dickey-Fuller test for variable
Tes Dickey-Fuller menguji hipotesis nol yang menyatakan bahwa bahwa unit root ada dalam model autoregresif. Unit root test adalah tes stasioneritas data time series. Data time series memiliki stasioneritas jika perubahan waktu tidak menyebabkan perubahan dalam bentuk distribusi. Root unit adalah salah satu penyebab ketidakstabilan tersebut. Hipotesis alternatif berbeda tergantung pada versi tes yang digunakan, tetapi biasanya stasioneritas atau tren-stasioneritas.
library(tseries)
adf.test(Y, alternative="stationary")##
## Augmented Dickey-Fuller Test
##
## data: Y
## Dickey-Fuller = -1.3857, Lag order = 5, p-value = 0.8327
## alternative hypothesis: stationary
Keterangan:
Dari pengujian ADF di atas pada variabel PPI, nilai
p-value sangat tinggi dan hipotesis nol tidak dapat kita tolak, sehingga
dapat disimpulkan bahwa variabel tersebut tidak stasioner. Oleh karena
itu saya menerapkan pengujian yang sama pada variabel DPPI untuk
memeriksa stasioneritasnya.
DF and ADF tests for differenced variable
Augmented Dickey Fuller Test untuk variabel DPPI (Different PPI)
adf.test(dY, k=0)##
## Augmented Dickey-Fuller Test
##
## data: dY
## Dickey-Fuller = -6.8398, Lag order = 0, p-value = 0.01
## alternative hypothesis: stationary
adf.test(dY)##
## Augmented Dickey-Fuller Test
##
## data: dY
## Dickey-Fuller = -3.2459, Lag order = 5, p-value = 0.08252
## alternative hypothesis: stationary
Keterangan:
P-value uji ADF pada variabel DPPI adalah 0,01, dan
dengan demikian kita dapat mengatakan dengan keyakinan 99% bahwa
hipotesis nol (DPPI tidak stasioner) dapat ditolak. Kita dapat
mengatakan bahwa perbedaan pertama adalah stasioner, dan memperkirakan
model terbaik dengan menentukan parameter AR dan MA.
Plot ACF dan PCF untuk menentukan Orde Proses ARIMA
Plot ACF dan PACF untuk PPI
acf(Y)pacf(Y)Plot ACF dan PACF untuk Difference PPI (DPPI)
acf(d.Y)pacf(d.Y)Keterangan:
Orde MA dapat ditentukan dari jumlah spike pada plot ACF DPPI, dan
ditentukan menjadi 1 yang menunjukkan proses MA(1). Kami akan
membandingkan hasil kami dengan pesanan MA lainnya dan memeriksa apakah
perkiraan kami benar. Urutan AR dapat ditentukan dari jumlah spike pada
plot PACF DPPI, dan ditentukan menjadi 1. Hal ini menunjukkan proses
AR(1).
Menganalisis plot ACF PPI, mengkonfirmasi pengamatan kami
sebelumnya tentang non-stasioneritas dalam data PPI asli, yang dapat
dilihat dari plot ACF PPI vs lag. Plot tidak secara geometris menurun
dan tetap menurun secara perlahan yang menunjukkan non-stasioneritas
data
Perbandingan dengan model ARIMA yang berbeda dan koefisien persamaan yang diperoleh
ARIMA(1,0,0) or AR(1)
arima(Y, order = c(1,0,0))##
## Call:
## arima(x = Y, order = c(1, 0, 0))
##
## Coefficients:
## ar1 intercept
## 0.9996 64.522
## s.e. 0.0005 38.002
##
## sigma^2 estimated as 1.058: log likelihood = -248.2, aic = 502.4
ARIMA(2,0,0) or AR(2)
arima(Y, order = c(2,0,0))##
## Call:
## arima(x = Y, order = c(2, 0, 0))
##
## Coefficients:
## ar1 ar2 intercept
## 1.6474 -0.6475 230.406
## s.e. 0.0003 0.0003 NaN
##
## sigma^2 estimated as 0.6061: log likelihood = -198.27, aic = 404.54
ARIMA(0,0,1) or MA(1)
arima(Y, order = c(0,0,1))##
## Call:
## arima(x = Y, order = c(0, 0, 1))
##
## Coefficients:
## ma1 intercept
## 1.0000 64.6863
## s.e. 0.0182 2.3345
##
## sigma^2 estimated as 231.6: log likelihood = -702.48, aic = 1410.96
ARIMA(1,0,1) or AR(1) MA(1)
arima(Y, order = c(1,0,1))##
## Call:
## arima(x = Y, order = c(1, 0, 1))
##
## Coefficients:
## ar1 ma1 intercept
## 0.9994 0.5337 64.6936
## s.e. 0.0008 0.0537 37.6621
##
## sigma^2 estimated as 0.7233: log likelihood = -216.41, aic = 440.82
ARIMA on differenced variable
ARIMA(1,1,0)
arima(d.Y, order = c(1,0,0))##
## Call:
## arima(x = d.Y, order = c(1, 0, 0))
##
## Coefficients:
## ar1 intercept
## 0.5522 0.4557
## s.e. 0.0640 0.1307
##
## sigma^2 estimated as 0.5841: log likelihood = -193.39, aic = 392.79
ARIMA(0,1,1)
arima(d.Y, order = c(0,0,1))##
## Call:
## arima(x = d.Y, order = c(0, 0, 1))
##
## Coefficients:
## ma1 intercept
## 0.4872 0.4654
## s.e. 0.0579 0.0908
##
## sigma^2 estimated as 0.6284: log likelihood = -199.5, aic = 404.99
ARIMA(1,1,1)
arima(d.Y, order = c(1,0,1))##
## Call:
## arima(x = d.Y, order = c(1, 0, 1))
##
## Coefficients:
## ar1 ma1 intercept
## 0.7245 -0.2547 0.4397
## s.e. 0.1152 0.1682 0.1576
##
## sigma^2 estimated as 0.5783: log likelihood = -192.59, aic = 393.17
ARIMA(1,1,3)
arima(d.Y, order = c(1,0,3))##
## Call:
## arima(x = d.Y, order = c(1, 0, 3))
##
## Coefficients:
## ar1 ma1 ma2 ma3 intercept
## 0.7334 -0.241 -0.1082 0.1217 0.4324
## s.e. 0.1242 0.142 0.0970 0.0800 0.1664
##
## sigma^2 estimated as 0.5638: log likelihood = -190.48, aic = 392.97
ARIMA(2,1,3)
arima(d.Y, order = c(2,0,3))##
## Call:
## arima(x = d.Y, order = c(2, 0, 3))
##
## Coefficients:
## ar1 ar2 ma1 ma2 ma3 intercept
## 1.5191 -0.7084 -1.0502 0.2100 0.3179 0.4405
## s.e. 0.2253 0.1589 0.2103 0.1314 0.1036 0.1438
##
## sigma^2 estimated as 0.5474: log likelihood = -188.22, aic = 390.44
Berikut hasil akhir ARIMA PPI dan DPPI dalam bentuk tabel.
Keterangan:
Tabel di atas menyebutkan koefisien lag yang
diperoleh ketika kami menguji kumpulan data dengan model ARIMA yang
berbeda stasioner, dan memperkirakan ARIMA . yang paling tepat Indeks
AS, dan memperkirakan PPI untuk tahun-tahun mendatang menggunakan model
ARIMA. Kami menemukan perbedaan pertama adalah model yang keluar menjadi
model ARIMA (1,1,1). tersebut. Saat membandingkan nilai AIC, kami
memperoleh AIC minimum untuk dikaitkan dengan ARIMA (1,1,1)
ARIMA(1,0,1) forecasting
Variabel asli setelah ARIMA (1,0,1)
mydata.arima101 <- arima(Y, order = c(1,0,1))
mydata.pred1 <- predict(mydata.arima101, n.ahead=100)
plot.ts(Y)
lines(mydata.pred1$pred, col="blue")
lines(mydata.pred1$pred+2*mydata.pred1$se, col="red")
lines(mydata.pred1$pred-2*mydata.pred1$se, col="red")ARIMA(1,1,1) forecasting
Differenced variabel setelah ARIMA(1,1,1)
mydata.arima111 <- arima(d.Y, order = c(1,0,1))
mydata.pred1 <- predict(mydata.arima111, n.ahead=100)
plot.ts(d.Y)
lines(mydata.pred1$pred, col="blue")
lines(mydata.pred1$pred+2*mydata.pred1$se, col="red")
lines(mydata.pred1$pred-2*mydata.pred1$se, col="red")
Prakiraan PPI dan DPPI telah kami tampilkan di atas dua grafik dengan
interval kepercayaan 5% (2,5% kedua sisi), pada ARIMA(1,1,1) untuk
variabel perbedaan.
Kesimpulan dari Model ARIMA
Saya menyimpulkan bahwa Harga Produsen Indeks AS, dan memperkirakan
PPI untuk tahun-tahun mendatang menggunakan model ARIMA. Kami menemukan
perbedaan pertama adalah stasioner, dan memperkirakan ARIMA . yang
paling tepat model yang keluar menjadi model ARIMA (1,1,1).
Model
diverifikasi dengan membandingkan dengan model lain dan diperoleh nilai
AIC minimum 393 dan BIC yang sesuai menjadi 406 yang sesuai dengan model
ARIMA, menunjukkan bahwa itu lebih baik daripada model lainnya. Uji
Kotak Ljung mengungkapkan bahwa residu bebas dari
heteroskedastisitas.
Pendapat dari ketiga Model
Menurut saya, dari ketiga model memiliki kelebihan dan kekurangannya masing-masing dalam memvisualisasikan dan menganalisis sebuah data time series. Dari saya, model eksponential Smoothing dan model ARIMA memiliki model yang terbaik karena dapat melihat progress masa depan dari data yang ada di masa lampau dan dengan itu, kita dapat membangun strategi dari peramalan yang sudah di lakukan.
Kesimpulan
Model Time Series regression model ketika berhadapan dengan data deret waktu, teknik time series regression model mungkin tampak tidak seefisien untuk memberikan prediksi terbaik (dibandingkan misalnya dengan ARIMA atau metodologi lain yang dirancang khusus untuk analisis dan prediksi deret waktu). Kelebihannya dari Model Time Series Regresi adalah mengetahui arah dari hubungan antara variabel bebas dengan variabel terikat, apakah memiliki hubungan positif atau negatif serta untuk memprediksi nilai dari variabel terikat apabila nilai variabel bebas mengalami kenaikan ataupun penurunan. Menggunakan ketiga model dapat menghasilkan hasil akhir yang baik, karena semua model dapat menopang dan memberikan hasil yang memuaskan.