\documentclass[10pt]{article}

\usepackage{fullpage}
\usepackage{setspace}
\usepackage{parskip}
\usepackage{titlesec}
\usepackage[section]{placeins}
\usepackage{xcolor}
\usepackage{breakcites}
\usepackage{lineno}
\usepackage{hyphenat}





\PassOptionsToPackage{hyphens}{url}
\usepackage[colorlinks = true,
            linkcolor = blue,
            urlcolor  = blue,
            citecolor = blue,
            anchorcolor = blue]{hyperref}
\usepackage{etoolbox}
\makeatletter
\patchcmd\@combinedblfloats{\box\@outputbox}{\unvbox\@outputbox}{}{%
  \errmessage{\noexpand\@combinedblfloats could not be patched}%
}%
\makeatother


\usepackage[round]{natbib}
\let\cite\citep




\renewenvironment{abstract}
  {{\bfseries\noindent{\abstractname}\par\nobreak}\footnotesize}
  {\bigskip}

\titlespacing{\section}{0pt}{*3}{*1}
\titlespacing{\subsection}{0pt}{*2}{*0.5}
\titlespacing{\subsubsection}{0pt}{*1.5}{0pt}


\usepackage{authblk}


\usepackage{graphicx}
\usepackage[space]{grffile}
\usepackage{latexsym}
\usepackage{textcomp}
\usepackage{longtable}
\usepackage{tabulary}
\usepackage{booktabs,array,multirow}
\usepackage{amsfonts,amsmath,amssymb}
\providecommand\citet{\cite}
\providecommand\citep{\cite}
\providecommand\citealt{\cite}
% You can conditionalize code for latexml or normal latex using this.
\newif\iflatexml\latexmlfalse
\providecommand{\tightlist}{\setlength{\itemsep}{0pt}\setlength{\parskip}{0pt}}%

\AtBeginDocument{\DeclareGraphicsExtensions{.pdf,.PDF,.eps,.EPS,.png,.PNG,.tif,.TIF,.jpg,.JPG,.jpeg,.JPEG}}

\usepackage[utf8]{inputenc}
\usepackage[english]{babel}










\begin{document}

\title{Creating a Recurring Neural Network Based Model for Prediction of Air
Cargo \& Passenger Data in Singapore~ ~~~~~}



\author[1]{Praveen}%
\author[2]{fbianco}%
\affil[1]{New York University CUSP}%
\affil[2]{Affiliation not available}%


\vspace{-1em}



  
  \date{May 04, 2024}


\begingroup
\let\center\flushleft
\let\endcenter\endflushleft
\maketitle
\endgroup








\sloppy


\textbf{GitHub
Repository:~~\url{https://github.com/praveenashokkumar/Singapore\_Air\_Traffic}}

\par\null\par\null

\textbf{Problem Description:}

Singapore serves as the key transit hub for the whole of South East
Asia~and the Changi International Airport in Singapore serves is ranked
as one of the top~ten fastest growing airports in the world{[}7{]}. With
this rapid~growth~of traffic in the airport, it becomes very difficult
to predict the future growth of Air Cargo and Passenger Traffic in the
Singapore Changi Airport. To tackle this issue we have come up with a
Recurring Neural Network based model that would predict the future
trends of Air Cargo and Passenger Traffic in Singapore.~ This will not
only help in understanding the traffic trends but will also ensure that
the infrastructure and other resources are prepped up to handle this
traffic.

~

\textbf{Data:}

Singapore has one of the best open data availability. For this analysis
we utilize the following datasets from Singapore Open Data Website:

1. Total~Air cargo loaded, data available monthwise from Jan 1986 to
Present {[}1{]}~

2. Total Air cargo discharged, data available monthwise~from Jan 1986 to
Present~ {[}2{]},

3. Total Air~passenger arrivals, data available monthwise from~Jan 1961
to Present~ {[}3{]}.

~

There are datasets available for Air Cargo traffic for Every Country and
Region of the world but for the first phase of analysis and to
understand the traffic pattern in Singapore it is sufficient to study
the overall traffic embarking and departing from the airport. It is
quite an extensive dataset, considering the fact that the data is
available on a~monthly frequency as early as 1961 for Passenger traffic
and from 1986 for Air Cargo traffic. The data is Complete and there are
no incomplete values. However if we try to deep dive into the data we
see that the data for few countries are missing in the dataset as they
do not have a clear individual~track of them, but this not affect our
model as we focus only on the overall traffic and not individual
traffic.~

~

\textbf{Methodology:}

To Create a model that can predict the future Air-Cargo and Passenger
traffic we intend to use a Recurring Neural Network based prediction
model that is well suited to handle datasets that retain values over a
long period of time and are capable of learning long-term dependencies
(Long Short-Term Memory Networks - LSTM).~ Recurring Neural~network is
similar to a conventional neural network~model and the only difference
being that~RNN uses Sequential data from the past for predictions by
forming a chain of Artificial Neural Networks{[}4{]}.~

\par\null\selectlanguage{english}
\begin{figure}[h!]
\begin{center}
\includegraphics[width=0.70\columnwidth]{figures/RNN/RNN}
\caption{{A Recurrent Neural Network - A Chain of Artificial Neural Networks
{\label{436797}}%
}}
\end{center}
\end{figure}

Since the data is separated by a standard time interval of one month it
is not very important to know the exact dates and corresponding~values
but is critical to know the temporal change in data values. We try and
predict the data for the month after which the data is available, so we
consider t+1 time periods and run the problem as a regression problem.

For this analysis since we would be utilizing the Machine Learning based
deep learning concept of RNN, we would need to import the Keras Library
and SciKitLearn Library.~

To ensure the reproducibility of the results we set a random seed. We
then load the input CSV file as a pandas~dataframe and extract the Numpy
array from the dataframe and convert the integer values in them to float
values. The data is rescaled between 0 to 1 using MinMaxScaler class
from SciKit Learn Library to ensure that LSTM modeling is not affected
as LSTM is sensitive to the scale of input data. To create any Machine
LEarning based model it is essential to perform Cross-Validation. To do
this we need to separate the data we have to,~training data and testing
data. Typically we split the data as 67\% for training and 33\% for
testing. We then define a function that takes the dataset and the no. of
previous steps as inputs to assign the value of X (No. of Passengers at
time t) and Y (No. of Passengers at time t+1).~~

\par\null

For the LSTM network, we need to provide the value of time steps so we
reshape the~Numpy array to match the required format. The next step is
to fit the LSTM network model to this problem, for this we create a
Sequential model with 1 input layer, 4 LSTM blocks and 1 output layer.
We then train this network for 100 epochs and we use a batch size of
one. Once we are able to fit the model to the data we have we can
estimate the performance of the model and how well it performed on the
training and test datasets.{[}5{]}

\par\null

This would help us understand how closely the data orients towards our
model and if the model we have selected can be fit for our data. After
we fit the data we were able to assess the performance of the training
and testing data and also the overall performance of the model.We
generated predictions using the model for both the training and the test
dataset and then shifted the predictions to align with the x-axis of the
original data as we shifted earlier the training and the testing data
and observed the results from the plot generated.

\par\null

1. Running the Simulations for the Total Air Cargo Loaded Data:\selectlanguage{english}
\begin{figure}[h!]
\begin{center}
\includegraphics[width=0.70\columnwidth]{figures/CL/CL}
\caption{{This Figure shows the overall Air Cargo Loaded in Singapore in Tonnes as
a Function of Months
{\label{922424}}%
}}
\end{center}
\end{figure}



~\selectlanguage{english}
\begin{figure}[h!]
\begin{center}
\includegraphics[width=0.70\columnwidth]{figures/CLP/CLP}
\caption{{This Figure shows the Actual and Predicted values of the overall Air
Cargo Loaded in Singapore in Tonnes based on the Model. The Plot in Blue
is the Actual Value, in Orange is the Training~Value and in Green is the
predicted value
{\label{787298}}%
}}
\end{center}
\end{figure}

2. Running the Simulations for the Total Air Cargo Discharged Data: ~

\par\null\selectlanguage{english}
\begin{figure}[h!]
\begin{center}
\includegraphics[width=0.70\columnwidth]{figures/DC/DC}
\caption{{This Figure shows the overall Air Cargo Discharged in Singapore in
Tonnes as a Function of Months ~
{\label{679074}}%
}}
\end{center}
\end{figure}\selectlanguage{english}
\begin{figure}[h!]
\begin{center}
\includegraphics[width=0.70\columnwidth]{figures/DCP/DCP}
\caption{{This Figure shows the Actual and Predicted values of the overall Air
Cargo Discharged in Singapore in Tonnes based on the Model. The Plot in
Blue is the Actual Value, in Orange is the Training~Value and in Green
is the predicted value
{\label{557095}}%
}}
\end{center}
\end{figure}

~ 2. Running the Simulations for the Total Air Passenger Traffic Data:~

\par\null\selectlanguage{english}
\begin{figure}[h!]
\begin{center}
\includegraphics[width=0.70\columnwidth]{figures/PD/PD}
\caption{{This Figure shows the Total Air Passenger Traffic in Singapore in Tonnes
as a Function of Months ~
{\label{835039}}%
}}
\end{center}
\end{figure}

\par\null

~\selectlanguage{english}
\begin{figure}[h!]
\begin{center}
\includegraphics[width=0.70\columnwidth]{figures/DCP1/DCP1}
\caption{{This Figure shows the Actual and Predicted values of the Total Air
Passenger Traffic in Singapore in Tonnes based on the Model. The Plot in
Blue is the Actual Value, in Orange is the Training~Value and in Green
is the predicted value ~
{\label{256370}}%
}}
\end{center}
\end{figure}

\subsubsection*{}\label{section}

\textbf{Conclusion:}

The Test results for the different test cases considered have been
tabulated~as Below:

\par\null\par\null\selectlanguage{english}
\begin{table}[h!]
\centering
\normalsize\begin{tabulary}{1.0\textwidth}{CCCCC}
S.No. & Case & RMS Error  & RMS Error  & Max Sample Size \\
 &  & Training Set & Validation Set &  \\
1 & Cargo Loaded & 4903.41 & 6222.83 & 89912 \\
2 & Cargo Discharged & 4041.16 & 7713.78 & 103454 \\
3 & Passenger Traffic & 42357.51 & 302218.2 & 2838114 \\
\end{tabulary}
\caption{{Comparision of Simulation Results for Different Test Cases
{\label{580022}}%
}}
\end{table}We could see from the table that even though the graphs looked very
close to the actual value the error in the model is pretty high. this
might be due to the fact that there was rapid globalization during this
period and the gradient of the growth rate has varied at large. The
model somewhat holds good for the Air-Cargo data, however, it is pretty
bad for the Passenger Traffic Data. I was expecting a much closer
correlation and better prediction from the model given the fact that RNN
models are good at predicting long period based values, however, there
is a higher error than expected. The model may produce better results if
we reduce the timeframe and choose a much more stale~period.

\par\null

\textbf{Future Work:}

In this analysis, we used Simple Regression methodology of the RNN for
solving this problem. There are several other methods to perform
Regression such as Time Steps, Rolling window etc. that may produce much
better results. There is also a way to do with memory between batches
for LSTMs and also by Stacking LSTMs and then by applying Memory between
matches. They are of higher complexity and can be explored on the way
forward.{[}6{]}

\par\null

\textbf{References:}

{[}1{]} Data.gov.sg, ``Air Cargo Loaded - Total By Region and Selected
Country of Destination,'' data.gov.sg, {[}Online{]}. Available:
\url{https://data.gov.sg/dataset/air-cargo-loaded-total-by-region-and-selected-country-of-destination}.

{[}2{]}~Data.gov.sg, ``Total Air Cargo Discharged By Region and Country
Of Origin,'' data.gov.sg, {[}Online{]}. Available:
https://data.gov.sg/dataset/air-cargo-discharged-by-region-and-country-of-origin.

{[}3{]}~~Data.gov.sg, ``Air Passenger Arrivals - Total by Region and
Selected Country of Embarkation.,'' data.gov.sg, {[}Online{]}.
Available:
\url{https://data.gov.sg/dataset/air-passenger-arrivals-total-by-region-and-selected-country-of-embarkation}.

{[}4{]} Recurrent Neural Networks Tutorial, Part 1 -- Introduction to
RNNs by~ DENNY BRITZ ~ {[}Online{]}. Available:
\url{http://www.wildml.com/2015/09/recurrent-neural-networks-tutorial-part-1-introduction-to-rnns/}

{[}5{]}~Time Series Prediction with LSTM Recurrent Neural Networks in
Python with Keras~ {[}Online{]}.
Available:~\url{https://machinelearningmastery.com/time-series-prediction-lstm-recurrent-neural-networks-python-keras/}~

{[}6{]}~ Stacked Long Short-Term Memory Networks~ by~~Jason
Brownlee~~{[}Online{]}. Available:
~\url{https://machinelearningmastery.com/stacked-long-short-term-memory-networks/}

{[}7{]} ``Changi Airport among world's fastest growing hubs'' - The
Strait times~ {[}Online{]}.
Available:~\url{http://www.straitstimes.com/singapore/changi-airport-among-worlds-fastest-growing-hubs}

\par\null\par\null

\par\null

\selectlanguage{english}
\FloatBarrier
\end{document}

