#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