Data Penuh

Library dan Packages

library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.3.1
library(tsibble)
## Warning: package 'tsibble' was built under R version 4.3.1
## 
## 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.3.1
## Registered S3 method overwritten by 'quantmod':
##   method            from
##   as.zoo.data.frame zoo
library(MASS)
library(rio)
## Warning: package 'rio' was built under R version 4.3.1

Memasukkan Data

dt.set <- import("https://raw.githubusercontent.com/jonathanmarjonoxz/MPDW/main/Responsi1/Data_ProduksiKaretKering.csv")
View(dt.set) #Melihat data
str(dt.set) #Struktur data
## 'data.frame':    120 obs. of  2 variables:
##  $ Periode              : int  1 2 3 4 5 6 7 8 9 10 ...
##  $ Produksi Karet Kering: num  50 45.5 40.1 38.8 47.2 43.5 45.8 41.7 38.4 38.2 ...
dim(dt.set) #Dimensi data
## [1] 120   2

Plot Time Series

#Mengubah agar terbaca sebagai data deret waktu
dt.set.ts <- ts(dt.set$`Produksi Karet Kering`)
#Cara 1
ts.plot(dt.set.ts, xlab="Time Period", ylab="Produksi Karet Kering (Ton)", 
        main = "Time Series Plot")
points(dt.set.ts)

#Cara 2
plot_stas <-dt.set.ts |> as_tsibble() |> 
  ggplot(aes(x = index, y = value)) + geom_line() + theme_bw() +
  xlab("Time Period") + ylab("Produksi Karet Kering")
plot_stas

summary(dt.set.ts) #Menampilkan ringkasan data
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   31.00   40.15   45.52   48.24   51.88   85.09

Plot deret waktu di atas terlihat menunjukkan stasioner dalam rataan, ditandai dengan data yang menyebar di sekitar nilai tengahnya (48.24), serta tidak stasioner dalam ragam sebab lebar pita yang cenderung berbeda. Namun untuk lebih pastinya dapat dibuat plot ACF, uji ADF, serta plot Box-Cox.

Plot ACF

acf(dt.set.ts)

Berdasarkan plot ACF di atas, terlihat bahwa plot ACF data tersebut cenderung tails off dan membentuk gelombang sinus.

Uji ADF

\(H_0\): Data tidak stasioner dalam rataan

\(H_1\): Data stasioner dalam rataan

tseries::adf.test(dt.set.ts)
## Warning in tseries::adf.test(dt.set.ts): p-value smaller than printed p-value
## 
##  Augmented Dickey-Fuller Test
## 
## data:  dt.set.ts
## Dickey-Fuller = -4.8677, Lag order = 4, p-value = 0.01
## alternative hypothesis: stationary

Berdasarkan uji ADF, didapatkan 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 serta plot ACF.

Plot Boxcox

index <- seq(1:120)
bc = boxcox(dt.set.ts~index, lambda = seq(-5,4,by=0.01))

#Nilai rounded lambda
lambda <- bc$x[which.max(bc$y)]
lambda
## [1] -1.36
#SK
bc$x[bc$y > max(bc$y) - 1/2 * qchisq(.95,1)]
##   [1] -2.12 -2.11 -2.10 -2.09 -2.08 -2.07 -2.06 -2.05 -2.04 -2.03 -2.02 -2.01
##  [13] -2.00 -1.99 -1.98 -1.97 -1.96 -1.95 -1.94 -1.93 -1.92 -1.91 -1.90 -1.89
##  [25] -1.88 -1.87 -1.86 -1.85 -1.84 -1.83 -1.82 -1.81 -1.80 -1.79 -1.78 -1.77
##  [37] -1.76 -1.75 -1.74 -1.73 -1.72 -1.71 -1.70 -1.69 -1.68 -1.67 -1.66 -1.65
##  [49] -1.64 -1.63 -1.62 -1.61 -1.60 -1.59 -1.58 -1.57 -1.56 -1.55 -1.54 -1.53
##  [61] -1.52 -1.51 -1.50 -1.49 -1.48 -1.47 -1.46 -1.45 -1.44 -1.43 -1.42 -1.41
##  [73] -1.40 -1.39 -1.38 -1.37 -1.36 -1.35 -1.34 -1.33 -1.32 -1.31 -1.30 -1.29
##  [85] -1.28 -1.27 -1.26 -1.25 -1.24 -1.23 -1.22 -1.21 -1.20 -1.19 -1.18 -1.17
##  [97] -1.16 -1.15 -1.14 -1.13 -1.12 -1.11 -1.10 -1.09 -1.08 -1.07 -1.06 -1.05
## [109] -1.04 -1.03 -1.02 -1.01 -1.00 -0.99 -0.98 -0.97 -0.96 -0.95 -0.94 -0.93
## [121] -0.92 -0.91 -0.90 -0.89 -0.88 -0.87 -0.86 -0.85 -0.84 -0.83 -0.82 -0.81
## [133] -0.80 -0.79 -0.78 -0.77 -0.76 -0.75 -0.74 -0.73 -0.72 -0.71 -0.70 -0.69
## [145] -0.68 -0.67 -0.66 -0.65 -0.64 -0.63

Gambar di atas menunjukkan nilai rounded value \((\lambda)\) optimum sebesar -1.36 dan pada selang kepercayaan 95% nilai memiliki batas bawah -2.12 dan batas atas -0.63. Selang tersebut tidak memuat nilai satu sehingga dapat dikatakan bahwa data produksi karet kering tersebut tidak stasioner dalam ragam.

Partisi Data Bagian 1

Mempartisi Data

dt.set1 <- dt.set[1:25,-c(1)] |> ts()
mean(dt.set1)
## [1] 44.75
var(dt.set1)
## [1] 27.64625

Plot Time Series

dt.set1 |> as_tsibble() |> 
  ggplot(aes(x = index, y = value)) +
  geom_line() + theme_bw() +
  xlab("Time Period") + ylab("Produksi Karet Kering")

Plot deret waktu di atas menunjukkan bahwa data stasioner dalam rataan, ditandai data menyebar disekitar nilai tengahnya (44.75) serta stasioner dalam ragam, ditandai dengan lebar pita yang cenderung sama.

Plot ACF

acf(dt.set1)

Berdasarkan plot ACF di atas, terlihat bahwa plot ACF pada data tersebut cenderung tails off dan membentuk gelombang sinus.

Uji ADF

\(H_0\): Data tidak stasioner dalam rataan

\(H_1\): Data stasioner dalam rataan

tseries::adf.test(dt.set1)
## Warning in tseries::adf.test(dt.set1): p-value smaller than printed p-value
## 
##  Augmented Dickey-Fuller Test
## 
## data:  dt.set1
## Dickey-Fuller = -4.4201, Lag order = 2, p-value = 0.01
## alternative hypothesis: stationary

Berdasarkan uji ADF tersebut, didapatkan nilai p-value sebesar 0.01 yang lebih kecil dari taraf nyata 5%, maka akan menolak \(H_0\) sehingga menandakan bahwa data tersebut stasioner dalam rataan. Hal ini sesuai dengan hasil eksplorasi menggunakan plot time series dan plot ACF.

Plot Boxcox

index <- seq(1:25)
bc = boxcox(dt.set1~index, lambda = seq(-8,3,by=1))

#Nilai Rounded Lambda
lambda <- bc$x[which.max(bc$y)]
lambda
## [1] -2.222222
#SK
bc$x[bc$y > max(bc$y) - 1/2 * qchisq(.95,1)]
##  [1] -6.4444444 -6.3333333 -6.2222222 -6.1111111 -6.0000000 -5.8888889
##  [7] -5.7777778 -5.6666667 -5.5555556 -5.4444444 -5.3333333 -5.2222222
## [13] -5.1111111 -5.0000000 -4.8888889 -4.7777778 -4.6666667 -4.5555556
## [19] -4.4444444 -4.3333333 -4.2222222 -4.1111111 -4.0000000 -3.8888889
## [25] -3.7777778 -3.6666667 -3.5555556 -3.4444444 -3.3333333 -3.2222222
## [31] -3.1111111 -3.0000000 -2.8888889 -2.7777778 -2.6666667 -2.5555556
## [37] -2.4444444 -2.3333333 -2.2222222 -2.1111111 -2.0000000 -1.8888889
## [43] -1.7777778 -1.6666667 -1.5555556 -1.4444444 -1.3333333 -1.2222222
## [49] -1.1111111 -1.0000000 -0.8888889 -0.7777778 -0.6666667 -0.5555556
## [55] -0.4444444 -0.3333333 -0.2222222 -0.1111111  0.0000000  0.1111111
## [61]  0.2222222  0.3333333  0.4444444  0.5555556  0.6666667  0.7777778
## [67]  0.8888889  1.0000000  1.1111111  1.2222222  1.3333333  1.4444444
## [73]  1.5555556  1.6666667

Gambar di atas menunjukkan nilai rounded value \(\lambda\) optimum sebesar -2.22 dan pada selang kepercayaan 95% nilai memiliki batas bawah -6.44 dan batas atas 1.67. Selang tersebut memuat nilai 1 sehingga dapat dikatakan bahwa data potongan bagian 1 tersebut stasioner dalam ragam.

Partisi Data Bagian 2

Mempartisi Data

dt.set2 <- dt.set[1:100,-c(1)] |> ts()
mean(dt.set2)
## [1] 47.9311
var(dt.set2)
## [1] 113.7733

Plot Times Series

dt.set2 |> as_tsibble() |> 
  ggplot(aes(x = index, y = value)) +
  geom_line() + theme_bw() +
  xlab("Time Period") + ylab("Produksi Karet Kering")

Berdasarkan plot deret waktu di atas menunjukkan bahwa data stasioner dalam rataan, ditandai dengan data yang menyebar di sekitar nilai tengahnya (47.93), namun tidak stasioner dalam ragam, ditandai dengan lebar pita yang cenderung berbeda.

Plot ACF

acf(dt.set2)

Berdasarkan plot ACF, terlihat bahwa plot ACF pada data tersebut cenderung tails off dan membentuk gelombang sinus.

Uji ADF

\(H_0\): Data tidak stasioner dalam rataan

\(H_1\): Data stasioner dalam rataan

adf.test(dt.set2)
## Warning in adf.test(dt.set2): p-value smaller than printed p-value
## 
##  Augmented Dickey-Fuller Test
## 
## data:  dt.set2
## Dickey-Fuller = -4.0551, Lag order = 4, p-value = 0.01
## alternative hypothesis: stationary

Berdasarkan uji ADF tersebut, didapatkan nilai p-value sebesar 0.01 yang lebih kecil dari taraf nyata 5%. Oleh karena itu tolak \(H_0\) serta menandakan bahwa data tersebut stasioner dalam rataan. Hal ini sesuai dengan plot time series serta plot ACF.

Plot Boxcox

index <- seq(1:100)
bc = boxcox(dt.set2~index, lambda = seq(-6,4,by=1))

#Nilai Rounded Lambda
lambda <- bc$x[which.max(bc$y)]
lambda
## [1] -1.151515
#SK
bc$x[bc$y > max(bc$y) - 1/2 * qchisq(.95,1)]
##  [1] -1.9595960 -1.8585859 -1.7575758 -1.6565657 -1.5555556 -1.4545455
##  [7] -1.3535354 -1.2525253 -1.1515152 -1.0505051 -0.9494949 -0.8484848
## [13] -0.7474747 -0.6464646 -0.5454545 -0.4444444 -0.3434343

Berdasarkan nilai rounded value \(\lambda\) optimum sebesar -1.15 dan pada selang kepercayaan 95% nilai memiliki batas bawah -1.96 dan batas atas 0.34. Selang tersebut tidak memuat nilai satu sehingga dapat dikatakan bahwa pemotongan data bagian 2 tersebut tidak stasioner dalam ragam.