library(readxl)
library(tseries)
## Registered S3 method overwritten by 'quantmod':
## method from
## as.zoo.data.frame zoo
library(urca)
library(tseries)
data.sales = read_excel("C:\\Users\\MUTHI'AH IFFA\\Downloads\\Semester 5\\MPDW\\Praktikum\\Tugas Mandiri Iffa_MPDW_(store sales) 301_400.xlsx")
data.sales
## # A tibble: 100 Ć 2
## Date Total_Sales
## <dttm> <dbl>
## 1 2022-10-28 00:00:00 238.
## 2 2022-10-29 00:00:00 204.
## 3 2022-10-30 00:00:00 207.
## 4 2022-10-31 00:00:00 250.
## 5 2022-11-01 00:00:00 236.
## 6 2022-11-02 00:00:00 286.
## 7 2022-11-03 00:00:00 226.
## 8 2022-11-04 00:00:00 214.
## 9 2022-11-05 00:00:00 230.
## 10 2022-11-06 00:00:00 204.
## # ā¹ 90 more rows
str(data.sales)
## tibble [100 Ć 2] (S3: tbl_df/tbl/data.frame)
## $ Date : POSIXct[1:100], format: "2022-10-28" "2022-10-29" ...
## $ Total_Sales: num [1:100] 238 204 207 250 236 ...
head(data.sales)
## # A tibble: 6 Ć 2
## Date Total_Sales
## <dttm> <dbl>
## 1 2022-10-28 00:00:00 238.
## 2 2022-10-29 00:00:00 204.
## 3 2022-10-30 00:00:00 207.
## 4 2022-10-31 00:00:00 250.
## 5 2022-11-01 00:00:00 236.
## 6 2022-11-02 00:00:00 286.
# Ammbil kolom nilai penjualan
y = data.sales$Total_Sales
head(y)
## [1] 238.49 204.26 207.48 250.01 236.39 286.10
# Buat Objek Time series
ts.data = ts(y, frequency = 1, start = 1) # frequency 1 karena data berjumlah 100
head(ts.data)
## Time Series:
## Start = 1
## End = 6
## Frequency = 1
## [1] 238.49 204.26 207.48 250.01 236.39 286.10
data bulanan ā> frquency = 12 (karena 12 bulan/tahun)
data kuartal ā> frequency = 4
data harian satu tahun penuh ā> frequency = 365
tidak tahu ada musiman/data pendek ā> frequency = 1
# Plot deret waktu
plot(ts.data,
main = "Total Sales (Time Series)",
ylab = "Total Sales",
xlab = "Observation (1-100)")
Data tidak menunjukkan adanya tren/musiman terlihat jelas.
Pergerakan rataan relatif konstan di sekitar 240.
Ragam juga cenderung stabil karena sebaran data cenderung terlihat sama.
Artinya dari grafik dapat diasumsikan bahwa data sudah stationer, namun agar lebih terlihat dan teruji bahwa data stationer akan dilakukan beberapa uji.
# Plot ACF dan PACF
acf(ts.data, main = "ACF - Total Sales") # plot ACF
pacf(ts.data, main = "PACF - Total Sales") # plot PACF
ADF test mendeteksi unit root
\(H_0\) = data tidak stationer
\(H_1\) = data stationer
tolak \(H_0\) ketika < 0.05
# Uji ADF
adf.test(ts.data)
## Warning in adf.test(ts.data): p-value smaller than printed p-value
##
## Augmented Dickey-Fuller Test
##
## data: ts.data
## Dickey-Fuller = -6.0915, Lag order = 4, p-value = 0.01
## alternative hypothesis: stationary
\(p-value\) berdasarkan uji ADF bernilai 0.01, artinya \(p-value\) < 0.05 maka tolak \(H_0\). Artinya dapat disimpulkan data sudah stationer.
KPSS test mendeteksi kestationeran di sekitar mean atau tren
\(H_0\) = data stationer
\(H_1\) = data tidak stationer
tolak \(H_0\) ketika p-value < 0.05
# Uji KPSS
kpss.test(ts.data)
## Warning in kpss.test(ts.data): p-value greater than printed p-value
##
## KPSS Test for Level Stationarity
##
## data: ts.data
## KPSS Level = 0.21043, Truncation lag parameter = 4, p-value = 0.1
\(p-value\) berdasarkan uji KPSS bernilai 0.121043 artinya \(p-value\) > 0.05 maka gagal tolak \(H_0\). Artinya dapat disimpulkan data sudah stationer.