Time Series is everywhere and we often meet. You may be able to see that in the data on the number of airplane passengers, weather predictions, stock price indexes, or during the pandemic the time series can be seen from the data on the number of people exposed to COVID-19.
Ok, maybe you are familiar with it. Now, what exactly is a time series?
A time series can be defined as a collection of consecutive observations or sequential over time. Each observation can be correlated, where the current observation Xt is influenced by the previous observation Xt−1. Thus, the order of the observations is important.
From the previous example, it is a univariate type of time series because it only consists of one type of observation at each time point. In addition, there are multivariate time series types, as the name implies, in this type, there is more than one observation at each point in time. For example, it is possible at a certain point in time to predict not only the weather but also temperature, and humidity, where wheater, temperature, or humidity might influence each other.
One of the purposes of time series analysis is to forecast or predict the future. The analytical methods used can use methods from classical statistics to deep learning. For further details on this blog, analytical practice will be carried out, but only focus on univariate time series. We want to forecast the stock price of PT. Bank Central Asia, Tbk. (BBCA.JK)
The data used is BBCA Daily Close Stock Price sourced from yahoo finance which is taken from the period 2018 - 2022. For analysis, I use Google Colab so I need to install and import the required libraries.
!pip install pmdarima !pip install prophet
!pip install chart-studio
import pandas as pd import numpy as np import matplotlib.pyplot as plt import plotly.graph_objects as go import plotly.io as pio from pmdarima.arima.utils import ndiffs from statsmodels.tsa.seasonal import seasonal_decompose from statsmodels.tsa.stattools import adfuller, kpss from statsmodels.graphics.tsaplots import plot_acf, plot_pacf from statsmodels.tsa.arima.model import ARIMA from sklearn.metrics import mean_absolute_percentage_error, mean_squared_error from sklearn.preprocessing import StandardScaler, MinMaxScaler import tensorflow as tf from tensorflow.keras.preprocessing.sequence import TimeseriesGenerator from prophet import Prophet
Next, import the data. Take the Date and Close columns for modeling. Perform data preprocessing by changing the Date data format to datetime format.
df = pd.read_csv("/content/BBCA.JK.csv") df = df[['Date', 'Close']] df.loc[:, 'Date'] = pd.to_datetime(df.loc[:, 'Date'<