Warning: package 'ggplot2' was built under R version 4.5.1
library(tsibble)
Warning: package 'tsibble' was built under R version 4.5.1
Registered S3 method overwritten by 'tsibble':
method from
as_tibble.grouped_df dplyr
Attaching package: 'tsibble'
The following objects are masked from 'package:base':
intersect, setdiff, union
library(tseries)
Warning: package 'tseries' was built under R version 4.5.1
Registered S3 method overwritten by 'quantmod':
method from
as.zoo.data.frame zoo
library(MASS)
Warning: package 'MASS' was built under R version 4.5.1
set.seed(8990)
Stasioner dalam Rataan dan Ragam
Pada dasarnya, pembangkitan data ARIMA akan menghasilkan data yang stasioner dalam rataan dan ragam karena akan mengikuti fungsi default-nya yang mengikuti pembangkitan bilangan acak normal dengan mean=0 dan ragam=1 .
Plot deret waktu di atas menunjukkan bahwa data stasioner dalam rataan, ditandai dengan data yang menyebar di sekitar nilai tengahnya (18) dan stasioner dalam ragam, ditandai dengan data berfluktuasi pada rentang yang relatif sama sepanjang waktu.
Plot ACF
acf(stas)
Berdasarkan plot ACF, terlihat bahwa plot ACF pada data tersebut cenderung tails off dan membentuk gelombang sinus.
Uji ADF
Uji ADF (Augmented Dickey–Fuller) adalah uji statistik yang digunakan untuk memeriksa apakah suatu deret waktu stasioner dalam rataan.
tseries::adf.test(stas)
Warning in tseries::adf.test(stas): p-value smaller than printed p-value
Augmented Dickey-Fuller Test
data: stas
Dickey-Fuller = -5.5322, Lag order = 5, p-value = 0.01
alternative hypothesis: stationary
\(H_0\) : Data tidak stasioner dalam rataan
\(H_1\) : Data stasioner dalam rataan
Berdasarkan uji ADF tersebut, didapat p-value sebesar 0.01 yang lebih kecil dari taraf nyata 5% sehingga tolak \(H_0\) dan menandakan bahwa data stasioner dalam rataan. Hal ini sesuai dengan hasil eksplorasi menggunakan plot time series dan plot ACF.
Plot Box-Cox
index <-seq(1:200)# Box-Coxbc <-boxcox( stas ~ index,lambda =seq(-1, 4, by =0.01))
# Nilai lambda optimumlambda <- bc$x[which.max(bc$y)]lambda
[1] 1.97
# Selang kepercayaan 95% untuk lambdaci_lambda <- bc$x[bc$y >max(bc$y) -0.5*qchisq(0.95, 1)]# Batas bawah dan batas atasci_lower <-min(ci_lambda)ci_upper <-max(ci_lambda)c(Batas_Bawah = ci_lower, Batas_Atas = ci_upper)
Batas_Bawah Batas_Atas
0.22 3.73
Gambar di atas menunjukkan nilai λ optimum (rounded value) sebesar 1,97 dan selang kepercayaan 95% nilai memiliki batas bawah 0,22 dan batas atas 3,73. Selang tersebut memuat nilai satu sehingga dapat dikatakan bahwa data bangkitan stasioner dalam ragam.
Catatan:
Fungsi boxcox() di R tidak dapat digunakan langsung pada data yang mengandung nilai nol atau negatif, meskipun hanya untuk tujuan estimasi λ. Hal ini karena perhitungan log-likelihood dalam Box–Cox mensyaratkan seluruh data bernilai positif.Jika dataset mengandung nilai nol atau negatif, maka perlu ditambahkan suatu konstanta positif pada seluruh data sehingga semua nilainya menjadi positif sebelum dilakukan analisis Box–Cox.
Partisi Data Deret Waktu
library(ggplot2)library(tsibble)plot_stas <- stas |>as_tsibble() |>ggplot(aes(x = index, y = value)) +geom_line() +theme_bw() +xlab("Obs") +ylab("Nilai") +# Tambahkan garis batasgeom_vline(xintercept =64, linetype ="dashed", color ="red") +geom_vline(xintercept =134, linetype ="dashed", color ="blue") +ggtitle("Partisi Deret Waktu:")plot_stas
Plot deret waktu di atas menunjukkan bahwa data stasioner dalam rataan, ditandai dengan data yang menyebar di sekitar nilai tengahnya (18) dan stasioner dalam ragam, ditandai dengan data berfluktuasi pada rentang yang relatif sama sepanjang waktu.
Plot ACF
acf(dt_stas1)
Berdasarkan plot ACF, terlihat bahwa plot ACF pada data tersebut cenderung tails off dan membentuk gelombang sinus.
Uji ADF
tseries::adf.test(dt_stas1)
Augmented Dickey-Fuller Test
data: dt_stas1
Dickey-Fuller = -3.5663, Lag order = 4, p-value = 0.043
alternative hypothesis: stationary
\(H_0\) : Data tidak stasioner dalam rataan
\(H_1\) : Data stasioner dalam rataan
Berdasarkan uji ADF tersebut, didapat p-value sebesar 0.043 yang lebih kecil dari taraf nyata 5% sehingga tolak \(H_0\) dan menandakan bahwa data stasioner dalam rataan. Hal ini sesuai dengan hasil eksplorasi menggunakan plot time series dan plot ACF.
Plot Boxcox
index <-seq(1, 67)# Box-Coxbc <-boxcox( dt_stas1 ~ index,lambda =seq(-2, 6, by =0.01))
# Nilai lambda optimum (dibulatkan)lambda <- bc$x[which.max(bc$y)]lambda
[1] 2.22
# Selang kepercayaan 95% untuk lambdaci_lambda <- bc$x[bc$y >max(bc$y) -0.5*qchisq(0.95, 1)]# Batas bawah dan batas atasci_lower <-min(ci_lambda)ci_upper <-max(ci_lambda)c(Batas_Bawah = ci_lower, Batas_Atas = ci_upper)
Batas_Bawah Batas_Atas
-1.03 5.57
Gambar di atas menunjukkan nilai rounded value (\(\lambda\)) optimum sebesar 2,2 dan pada selang kepercayaan 95% nilai memiliki batas bawah -1,03 dan batas atas 5,57. Selang tersebut memuat nilai satu sehingga dapat dikatakan bahwa data bangkitan stasioner dalam ragam.
Plot deret waktu di atas menunjukkan bahwa data stasioner dalam rataan, ditandai dengan data yang menyebar di sekitar nilai tengahnya (18) dan stasioner dalam ragam, ditandai dengan data berfluktuasi pada rentang yang relatif sama sepanjang waktu.
Plot ACF
acf(dt_stas2)
Berdasarkan plot ACF, terlihat bahwa plot ACF pada data tersebut cenderung tails off dan membentuk gelombang sinus.
Uji ADF
adf.test(dt_stas2)
Warning in adf.test(dt_stas2): p-value smaller than printed p-value
Augmented Dickey-Fuller Test
data: dt_stas2
Dickey-Fuller = -4.4004, Lag order = 5, p-value = 0.01
alternative hypothesis: stationary
\(H_0\) : Data tidak stasioner dalam rataan
\(H_1\) : Data stasioner dalam rataan
Berdasarkan uji ADF tersebut, didapat p-value sebesar 0.01 yang lebih kecil dari taraf nyata 5% sehingga tolak \(H_0\) dan menandakan bahwa data stasioner dalam rataan. Hal ini sesuai dengan hasil eksplorasi menggunakan plot time series dan plot ACF.
Plot Boxcox
index <-seq(1, 134)# Box-Coxbc <-boxcox( dt_stas2 ~ index,lambda =seq(0, 6, by =0.01))
# Nilai lambda optimumlambda <- bc$x[which.max(bc$y)]lambda
[1] 2.84
# Selang kepercayaan 95% untuk lambdaci_lambda <- bc$x[bc$y >max(bc$y) -0.5*qchisq(0.95, 1)]# Batas bawah dan batas atasci_lower <-min(ci_lambda)ci_upper <-max(ci_lambda)c(Batas_Bawah = ci_lower, Batas_Atas = ci_upper)
Batas_Bawah Batas_Atas
0.47 5.27
Gambar di atas menunjukkan nilai rounded value (\(\lambda\)) optimum sebesar 2,85 dan pada selang kepercayaan 95% nilai memiliki batas bawah 0,47 dan batas atas 5,27. Selang tersebut memuat nilai satu sehingga dapat dikatakan bahwa data bangkitan stasioner dalam ragam.
Tidak Stasioner dalam Rataan, Stasioner dalam Ragam
Bagaimana cara mensimulasikan data dengan tren tertentu?
Kunci dari simulasi tersebut berada di \(Y_{t}-Y_{t-1}\), atau first difference, atau selisih antara observasi di waktu ke \(t\) dan observasi sebelumnya. Jika suatu deret waktu memiliki tren naik, misal, maka selisih tersebut akan positif. Sebaliknya, jika suatu deret memiliki tren turun, maka selisih akan negatif. Jika suatu deret stasioner, selisih akan memiliki rata-rata nol.
Ini dapat diilustrasikan dengan fungsi cumsum. cumsum adalah jumlah kumulatif. Untuk mengerti logika dari pengunaan jumlah kumulatif, bayangkan ada deret waktu dengan nilai awal \(c\):
\[
Y_1 = c
\]
Lalu definsikan \(d_i\), di mana \(i = 2, 3, \ldots\) sebagai selisih observasi ke-i dengan observasi sebelumnya:
Atau, amatan di waktu ke \(t\) dapat ditemukan dari menambahkan amatan ke-1 dengan jumlah kumulatif perbedaan \(d_i\) sampai di waktu ke-t. Kode di bawah membuat data dengan proses tersebut. Ada tiga skenario, yaitu:
Selisih antara observasi dan observasi sebelumnya nol
Selisih antara observasi dan observasi sebelumnya positif
Selisih antara observasi dan observasi sebelumnya negatif
Dengan nilai awal 1 dan komponen \(e_t\) menyebar normal.
# Simulasi deret waktu dengan tren berbeda# Tanpa trennotrend <-1+cumsum(rep(0, 100)) +rnorm(100) |>ts()# Tren naikpostrend <-1+cumsum(rep(0.2, 100)) +rnorm(100) |>ts() # Tren turunnegtrend <-1+cumsum(rep(-0.2, 100)) +rnorm(100) |>ts()
Hasil yang muncul dapat di-plot (note, untuk plotting ini digunakan ggplot2; ts.plot() dapat digunakan - ini tergantung preferensi saja):
Dapat disimulasikan proses MA atau AR yang tidak stasioner dengan suatu tren dengan mensimulasikan beda terlebih dahulu (menggunakan arima.sim), ditambah suatu konstanta, lalu mencari jumlah kumulatif. Terdapat juga parameter mean di fungsi arima.sim, tetapi parameter ini adalah parameter untuk \(E[e_t]\), bukan \(E[Y_t-Y_{t-1}]\). Proses dari nilai harapan rg2 noise tertentu menjadi nilai harapan \(Y\) di suatu proses MA atau AR yang tak stasioner sangat tergantung pada model, yang diilustrasikan disini.
startSpot <-3# Cara 1: tambah konstanta 1.5 di selisihdt <-ts(arima.sim(n =100,list(order =c(1,0,1), ar =0.2, ma =0.2),sd =2) +1.5)yt <-ts(startSpot +cumsum(dt))# Cara 2: gunakan mean = 1.5 di arima.simdt_alt <-ts(arima.sim(n =100,list(order =c(1,0,1), ar =0.2, ma =0.2),mean =1.5, sd =2))yt_alt <-ts(startSpot +cumsum(dt_alt))# Plot hasil simulasiplot_dt <- dt |>as_tsibble() |>ggplot(aes(x = index, y = value)) +geom_line() +theme_bw() +xlab("Obs") +ylab("Nilai") +ggtitle("Penambahan konstanta 1.5 di selisih")plot_yt <- yt |>as_tsibble() |>ggplot(aes(x = index, y = value)) +geom_line() +theme_bw() +xlab("Obs") +ylab("Nilai")plot_dt_alt <- dt_alt |>as_tsibble() |>ggplot(aes(x = index, y = value)) +geom_line() +theme_bw() +xlab("Obs") +ylab("Nilai") +ggtitle("Mean 1.5 di parameter arima.sim")plot_yt_alt <- yt_alt |>as_tsibble() |>ggplot(aes(x = index, y = value)) +geom_line() +theme_bw() +xlab("Obs") +ylab("Nilai")# Gabungkan Plotggpubr::ggarrange(plot_dt, plot_yt, plot_dt_alt, plot_yt_alt)
Terlihat di contoh di atas bahwa menambahkan konstanta 1.5 pada hasil arima.sim beda dengan memasukkan parameter mean = 1.5.
Berdasarkan plot time series tersebut, terlihat bahwa data tidak stasioner dalam rataan, ditandai dengan adanya kecenderungan (tren) positif, tetapi stasioner dalam ragam, ditandai dengan adanya lebar pita pada plot yang cenderung sama.
acf(postrend)
Plot ACF postrend menunjukkan korelasi yang menurun secara perlahan pada banyak lag, sehingga menjadi indikasi kuat bahwa deret tidak stasioner.
Uji ADF
tseries::adf.test(postrend)
Augmented Dickey-Fuller Test
data: postrend
Dickey-Fuller = -1.9413, Lag order = 5, p-value = 0.6007
alternative hypothesis: stationary
Berdasarkan uji ADF tersebut, didapat p-value lebih besar dari taraf nyata 5% sehingga gagal tolak \(H_0\) dan menandakan bahwa data tidak stasioner dalam rataan. Hal ini sesuai dengan hasil eksplorasi menggunakan plot time series dan plot ACF.
Plot Box-Cox
index <-seq(1, 200)# Uji Box-Coxbc <-boxcox( postrend ~ index,lambda =seq(0.8, 1.1, by =0.001))
# Nilai lambda optimumlambda <- bc$x[which.max(bc$y)]lambda
[1] 0.961
# Selang kepercayaan 95% untuk lambdaci_lambda <- bc$x[bc$y >max(bc$y) -0.5*qchisq(0.95, 1)]# Batas bawah dan batas atasci_lower <-min(ci_lambda)ci_upper <-max(ci_lambda)c(Batas_Bawah = ci_lower, Batas_Atas = ci_upper)
Batas_Bawah Batas_Atas
0.900 1.022
Differencing
Dalam analisis deret waktu, differencing merupakan salah satu prosedur transformasi yang digunakan untuk memperoleh sifat stasioneritas dalam rataan. Metode ini dilakukan dengan menghitung selisih nilai observasi antar periode sehingga pola tren atau ketidakstasioneran dalam rataan dapat dieliminasi.
Secara umum, pembedaan pertama ditulis sebagai:
\[
\nabla Y_t = Y_t - Y_{t-1}
\]
Jika tren linier masih tersisa/ belum stasioner, dapat dilakukan differencing kedua: \[
\nabla^2 Y_t = \nabla (\nabla Y_t) = Y_t - 2Y_{t-1} + Y_{t-2}
\]
Dengan cara ini, data yang awalnya tidak stasioner dapat ditransformasi menjadi stasioner sehingga bisa digunakan dalam pemodelan. Di dalam R, proses differencing dapat dilakukan dengan fungsi:
diff(y, differences = 1) → untuk differencing pertama.
diff(y, differences = 2) → untuk differencing kedua.
# Differencing pertama pada postrendpostrend_diff1 <-diff(postrend, differences =1)# Plot hasil differencingts.plot(postrend_diff1,main ="First-order Differencing dari postrend",col ="blue", lwd =2)
Plot ACF
acf(postrend_diff1)
Uji ADF
adf.test(postrend_diff1)
Warning in adf.test(postrend_diff1): p-value smaller than printed p-value
Augmented Dickey-Fuller Test
data: postrend_diff1
Dickey-Fuller = -5.52, Lag order = 5, p-value = 0.01
alternative hypothesis: stationary
Berdasarkan uji ADF tersebut, didapat p-value sebesar 0.01 yang lebih kecil dari taraf nyata 5% sehingga tolak \(H_0\) dan menandakan bahwa data sudah stasioner dalam rataan. Hal ini sesuai dengan hasil eksplorasi menggunakan plot time series dan plot ACF.
Partisi Data
postrend |>as_tsibble() |>ggplot(aes(x = index, y = value)) +geom_line() +geom_vline(xintercept =100, linetype ="dashed", color ="red") +theme_bw()
Berdasarkan plot deret waktu, data terlihat stasioner dalam rataan karena tidak menunjukkan adanya tren maupun pola musiman. Namun, data belum stasioner dalam ragam, yang ditunjukkan oleh adanya perbedaan besar-kecilnya fluktuasi pada plot.
Plot ACF
acf(dtgab)
Berdasarkan plot ACF, terlihat bahwa data stasioner dalam rataan.
Uji ADF
adf.test(dtgab)
Warning in adf.test(dtgab): p-value smaller than printed p-value
Augmented Dickey-Fuller Test
data: dtgab
Dickey-Fuller = -5.1553, Lag order = 5, p-value = 0.01
alternative hypothesis: stationary
\(H_0\) : Data tidak stasioner dalam rataan
\(H_1\) : Data stasioner dalam rataan
Berdasarkan uji ADF tersebut, didapat p-value sebesar 0.01 yang kurang dari taraf nyata 5% dan menandakan bahwa data stasioner dalam rataan. Hal ini sesuai dengan hasil eksplorasi menggunakan plot time series dan plot ACF.
Plot Box Cox
index <-seq(1:200)# Uji Box-Coxbc <-boxcox( dtgab -min(dtgab) +1~ index,lambda =seq(0, 5, by =0.001))
# Nilai lambda optimum (dibulatkan)lambda <- bc$x[which.max(bc$y)]lambda
[1] 0.679
# Selang kepercayaan 95% untuk lambdaci_lambda <- bc$x[bc$y >max(bc$y) -0.5*qchisq(0.95, 1)]# Batas bawah dan batas atasci_lower <-min(ci_lambda)ci_upper <-max(ci_lambda)c(Batas_Bawah = ci_lower, Batas_Atas = ci_upper)
Batas_Bawah Batas_Atas
0.479 0.890
Hasil uji Box–Cox menunjukkan bahwa nilai λ optimum adalah 0,679 dengan interval kepercayaan 95% sebesar (0,479–0,890). Karena selang tersebut tidak memuat nilai λ = 1, maka dapat disimpulkan bahwa data tidak stasioner dalam ragam sehingga diperlukan transformasi.
Transformasi Box–Cox
Transformasi Box–Cox atau transformasi pangkat digunakan untuk menangani deret yang tidak stasioner dalam ragam.
Catatan:
Transformasi pangkat hanya dapat diterapkan pada data yang bernilai positif.
Apabila terdapat nilai nol atau negatif, maka suatu konstanta positif perlu ditambahkan pada seluruh data agar semuanya bernilai positif sebelum dilakukan transformasi.
# Data digeser agar positify_shift <- dtgab -min(dtgab) +1# Transformasi Box-Cox dengan lambda ~ 0.5 (akar kuadrat)y_bc <- y_shift^0.5
index <-seq(1:200)# Uji Box-Coxbc <-boxcox( y_bc ~ index,lambda =seq(0, 5, by =0.001))
# Nilai lambda optimum (dibulatkan)lambda <- bc$x[which.max(bc$y)]lambda
[1] 1.359
# Selang kepercayaan 95% untuk lambdaci_lambda <- bc$x[bc$y >max(bc$y) -0.5*qchisq(0.95, 1)]# Batas bawah dan batas atasci_lower <-min(ci_lambda)ci_upper <-max(ci_lambda)c(Batas_Bawah = ci_lower, Batas_Atas = ci_upper)
Berdasarkan plot time series tersebut, terlihat bahwa data cenderung stasioner dalam rataan, ditandain dengan tidak adanya trend dan musiman pada data, serta stasioner dalam ragam, ditandai dengan lebar pita yang cenderung sama pada plot tersebut
Plot ACF
acf(dtgab1)
Berdasarkan plot ACF, terlihat bahwa data cenderung stasioner dalam rataan ditandai dengan plot ACF yang tails off dan cenderung membentuk gelombang sinus
Uji ADF
adf.test(dtgab1)
Warning in adf.test(dtgab1): p-value smaller than printed p-value
Augmented Dickey-Fuller Test
data: dtgab1
Dickey-Fuller = -4.5366, Lag order = 4, p-value = 0.01
alternative hypothesis: stationary
\(H_0\) : Data tidak stasioner dalam rataan
\(H_1\) : Data stasioner dalam rataan
Berdasarkan uji ADF tersebut, didapat p-value sebesar 0.01691 yang kurang dari taraf nyata 5% dan menandakan bahwa data stasioner dalam rataan. Hal ini sesuai dengan hasil eksplorasi menggunakan plot time series dan plot ACF
Plot Boxcox
index <-seq(80:200)bc =boxcox(dtgab1+25~index, lambda =seq(0,6,by=1))
Berdasarkan plot data deret waktu tersebut, terlihat bahwa data stasioner dalam rataan, ditandai dengan data yang tidak menunjukkan adanya trend ataupun musiman, serta tidak stasioner dalam ragam ditandai dengan lebar pita pada plot yang cenderung berbeda di beberapa periode waktunya
Plot ACF
acf(dtgab2)
Berdasarkan plot ACF tersebut, terlihat bahwa data stasioner dalam rataan ditandai dengan plot ACF yang cuts off pada lag ke 2
Uji ADF
adf.test(dtgab2)
Warning in adf.test(dtgab2): p-value smaller than printed p-value
Augmented Dickey-Fuller Test
data: dtgab2
Dickey-Fuller = -4.1739, Lag order = 5, p-value = 0.01
alternative hypothesis: stationary
\(H_0\) : Data tidak stasioner dalam rataan
\(H_1\) : Data stasioner dalam rataan
Berdasarkan uji ADF tersebut, didapat p-value sebesar 0.01383 yang kurang dari taraf nyata 5% dan menandakan bahwa data stasioner dalam rataan. Hal ini sesuai dengan hasil eksplorasi menggunakan plot time series dan plot ACF
index <-seq(1:132)# Uji Box-Coxbc <-boxcox( dtgab2 +15~ index,lambda =seq(-2, 5, by =0.001))
# Nilai lambda optimum (dibulatkan)lambda <- bc$x[which.max(bc$y)]lambda
[1] -0.35
# Selang kepercayaan 95% untuk lambdaci_lambda <- bc$x[bc$y >max(bc$y) -0.5*qchisq(0.95, 1)]# Batas bawah dan batas atasci_lower <-min(ci_lambda)ci_upper <-max(ci_lambda)c(Batas_Bawah = ci_lower, Batas_Atas = ci_upper)
Batas_Bawah Batas_Atas
-0.944 0.236
Tidak Stasioner dalam Rataan dan Ragam
Hal ini dapat disimulasikan dengan membangkitkan data yang tidak stasioner dalam ragam lalu membentuk trend menggunakan data tersebut
Berdasarkan plot time series tersebut, terlihat bahwa data tidak stasioner dalam rataan, ditandai dengan adanya trend pada data dan tidak stasioner dalam ragam, ditandai dengan adanya perbedaan lebar pita pada plot
Plot ACF
acf(dt_rg)
Berdasarkan plot ACF, terlihat bahwa plot ACF pada data tersebut menurun secara perlahan (tails off slowly) yang menandakan data tidak stasioner dalam rataan
Uji ADF
adf.test(dt_rg)
Augmented Dickey-Fuller Test
data: dt_rg
Dickey-Fuller = -1.8362, Lag order = 5, p-value = 0.6447
alternative hypothesis: stationary
\(H_0\) : Data tidak stasioner dalam rataan
\(H_1\) : Data stasioner dalam rataan
Berdasarkan uji ADF tersebut, didapat p-value sebesar 0.6447 yang lebih besar dari taraf nyata 5% dan menandakan bahwa data tidak stasioner dalam rataan. Hal ini sesuai dengan hasil eksplorasi menggunakan plot time series dan plot ACF.
index <-seq(1:200)# Uji Box-Coxbc <-boxcox( dt_rg ~ index,lambda =seq(-2, 5, by =0.001))
# Nilai lambda optimum (dibulatkan)lambda <- bc$x[which.max(bc$y)]lambda
[1] 1.47
# Selang kepercayaan 95% untuk lambdaci_lambda <- bc$x[bc$y >max(bc$y) -0.5*qchisq(0.95, 1)]# Batas bawah dan batas atasci_lower <-min(ci_lambda)ci_upper <-max(ci_lambda)c(Batas_Bawah = ci_lower, Batas_Atas = ci_upper)
Batas_Bawah Batas_Atas
1.148 1.805
differencing
# Differencing pertama pada postrenddt_rg_diff1 <-diff(dt_rg, differences =1)
index <-seq(1:199)# Uji Box-Coxbc <-boxcox( dt_rg_diff1 -min(dt_rg_diff1) +1~ index,lambda =seq(0, 5, by =0.001))
# Nilai lambda optimum (dibulatkan)lambda <- bc$x[which.max(bc$y)]lambda
[1] 1.238
# Selang kepercayaan 95% untuk lambdaci_lambda <- bc$x[bc$y >max(bc$y) -0.5*qchisq(0.95, 1)]# Batas bawah dan batas atasci_lower <-min(ci_lambda)ci_upper <-max(ci_lambda)c(Batas_Bawah = ci_lower, Batas_Atas = ci_upper)
Berdasarkan plot time series tersebut, terlihat bahwa data tidak stasioner dalam rataan karena masih terdapat tren pada data, namun cenderung stasioner dalam ragam karena memiliki lebar pita yang cenderung sama
Plot ACF
acf(dt_rg1)
Berdasarkan plot ACF, terlihat bahwa plot ACF pada data tersebut menurun secara perlahan (tails off slowly) yang menandakan data tidak stasioner dalam rataan
Uji ADF
adf.test(dt_rg1)
Augmented Dickey-Fuller Test
data: dt_rg1
Dickey-Fuller = -1.7373, Lag order = 4, p-value = 0.6816
alternative hypothesis: stationary
\(H_0\) : Data tidak stasioner dalam rataan
\(H_1\) : Data stasioner dalam rataan
Berdasarkan uji ADF tersebut, didapat p-value sebesar 0.6816 yang lebih besar dari taraf nyata 5% dan menandakan bahwa data tidak stasioner dalam rataan. Hal ini sesuai dengan hasil eksplorasi menggunakan plot time series dan plot ACF
Berdasarkan plot time series tersebut, terlihat bahwa data tidak stasioner dalam rataan karena masih terdapat tren pada data, dan tidak stasioner dalam ragam karena memiliki lebar pita yang cenderung tidak sama
Plot ACF
acf(dt_rg2)
Berdasarkan plot ACF, terlihat bahwa plot ACF pada data tersebut menurun secara perlahan (tails off slowly) yang menandakan data tidak stasioner dalam rataan
Uji ADF
adf.test(dt_rg2)
Augmented Dickey-Fuller Test
data: dt_rg2
Dickey-Fuller = -1.3767, Lag order = 4, p-value = 0.8315
alternative hypothesis: stationary
\(H_0\) : Data tidak stasioner dalam rataan
\(H_1\) : Data stasioner dalam rataan
Berdasarkan uji ADF tersebut, didapat p-value sebesar 0.9202 yang lebih besar dari taraf nyata 5% dan menandakan bahwa data tidak stasioner dalam rataan. Hal ini sesuai dengan hasil eksplorasi menggunakan plot time series dan plot ACF
index <-seq(1:84)# Uji Box-Coxbc <-boxcox( dt_rg2 ~ index,lambda =seq(0, 6, by =1))
# Nilai lambda optimum (dibulatkan)lambda <- bc$x[which.max(bc$y)]lambda
[1] 2.181818
# Selang kepercayaan 95% untuk lambdaci_lambda <- bc$x[bc$y >max(bc$y) -0.5*qchisq(0.95, 1)]# Batas bawah dan batas atasci_lower <-min(ci_lambda)ci_upper <-max(ci_lambda)c(Batas_Bawah = ci_lower, Batas_Atas = ci_upper)
Berdasarkan plot time series tersebut, terlihat bahwa data tidak stasioner dalam rataan karena masih terdapat tren pada data, namun cenderung stasioner dalam ragam karena memiliki lebar pita yang cenderung sama
Plot ACF
acf(dt_rg3)
Berdasarkan plot ACF, terlihat bahwa plot ACF pada data tersebut menurun secara perlahan (tails off slowly)yang menandakan data tidak stasioner dalam rataan
Uji ADF
tseries::adf.test(dt_rg3,k=5)
Augmented Dickey-Fuller Test
data: dt_rg3
Dickey-Fuller = -3.1927, Lag order = 5, p-value = 0.0984
alternative hypothesis: stationary
\(H_0\) : Data tidak stasioner dalam rataan
\(H_1\) : Data stasioner dalam rataan
Berdasarkan uji ADF tersebut, didapat p-value sebesar 0.323 yang lebih besar dari taraf nyata 5% dan menandakan bahwa data tidak stasioner dalam rataan. Hal ini tidak sesuai dengan hasil eksplorasi menggunakan plot time series dan plot ACF