#Pendefinisian library
library(readxl)
library(forecast)
## Warning: package 'forecast' was built under R version 4.4.2
## Registered S3 method overwritten by 'quantmod':
## method from
## as.zoo.data.frame zoo
library(ggplot2)
library(tseries)
## Warning: package 'tseries' was built under R version 4.4.2
library(lmtest)
## Warning: package 'lmtest' was built under R version 4.4.2
## Loading required package: zoo
##
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
##
## as.Date, as.Date.numeric
#PANI
TI <- read_excel("D:/kuliah/Semester 5/Teori Investasi/Data Historical Portofolio.xlsx")
## New names:
## • `Tanggal` -> `Tanggal...1`
## • `Tanggal` -> `Tanggal...3`
## • `Tanggal` -> `Tanggal...5`
View(TI)
head(TI)
## # A tibble: 6 × 6
## Tanggal...1 PANI Tanggal...3 INDF Tanggal...5 MLPT
## <dttm> <dbl> <dttm> <dbl> <dttm> <dbl>
## 1 2024-04-24 00:00:00 5250 2024-04-24 00:00:00 6050 2024-05-06 00:00:00 1620
## 2 2024-04-25 00:00:00 5150 2024-04-25 00:00:00 6200 2024-05-07 00:00:00 1425
## 3 2024-04-26 00:00:00 5000 2024-04-26 00:00:00 6050 2024-05-08 00:00:00 1405
## 4 2024-04-29 00:00:00 5000 2024-04-29 00:00:00 6175 2024-05-13 00:00:00 1320
## 5 2024-04-30 00:00:00 4930 2024-04-30 00:00:00 6250 2024-05-14 00:00:00 1285
## 6 2024-05-02 00:00:00 4730 2024-05-02 00:00:00 6225 2024-05-15 00:00:00 1200
PANI <- TI$PANI
PANI.Data <- ts(PANI, start = 1, end = 124, frequency = 1)
PANI.DataClean <- tsclean(PANI.Data)
kpss.test(PANI.DataClean) #Data appears to be stationary
## Warning in kpss.test(PANI.DataClean): p-value smaller than printed p-value
##
## KPSS Test for Level Stationarity
##
## data: PANI.DataClean
## KPSS Level = 1.9729, Truncation lag parameter = 4, p-value = 0.01
plot(PANI.DataClean)
acf(PANI.DataClean, lag.max = 125)
pacf(PANI.DataClean, lag.max = 125)
PANI.ARIMA1 <- auto.arima(PANI.DataClean, trace = TRUE)
##
## ARIMA(2,2,2) : 1663.584
## ARIMA(0,2,0) : 1708.137
## ARIMA(1,2,0) : 1687.91
## ARIMA(0,2,1) : 1661.507
## ARIMA(1,2,1) : 1659.562
## ARIMA(2,2,1) : 1661.623
## ARIMA(1,2,2) : 1661.465
## ARIMA(0,2,2) : 1659.844
## ARIMA(2,2,0) : 1677.006
##
## Best model: ARIMA(1,2,1)
predict(PANI.ARIMA1, n.ahead = 12)
## $pred
## Time Series:
## Start = 125
## End = 136
## Frequency = 1
## [1] 15276.42 15488.53 15707.85 15928.64 16149.72 16370.87 16592.02 16813.18
## [9] 17034.34 17255.50 17476.66 17697.81
##
## $se
## Time Series:
## Start = 125
## End = 136
## Frequency = 1
## [1] 212.3933 342.8693 451.9506 549.9615 641.8842 730.3234 816.7578
## [8] 902.0918 986.9138 1071.6245 1156.5073 1241.7679