# Modelling the Behaviour of Currency Exchange Rates with Singular Spectrum Analysis and Artificial Neural Networks

^{1}

^{2}

^{3}

^{*}

## Abstract

**:**

## 1. Introduction

## 2. Materials and Methods

#### 2.1. The Data

#### 2.2. Autoregressive Integrated Moving Average (ARIMA) Model

#### 2.3. Artificial Neural Network (ANN)

#### 2.4. Singular Spectrum Analysis (SSA)

#### 2.4.1. First Stage: Decomposition

**1st step: Embedding**. Let ${y}_{1},\dots ,{y}_{N}$ be a time series of length N. Considering a window length L the result of this step is a $L\times K$ matrix $\mathbf{Y}=\left(\right)open="["\; close="]">{\mathbf{Y}}_{1}:\dots :{\mathbf{Y}}_{K}$, where $K=N-L+1$ and ${Y}_{i}={({y}_{i},\dots ,{y}_{i+L-1})}^{T},\phantom{\rule{4pt}{0ex}}1\le i\le K$.

**2nd step: Singular value decomposition (SVD)**. In this step, the matrix $\mathbf{Y}$ will be decomposed using SVD as $\mathbf{Y}={\mathbf{Y}}_{1}+\cdots +{\mathbf{Y}}_{L}$, where ${\mathbf{Y}}_{i}=\sqrt{{\lambda}_{i}}{U}_{i}{{V}_{i}}^{T}$, ${\mathbf{Y}}_{i}=\mathbf{0}$ when ${\lambda}_{i}=0$, and ${V}_{i}={\mathbf{Y}}^{T}{U}_{i}/\sqrt{{\lambda}_{i}}$ with ${\lambda}_{1},\dots ,{\lambda}_{L},$ the eigenvalues of $\mathbf{Y}{\mathbf{Y}}^{T}$ and ${U}_{1},\dots ,{U}_{L},$ the corresponding eigenvectors.

#### 2.4.2. Second Stage: Reconstruction

**3rd step: Grouping**. The grouping step corresponds to splitting the elementary matrices into m disjunct subsets ${I}_{1},\dots ,{I}_{m}$, and summing the matrices within each group. In our application we will focus on $m=2$, i.e., only two groups. ${I}_{1}=\{1,\dots ,r\}$ and ${I}_{2}=\{r+1,\dots ,L\}$ are associated with the signal and noise components, respectively.

**4th step: Diagonal averaging**. This step transforms each matrix ${\mathbf{Y}}_{{I}_{j}}$ into a new series of length N. Using diagonal averaging we have that $\mathbf{Y}={\tilde{\mathbf{Y}}}_{{I}_{1}}+\cdots +{\tilde{\mathbf{Y}}}_{{I}_{m}}$, where ${\tilde{\mathbf{Y}}}_{{I}_{j}}$ is the Hankelized form of ${\mathbf{Y}}_{{I}_{j}}$, $j=1,\dots ,m$. Considering ${\tilde{y}}_{m,n}^{\left({I}_{j}\right)}$ the ${(m,n)}^{th}$ entry of the estimated matrix ${\tilde{\mathbf{Y}}}_{{I}_{j}}$ and denoting by $\left(\right)$ the reconstructed components in the matrix ${\tilde{\mathbf{Y}}}_{{I}_{j}}$, $j=1,\dots ,m,$ applying diagonal averaging follows that

#### 2.4.3. Third Stage: Forecasting

#### 2.4.4. SSA Parameter Selection

#### 2.5. Multivariate Singular Spectrum Analysis (MSSA)

#### 2.5.1. First Stage: Decomposition

**1st step: Embedding**. Considering the window length L, a full augmented trajectory matrix is constructed by a L-dimensional embedding of the time series with lag l, resulting in a block Hankel trajectory matrix $\mathbf{Y}$. Suppose ${\mathbf{Y}}^{\left(m\right)},m=1,\dots ,M,$ denotes the Hankel matrix of dimension $L\times k$, $k=T-L+1$, associated with the time series m, $m=1,\dots ,M$. The trajectory matrix in MSSA can be defined as two different alternatives:

**Horizontal form**:$$\mathbf{Y}=\left(\right)open="["\; close="]">{\mathbf{Y}}^{\left(1\right)},\dots ,{\mathbf{Y}}^{\left(M\right)}$$**Vertical form**:$$\mathbf{Y}=\left(\right)open="["\; close="]">\begin{array}{c}{\mathbf{Y}}^{\left(1\right)}\\ \vdots \\ {\mathbf{Y}}^{\left(M\right)}\end{array}$$

**2nd step: Singular value decomposition**. Let $\mathbf{U}=[{U}_{1},\dots ,{U}_{d}]$ and $\mathsf{\Sigma}=\mathrm{diag}\{{\lambda}_{1},\dots ,{\lambda}_{d}\}$ denote the matrices with the eigenvectors and eigenvalues of ${\mathbf{YY}}^{\prime}$, respectively. Then, we have ${\mathbf{YY}}^{\prime}=\mathbf{U}\mathsf{\Sigma}{\mathbf{U}}^{\prime}$ and $\mathbf{Y}$ can be decomposed by singular value decomposition as:

#### 2.5.2. Second Stage: Reconstruction

**3rd step: Grouping**. Considering ${\mathbf{Y}}_{i}$ to be associated with the ${i}^{\mathrm{th}}$ largest singular value of $\mathbf{Y}$, this step intends to separate the signal and noise components as follows:

**4th step: Diagonal averaging**. In this step, using anti-diagonal averaging on each block of $\widehat{\mathbf{S}}$, the de-noised/smoothed time series will be reconstructed.

#### 2.5.3. Third Stage: Forecasting

**5th step: Forecast engine**. The forecast engine of MSSA, which is a linear function of the last L observations of the de-noised/smoothed time series, will be constructed in this step [39,44]. These forecasts are obtained by using the linear recurrent formula in a similar manner and detailed above for the univariate SSA algorithm. By considering the two versions of the trajectory matrix defined in the 1st step of this algorithm, we obtain the forecasts based on the horizontal MSSA (H-MSSA) and the forecasts based on the vertical MSSA (V-MSSA).

#### 2.6. Hybrid Approach

#### 2.7. Accuracy Measure

## 3. Results and Discussion

#### 3.1. Model Fit

#### 3.2. Model Forecasting

## 4. Discussion and Conclusions

## Author Contributions

## Funding

## Conflicts of Interest

## Abbreviations

ANN | artificial neural network |

ARMA | autoregressive moving average |

ARIMA | autoregressive integrated moving average |

BRICS | Brazil, Russia, India, China, South Africa |

BRL | Brazilian real |

CNY | Chinese renminby |

EUR | Euro |

GBP | British pound |

H-MSSA | horizontal form of the MSSA algorithm |

INR | Indian rupee |

JPY | Japanese yen |

MAPE | mean absolute percentage error |

MSSA | multivariate singular spectrum analysis |

RUB | Russian rouble |

SSA | singular spectrum analysis |

SVD | Singular value decomposition |

RMSE | Root mean square error |

USD | United States dollar |

V-MSSA | vertical form of the MSSA algorithm |

ZAR | South African rand |

## Appendix A

**Figure A1.**W-correlation matrices for each of the eight currency exchange rates, considering an window length ${L}_{1}=N/20$. The vertical and horizontal lines in each w-correlations plot indicate the selected cut-point that maximize separability between signal and noise components.

**Figure A2.**W-correlation matrices for each of the eight currency exchange rates, considering an window length ${L}_{2}=N/2$. The vertical and horizontal lines in each w-correlations plot indicate the selected cut-point that maximize separability between signal and noise components.

**Figure A3.**W-correlation matrices for the horizontal (H-MSSA; left hand side plot) and vertical (V-MSSA; right hand side plot) versions of the multivariate SSA that combines all eight currency exchange rate time series, considering window lengths of ${L}_{H-MSSA}$ and ${L}_{V-MSSA}$ (Table 3), respectively. The vertical and horizontal lines in each w-correlations plot indicate the selected cut-point that maximize separability between signal and noise components.

**Figure A4.**Dendrogram for the hierarchical cluster analysis for the eight currency, obtained using the “TSclust” package [56] of the R software.

## References

- Paul, A.; Ibrahim, M. On the causes and effects of exchange rate volatility on economic growth: Evidence from Ghana. J. Afr. Bus.
**2017**, 18, 169–193. [Google Scholar] - Nag, A.K.; Mitra, A. Forecasting daily foreign exchange rates using genetically optimized neural networks. J. Forecast.
**2002**, 21, 501–511. [Google Scholar] [CrossRef] - Edwards, S.; Savastano, M.A. Exchange rates in emerging economies: What do we know? What do we need to know? In NBER Working Paper 7228; National Bureau of Economic Research: Cambridge, MA, USA, 1999. [Google Scholar]
- Gali, J.; Monacelli, T. Monetary policy and exchange rate volatility in a small open economy. Rev. Econ. Stud.
**2005**, 72, 707–734. [Google Scholar] [CrossRef] - von Hagen, J.; Zhou, J. The choice of exchange regimes in developing countries: A multinomial panel analysis. J. Int. Money Financ.
**2007**, 26, 1071–1094. [Google Scholar] [CrossRef] - Ca’Zorzi, M.; Kolasa, M.; Rubaszek, M. Exchange rate forecasting with DSGE models. J. Int. Econ.
**2017**, 107, 127–146. [Google Scholar] - Awe, O.O.; Gil-Alana, L.A. Time series analysis of economic growth rate series in Nigeria: Structural breaks, non-linearities and reasons behind the recent recession. Appl. Econ.
**2019**, 51, 5482–5489. [Google Scholar] [CrossRef] - Jiang, M.N. A comparative analysis of the exchange rate system of the BRICS. Mod. Econ.
**2019**, 10, 1168–1177. [Google Scholar] [CrossRef][Green Version] - Sulandari, W.; Subanar; Lee, M.H.; Rodrigues, P.C. Indonesian electricity load forecasting using singular spectrum analysis. Energy
**2020**, 190, 116408. [Google Scholar] [CrossRef] - Box, G.E.; Jenkins, G.M.; Reinsel, G.C.; Ljung, G.M. Time Series Analysis: Forecasting and Control; John Wiley and Sons: Hoboken, NJ, USA, 2015. [Google Scholar]
- Hyndman, R.; Athanasopoulos, G. Forecasting: Principles and Practice; Otexts: Melbourne, Australia, 2013. [Google Scholar]
- Ripley, B.D. Time series in R 1.5.0. R News. 2/2, pp. 2–7. Available online: https://www.r-project.org/doc/Rnews/Rnews_2002-2.pdf (accessed on 28 March 2020).
- Hsu, M.W.; Lessmann, S.; Sung, M.C.; Ma, T.; Johnson, J.E. Bridging the divide in financial market forecasting: Machine learners vs. financial economists. Expert Syst. Appl.
**2016**, 37, 215–234. [Google Scholar] [CrossRef][Green Version] - Babu, A.S.; Reddy, S.K. Exchange rate forecasting using ARIMA, neural network and fuzzy neuron. J. Stock Forex Trading
**2015**, 3, 1–5. [Google Scholar] - Ciaburro, G.; Venkateswaran, B. Neural Networks with R: Smart Models Using CNN, RNN, Deep Learning, and Artificial Intelligence Principles; Packt Publishing: Birmingham, UK, 2017. [Google Scholar]
- Samarasinghe, S. Neural Networks for Applied Sciences and Engineering: From Fundamentals to Complex Pattern Recognition; CRC Press: Boca Raton, FL, USA, 2016. [Google Scholar]
- Zhang, G.P. Time series forecasting using a hybrid ARIMA and neural network model. Neurocomputing
**2003**, 50, 159–175. [Google Scholar] [CrossRef] - Khandelwal, I.; Adhikari, R.; Verma, G. Time series forecasting using hybrid ARIMA and ANN models based on DWT decomposition. Procedia Comput. Sci.
**2015**, 48, 173–179. [Google Scholar] [CrossRef][Green Version] - Abou-Zaid, A.; Stokes, A. Forecasting foreign exchange rates using artificial neural networks: A trader’s approach. Int. J. Monet. Econ. Financ.
**2012**, 5, 370–394. [Google Scholar] - Rosenblatt, F. The Perceptron, a Perceiving and Recognizing Automaton Project Para; Cornell Aeronautical Laboratory: New York, NY, USA, 1957. [Google Scholar]
- Widrow, B. An Adaptive “Adaline” Neuron Using Chemical “Memistors”; Stanford University, Stanford Electronics Laboratories, Solid State Electronics Laboratory: Stanford, CA, USA, 1960. [Google Scholar]
- Broomhead, D.S.; King, G.P. Extracting qualitative dynamics from experimental data. Phys. D Nonlinear Phenom.
**1986**, 20, 217–236. [Google Scholar] [CrossRef] - Golyandina, N.; Nekrutkin, V.; Zhigljavsky, A. Analysis of Time Series Structure: SSA and Related Techniques; Chapman & Hall/CRC: New York, NY, USA, 2001. [Google Scholar]
- Golyandina, N.; Zhigljavsky, A. Singular Spectrum Analysis for Time Series; Springer Science and Business Media: Berlin/Heidelberger, Germany, 2013. [Google Scholar]
- Hassani, H.; Mahmoudvand, R. Singular Spectrum Analysis Using R; Palgrave Advanced Texts in Econometrics; Springer: London, UK, 2018. [Google Scholar]
- Hassani, H. Singular spectrum analysis: Methodology and comparison. J. Data Sci.
**2007**, 5, 239–257. [Google Scholar] - Hassani, H.; Zhigljavsky, A. Singular spectrum analysis: Methodology and application to economics data. J. Syst. Sci. Complex.
**2009**, 22, 372–394. [Google Scholar] [CrossRef] - de Carvalho, M.; Rodrigues, P.C.; Rua, A. Tracking the US business cycle with a singular spectrum analysis. Econ. Lett.
**2012**, 114, 32–35. [Google Scholar] [CrossRef] - Rodrigues, P.C.; de Carvalho, M. Spectral modeling of time series with missing data. Appl. Math. Model.
**2013**, 37, 4676–4684. [Google Scholar] [CrossRef] - Mahmoudvand, R.; Alehosseini, F.; Rodrigues, P.C. Forecasting mortality rate by singular spectrum analysis. RevStat-Stat. J.
**2015**, 13, 193–206. [Google Scholar] - Mahmoudvand, R.; Rodrigues, P.C. Missing value imputation in time series using singular spectrum analysis. Int. J. Energy Stat.
**2016**, 4, 1650005. [Google Scholar] [CrossRef] - Groth, A.; Ghil, M. Synchronization of world economic activity. Chaos Interdiscip. J. Nonlinear Sci.
**2017**, 27, 127002. [Google Scholar] [CrossRef] [PubMed][Green Version] - Mahmoudvand, R.; Konstantinides, D.; Rodrigues, P.C. Forecasting mortality rate by multivariate singular spectrum analysis. Appl. Stoch. Models Bus. Ind.
**2017**, 33, 717–732. [Google Scholar] [CrossRef] - Zabalza, J.; Qing, C.; Yuen, P.; Sun, G.; Zhao, H.; Ren, J. Fast implementation of two-dimensional singular spectrum analysis for effective data classification in hyperspectral imaging. J. Frankl. Inst.
**2018**, 355, 1733–1751. [Google Scholar] [CrossRef][Green Version] - Mahmoudvand, R.; Rodrigues, P.C.; Yarmohammadi, M. Forecasting daily exchange rates: A comparison between SSA and MSSA. RevStat-Stat. J.
**2019**, 17, 599–616. [Google Scholar] - Mahmoudvand, R.; Rodrigues, P.C. Predicting the Brexit outcome using singular spectrum analysis. J. Comput. Stat. Model.
**2019**, 1, 9–15. [Google Scholar] - Ge, M.; Lv, Y.; Zhang, Y.; Yi, C.; Ma, Y. An effective bearing fault diagnosis technique via local robust principal component analysis and multi-scale permutation entropy. Entropy
**2019**, 21, 959. [Google Scholar] [CrossRef][Green Version] - Rodrigues, P.C.; Pimentel, J.; Messala, P.; Kazemi, M. Decomposition and forecasting of mutual investment funds using singular spectral analysis. Entropy
**2020**, 22, 83. [Google Scholar] [CrossRef][Green Version] - Rodrigues, P.C.; Mahmoudvand, R. The benefits of multivariate singular spectrum analysis over the univariate version. J. Frankl. Inst.
**2018**, 355, 544–564. [Google Scholar] [CrossRef] - Danilov, D. Principal components in time series forecast. J. Comput. Graph. Stat.
**1997**, 6, 112–121. [Google Scholar] - Mahmoudvand, R.; Rodrigues, P.C. A new parsimonious recurrent forecasting model in singular spectrum analysis. J. Forecast.
**2018**, 37, 191–200. [Google Scholar] [CrossRef] - Mahmoudvand, R.; Rodrigues, P.C. Prediction intervals for the vector SSA forecasting algorithm in a median based singular spectrum analysis. Comput. Math. Methods
**2020**, e1080. [Google Scholar] [CrossRef][Green Version] - Rodrigues, P.C.; Mahmoudvand, R. A new approach for the vector forecast algorithm in singular spectrum analysis. Commun. Stat. Simul. Comput.
**2020**, 49, 591–605. [Google Scholar] [CrossRef] - Hassani, H.; Mahmoudvand, R. Multivariate singular spectrum analysis: A general view and new vector forecasting algorithm. Int. J. Energy Stat.
**2013**, 1, 55–83. [Google Scholar] [CrossRef] - Sulandari, W.; Subanar; Suhartono, S.; Utami, H.; Lee, M.H.; Rodrigues, P.C. SSA based hybrid forecasting models and applications. Bull. Electr. Eng. Inform.
**2020**, in press. [Google Scholar] - Kim, T.Y.; Oh, K.J.; Kim, C.; Do, J.D. Artificial neural networks for non-stationary time series. Neurocomputing
**2004**, 61, 439–447. [Google Scholar] [CrossRef] - Hyndman, R.J.; Khandakar, Y. Automatic time series forecasting: The forecast package for R. J. Stat. Softw.
**2008**, 26. [Google Scholar] [CrossRef][Green Version] - de Carvalho, M.; Rua, A. Real-Time Nowcasting the US Output Gap: Singular Spectrum Analysis at Work. Int. J. Forecast.
**2017**, 33, 185–198. [Google Scholar] [CrossRef][Green Version] - Golyandina, N.; Korobeynikov, A.; Shlemov, A.; Usevich, K. Multivariate and 2D Extensions of Singular Spectrum Analysis with the Rssa Package. J. Stat. Softw.
**2015**, 67. [Google Scholar] [CrossRef][Green Version] - Hassani, H.; Heravi, S.; Zhigljavsky, A. Forecasting European industrial production with singular spectrum analysis. Int. J. Forecast.
**2009**, 25, 103–118. [Google Scholar] [CrossRef] - Rodrigues, P.C.; Lourenço, V.M.; Mahmoudvand, R. A robust approach to singular spectrum analysis. Qual. Reliab. Eng. Int.
**2018**, 34, 1437–1447. [Google Scholar] [CrossRef] - Makridakis, S.; Spiliotis, E.; Assimakopoulos, V. The M4 Competition: Results, findings, conclusion and way forward. Int. J. Forecast.
**2018**, 34, 802–808. [Google Scholar] [CrossRef] - Makridakis, S.; Spiliotis, E.; Assimakopoulos, V. The M4 Competition: 100,000 time series and 61 forecasting methods. Int. J. Forecast.
**2020**, 36, 54–74. [Google Scholar] [CrossRef] - Rodrigues, P.C.; Mahmoudvand, R. Correlation analysis in contaminated data by singular spectrum analysis. Qual. Reliab. Eng. Int.
**2016**, 32, 2127–2137. [Google Scholar] [CrossRef] - Rodrigues, P.C.; Tuy, P.G.S.E.; Mahmoudvand, R. Randomized singular spectrum analysis for long time series. J. Stat. Comput. Simul.
**2018**, 88, 1921–1935. [Google Scholar] [CrossRef] - Montero, P.; Vilar, J.A. TSclust: An R Package for Time Series Clustering. J. Stat. Softw.
**2014**, 62, 1–43. [Google Scholar]

**Figure 2.**Time series for the exchange rates of the eight currencies against the USD. From top to bottom and from left to right: USD/BRL, USD/CNY, USD/EUR, USD/GBP, USD/INR, USD/JPY, USD/RUB and USD/ZAR. The vertical axes show the exchange rate and the horizontal axes shows the time.

**Figure 3.**W-correlation matrices for each of the eight currency exchange rates, considering an window length ${L}_{p}$. The vertical and horizontal lines in each w-correlations plot indicate the selected cut-point that maximize separability between signal and noise components.

**Figure 4.**Original time series (black line), smoothed time series after applying the SSA considering a window length ${L}_{p}$ and ${r}_{p}$ eigentriples (Table 3) (red line) and model fit by the hybrid algorithm that combines the SSA and the ANN (green line), for each of the eight currency exchange rates. From top to bottom: USD/BRL, USD/CNY, USD/EUR, USD/GBP, USD/INR, USD/JPY, USD/RUB, and USD/ZAR. The vertical axes show the exchange rate and the horizontal axes shows the time.

Currency | Minimum | Mean | Maximum | Standard Deviation | Coefficient of Variation |
---|---|---|---|---|---|

Brazilian real (USD/BRL) | 1.53 | 2.57 | 4.48 | 0.769 | 0.2992 |

Chinese renminby (USD/CNY) | 6.03 | 6.93 | 8.28 | 0.691 | 0.0997 |

Euro (USD/EUR) | 0.63 | 0.80 | 0.96 | 0.076 | 0.0951 |

British pound (USD/GBP) | 0.47 | 0.64 | 0.83 | 0.090 | 0.1411 |

Indian rupee (USD/INR) | 39.04 | 54.35 | 74.60 | 10.411 | 0.1916 |

Japanese yen (USD/JPY) | 75.74 | 103.93 | 125.63 | 12.780 | 0.1230 |

Russian rouble (USD/RUB) | 23.17 | 40.27 | 82.90 | 15.984 | 0.3969 |

South African rand (USD/ZAR) | 5.60 | 9.71 | 16.87 | 3.050 | 0.3141 |

**Table 2.**Parameters for the ARIMA model, and observed valued of the test statistic and p-values for the Dickey-Fuller test.

Dickey-Fuller Test | |||||
---|---|---|---|---|---|

Currency | AR(p) | I(d) | MA(q) | Test Statistic | p-Value |

Brazilian real (USD/BRL) | 5 | 2 | 0 | −13.586 | 0.01 |

Chinese renminby (USD/CNY) | 5 | 2 | 0 | −13.189 | 0.01 |

Euro (USD/EUR) | 1 | 1 | 1 | −15.531 | 0.01 |

British pound (USD/GBP) | 0 | 1 | 0 | −15.420 | 0.01 |

Indian rupee (USD/INR) | 1 | 1 | 0 | −15.313 | 0.01 |

Japanese yen (USD/JPY) | 0 | 1 | 1 | −16.261 | 0.01 |

Russian rouble (USD/RUB) | 2 | 1 | 2 | −14.292 | 0.01 |

South African rand (USD/ZAR) | 0 | 1 | 0 | −16.945 | 0.01 |

**Table 3.**Window length ${L}_{1}=N/20$, ${L}_{2}=N/2$ and ${L}_{p}$, and number of eigentriples r considered for model fit and model forecast for each of the currency exchange rates.

Currency Exchange Rate | ${\mathit{L}}_{1}$ | ${\mathit{r}}_{1}$ | ${\mathit{L}}_{2}$ | ${\mathit{r}}_{2}$ | ${\mathit{L}}_{\mathit{p}}$ | ${\mathit{r}}_{\mathit{p}}$ | ${\mathit{L}}_{\mathit{H}-\mathbf{MSSA}}$ | ${\mathit{r}}_{\mathit{H}-\mathbf{MSSA}}$ | ${\mathit{L}}_{\mathit{V}-\mathbf{MSSA}}$ | ${\mathit{r}}_{\mathit{V}-\mathbf{MSSA}}$ |
---|---|---|---|---|---|---|---|---|---|---|

Brazilian real (USD/BRL) | 212 | 11 | 2120 | 7 | 60 | 20 | 60 | 30 | 60 | 21 |

Chinese renminby (USD/CNY) | 212 | 11 | 2120 | 7 | 60 | 18 | 60 | 30 | 60 | 21 |

Euro (USD/EUR) | 212 | 12 | 2120 | 14 | 60 | 13 | 60 | 30 | 60 | 21 |

British pound (USD/GBP) | 212 | 10 | 2120 | 19 | 60 | 10 | 60 | 30 | 60 | 21 |

Indian rupee (USD/INR) | 212 | 10 | 2120 | 7 | 60 | 17 | 60 | 30 | 60 | 21 |

Japanese yen (USD/JPY) | 212 | 7 | 2120 | 10 | 60 | 16 | 60 | 30 | 60 | 21 |

Russian rouble (USD/RUB) | 212 | 9 | 2120 | 7 | 60 | 15 | 60 | 30 | 60 | 21 |

South African rand (USD/ZAR) | 212 | 8 | 2120 | 11 | 60 | 15 | 60 | 30 | 60 | 21 |

**Table 4.**Root mean square error for model fit for each of the eight currency exchange rates, considering each of the eight models/algorithms, ARIMA, SSA for the window length and number of eigentriples for reconstruction as defined in Table 3, multivariate SSA for the window length and number of eigentriples for reconstruction as defined in Table 3, ANN, and the hybrid method that combines SSA and ANN.

Currency Exchange Rate | $\mathit{ARIMA}$ | ${\mathit{SSA}}_{{\mathit{L}}_{1}}$ | ${\mathit{SSA}}_{{\mathit{L}}_{2}}$ | ${\mathit{SSA}}_{{\mathit{L}}_{\mathit{p}}}$ | $\mathit{H}-\mathit{MSSA}$ | $\mathit{V}-\mathit{MSSA}$ | $\mathit{ANN}$ | $\mathit{SSA}-\mathit{ANN}$ |
---|---|---|---|---|---|---|---|---|

Brazilian real (USD/BRL) | 0.0317 | 0.0293 | 0.1235 | 0.0215 | 0.0124 | 0.0545 | 0.0291 | 0.0074 |

Chinese renminby (USD/CNY) | 0.0129 | 0.0144 | 0.0773 | 0.0072 | 0.0050 | 0.0259 | 0.0119 | 0.0020 |

Euro (USD/EUR) | 0.0057 | 0.0062 | 0.0151 | 0.0039 | 0.0025 | 0.0332 | 0.0053 | 0.0016 |

British pound (USD/GBP) | 0.0038 | 0.0055 | 0.0169 | 0.0028 | 0.0015 | 0.0301 | 0.0039 | 0.0013 |

Indian rupee (USD/INR) | 0.2767 | 0.3013 | 1.2830 | 0.1738 | 0.1163 | 0.2988 | 0.2727 | 0.0498 |

Japanese yen (USD/JPY) | 0.7668 | 1.1127 | 2.5112 | 0.5831 | 0.3389 | 0.6140 | 0.6146 | 0.1812 |

Russian rouble (USD/RUB) | 0.4739 | 0.6480 | 2.2367 | 0.4268 | 0.1775 | 0.4763 | 0.3839 | 0.0849 |

South African rand (USD/ZAR) | 0.1109 | 0.1466 | 0.3833 | 0.0769 | 0.0434 | 0.2023 | 0.1114 | 0.0255 |

**Table 5.**Mean absolute percentage error for model fit for each of the eight currency exchange rates, considering each of the eight models/algorithms, ARIMA, SSA for the window length and number of eigentriples for reconstruction as defined in Table 3, multivariate SSA for the window length and number of eigentriples for reconstruction as defined in Table 3, ANN, and the hybrid method that combines SSA and ANN.

Currency Exchange Rate | $\mathit{ARIMA}$ | ${\mathit{SSA}}_{{\mathit{L}}_{1}}$ | ${\mathit{SSA}}_{{\mathit{L}}_{2}}$ | ${\mathit{SSA}}_{{\mathit{L}}_{\mathit{p}}}$ | $\mathit{H}-\mathit{MSSA}$ | $\mathit{V}-\mathit{MSSA}$ | $\mathit{ANN}$ | $\mathit{SSA}-\mathit{ANN}$ |
---|---|---|---|---|---|---|---|---|

Brazilian real (USD/BRL) | 0.82% | 0.78% | 3.71% | 0.57% | 0.32% | 1.50% | 0.75% | 0.21% |

Chinese renminby (USD/CNY) | 0.11% | 0.14% | 0.80% | 0.06% | 0.05% | 0.27% | 0.10% | 0.02% |

Euro (USD/EUR) | 0.47% | 0.58% | 1.45% | 0.33% | 0.20% | 3.34% | 0.45% | 0.13% |

British pound (USD/GBP) | 0.43% | 0.64% | 2.05% | 0.32% | 0.17% | 3.67% | 0.44% | 0.15% |

Indian rupee (USD/INR) | 0.33% | 0.38% | 1.81% | 0.22% | 0.14% | 0.38% | 0.33% | 0.06% |

Japanese yen (USD/JPY) | 0.47% | 0.79% | 1.89% | 0.38% | 0.20% | 0.40% | 0.43% | 0.10% |

Russian rouble (USD/RUB) | 0.52% | 0.77% | 3.49% | 0.48% | 0.21% | 0.57% | 0.50% | 0.12% |

South African rand (USD/ZAR) | 0.80% | 1.09% | 2.98% | 0.56% | 0.31% | 1.55% | 0.80% | 0.19% |

**Table 6.**Computational time, in minutes, for model fit, for each of the eight currency exchange rates, considering each of the eight models/algorithms, ARIMA, SSA for the window length and number of eigentriples for reconstruction as defined in Table 3, multivariate SSA for the window length and number of eigentriples for reconstruction as defined in Table 3, ANN, and the hybrid method that combines SSA and ANN.

Currency Exchange Rate | $\mathit{ARIMA}$ | ${\mathit{SSA}}_{{\mathit{L}}_{1}}$ | ${\mathit{SSA}}_{{\mathit{L}}_{2}}$ | ${\mathit{SSA}}_{{\mathit{L}}_{\mathit{p}}}$ | H-${\mathit{MSSA}}^{1}$ | V-${\mathit{MSSA}}^{1}$ | $\mathit{ANN}$ | $\mathit{SSA}-\mathit{ANN}$ |
---|---|---|---|---|---|---|---|---|

Brazilian real (USD/BRL) | 0.3847 | 0.0360 | 0.8881 | 0.0132 | 0.0133 | 0.0923 | 0.1048 | 2.4027 |

Chinese renminby (USD/CNY) | 0.2677 | 0.0290 | 0.8860 | 0.0172 | 0.0133 | 0.0923 | 0.1038 | 1.8119 |

Euro (USD/EUR) | 0.2218 | 0.0281 | 0.9392 | 0.0145 | 0.0133 | 0.0923 | 0.2378 | 2.7058 |

British pound (USD/GBP) | 0.0712 | 0.0259 | 0.9157 | 0.0139 | 0.0133 | 0.0923 | 0.0806 | 2.6205 |

Indian rupee (USD/INR) | 0.1378 | 0.0412 | 0.8880 | 0.0186 | 0.0133 | 0.0923 | 0.1804 | 2.2644 |

Japanese yen (USD/JPY) | 0.1970 | 0.0223 | 10.111 | 0.0112 | 0.0133 | 0.0923 | 1.6194 | 2.6516 |

Russian rouble (USD/RUB) | 0.1064 | 0.0305 | 0.8561 | 0.0105 | 0.0133 | 0.0923 | 0.8474 | 2.6506 |

South African rand (USD/ZAR) | 0.0859 | 0.0300 | 1.0156 | 0.0146 | 0.0133 | 0.0923 | 0.0746 | 1.6494 |

**Table 7.**Root mean square error for model forecasting for each of the eight currency exchange rates, considering each of the eight models/algorithms, ARIMA, SSA for the window length and number of eigentriples for reconstruction as defined in Table 3, multivariate SSA for the window length and number of eigentriples for reconstruction as defined in Table 3, ANN, and the hybrid method that combines SSA and ANN.

Currency Exchange Rate | $\mathit{ARIMA}$ | ${\mathit{SSA}}_{{\mathit{L}}_{1}}$ | ${\mathit{SSA}}_{{\mathit{L}}_{2}}$ | ${\mathit{SSA}}_{{\mathit{L}}_{\mathit{p}}}$ | H-$\mathit{MSSA}$ | V-$\mathit{MSSA}$ | $\mathit{ANN}$ | $\mathit{SSA}-\mathit{ANN}$ |
---|---|---|---|---|---|---|---|---|

one-step-ahead | ||||||||

Brazilian real (USD/BRL) | 0.1323 | 0.0370 | 0.2580 | 0.0372 | 0.0410 | 0.0348 | 0.0494 | 0.0247 |

Chinese renminby (USD/CNY) | 0.0239 | 0.0183 | 0.1644 | 0.0148 | 0.0248 | 0.0135 | 0.0407 | 0.0091 |

Euro (USD/EUR) | 0.0110 | 0.0095 | 0.0076 | 0.0038 | 0.0029 | 0.0037 | 0.0056 | 0.0017 |

British pound (USD/GBP) | 0.0056 | 0.0030 | 0.0461 | 0.0037 | 0.0042 | 0.0035 | 0.0048 | 0.0026 |

Indian rupee (USD/INR) | 0.3448 | 0.2141 | 2.5460 | 0.2521 | 0.2231 | 0.2069 | 0.2802 | 0.1498 |

Japanese yen (USD/JPY) | 0.9702 | 0.8953 | 11.461 | 0.7099 | 0.6853 | 0.6515 | 0.7578 | 0.4927 |

Russian rouble (USD/RUB) | 2.1820 | 0.9059 | 1.5589 | 0.4637 | 0.6613 | 0.5168 | 1.4898 | 0.2807 |

South African rand (USD/ZAR) | 0.4340 | 0.2963 | 0.2387 | 0.1040 | 0.1273 | 0.1023 | 0.2165 | 0.0723 |

five-steps-ahead | ||||||||

Brazilian real (USD/BRL) | 0.2280 | 0.0544 | 0.2727 | 0.0648 | 0.0788 | 0.0645 | 0.0804 | 0.0209 |

Chinese renminby (USD/CNY | 0.0273 | 0.0179 | 0.1738 | 0.0282 | 0.0489 | 0.0303 | 0.0418 | 0.0078 |

Euro (USD/EUR) | 0.0107 | 0.0124 | 0.0070 | 0.0087 | 0.0088 | 0.0094 | 0.0071 | 0.0025 |

British pound (USD/GBP) | 0.0056 | 0.0124 | 0.0469 | 0.0044 | 0.0063 | 0.0056 | 0.0047 | 0.0025 |

Indian rupee (USD/INR) | 0.3632 | 0.2212 | 2.5601 | 0.5689 | 0.4848 | 0.3977 | 0.2850 | 0.1209 |

Japanese yen (USD/JPY) | 0.9709 | 0.9186 | 11.842 | 1.2772 | 1.5018 | 1.0590 | 0.7407 | 0.5181 |

Russian rouble (USD/RUB) | 2.1820 | 1.1078 | 1.6070 | 0.9951 | 1.3190 | 1.1384 | 1.4981 | 0.2759 |

South African rand (USD/ZAR) | 0.4340 | 0.3613 | 0.2444 | 0.2105 | 0.2776 | 0.2053 | 0.1728 | 0.0470 |

ten-steps-ahead | ||||||||

Brazilian real (USD/BRL) | 0.3498 | 0.0891 | 0.2909 | 0.0941 | 0.0890 | 0.0974 | 0.1499 | 0.0232 |

Chinese renminby (USD/CNY) | 0.0457 | 0.0481 | 0.1862 | 0.0516 | 0.0653 | 0.0415 | 0.0434 | 0.0080 |

Euro (USD/EUR) | 0.0107 | 0.0157 | 0.0059 | 0.0134 | 0.0137 | 0.0138 | 0.0090 | 0.0023 |

British pound (USD/GBP) | 0.0056 | 0.0066 | 0.0478 | 0.0070 | 0.0060 | 0.0044 | 0.0047 | 0.0024 |

Indian rupee (USD/INR) | 0.3836 | 0.3020 | 2.5821 | 0.5738 | 0.5168 | 0.4507 | 0.3151 | 0.1011 |

Japanese yen (USD/JPY) | 0.9709 | 0.9404 | 12.293 | 1.0223 | 1.2728 | 1.1189 | 0.8205 | 0.3122 |

Russian rouble (USD/RUB) | 2.1820 | 1.5443 | 1.6784 | 0.8272 | 1.6145 | 1.2535 | 1.8017 | 0.2482 |

South African rand (USD/ZAR) | 0.4340 | 0.3854 | 0.2467 | 0.2894 | 0.3442 | 0.2878 | 0.2019 | 0.0470 |

**Table 8.**Mean absolute percentage error for model forecasting for each of the eight currency exchange rates, considering each of the eight models/algorithms, ARIMA, SSA for the window length and number of eigentriples for reconstruction as defined in Table 3, multivariate SSA for the window length and number of eigentriples for reconstruction as defined in Table 3, ANN, and the hybrid method that combines SSA and ANN.

Currency Exchange Rate | $\mathit{ARIMA}$ | ${\mathit{SSA}}_{{\mathit{L}}_{1}}$ | ${\mathit{SSA}}_{{\mathit{L}}_{2}}$ | ${\mathit{SSA}}_{{\mathit{L}}_{\mathit{p}}}$ | H-$\mathit{MSSA}$ | V-$\mathit{MSSA}$ | $\mathit{ANN}$ | $\mathit{SSA}-\mathit{ANN}$ |
---|---|---|---|---|---|---|---|---|

one-step-ahead | ||||||||

Brazilian real (USD/BRL) | 2.82% | 0.64% | 5.84% | 0.71% | 0.76% | 0.62% | 1.02% | 0.51% |

Chinese renminby (USD/CNY) | 0.31% | 0.20% | 2.32% | 0.15% | 0.29% | 0.14% | 0.48% | 0.09% |

Euro (USD/EUR) | 1.12% | 0.91% | 0.77% | 0.32% | 0.26% | 0.31% | 0.53% | 0.13% |

British pound (USD/GBP) | 0.58% | 0.33% | 5.95% | 0.39% | 0.47% | 0.40% | 0.49% | 0.31% |

Indian rupee (USD/INR) | 0.37% | 0.25% | 3.54% | 0.31% | 0.28% | 0.24% | 0.35% | 0.17% |

Japanese yen (USD/JPY) | 0.58% | 0.52% | 10.35% | 0.45% | 0.49% | 0.40% | 0.56% | 0.39% |

Russian rouble (USD/RUB) | 3.07% | 1.02% | 2.18% | 0.52% | 0.83% | 0.63% | 1.99% | 0.38% |

South African rand (USD/ZAR) | 2.66% | 1.62% | 1.19% | 0.54% | 0.71% | 0.55% | 1.27% | 0.37% |

five-steps-ahead | ||||||||

Brazilian real (USD/BRL) | 5.10% | 1.08% | 6.17% | 1.17% | 1.44% | 1.22% | 1.52% | 0.39% |

Chinese renminby (USD/CNY) | 0.32% | 0.20% | 2.46% | 0.37% | 0.58% | 0.35% | 0.50% | 0.08% |

Euro (USD/EUR) | 1.10% | 1.21% | 0.70% | 0.83% | 0.82% | 0.90% | 0.71% | 0.23% |

British pound (USD/GBP) | 0.58% | 0.41% | 6.05% | 0.43% | 0.66% | 0.63% | 0.49% | 0.31% |

Indian rupee (USD/INR) | 0.39% | 0.24% | 3.56% | 0.66% | 0.60% | 0.42% | 0.36% | 0.12% |

Japanese yen (USD/JPY) | 0.58% | 0.55% | 10.69% | 0.86% | 1.02% | 0.71% | 0.56% | 0.40% |

Russian rouble (USD/RUB) | 3.07% | 1.42% | 2.25% | 1.33% | 1.75% | 1.36% | 2.01% | 0.36% |

South African rand (USD/ZAR) | 2.66% | 1.94% | 1.22% | 1.22% | 1.51% | 1.20% | 0.92% | 0.26% |

ten-steps-ahead | ||||||||

Brazilian real (USD/BRL) | 7.93% | 1.96% | 6.59% | 1.93% | 1.80% | 2.07% | 3.27% | 0.46% |

Chinese renminby (USD/CNY) | 0.56% | 0.55% | 2.64% | 0.69% | 0.79% | 0.53% | 0.52% | 0.09% |

Euro (USD/EUR) | 1.10% | 1.61% | 0.56% | 1.28% | 1.32% | 1.32% | 0.91% | 0.21% |

British pound (USD/GBP) | 0.58% | 0.77% | 6.17% | 0.73% | 0.61% | 0.49% | 0.50% | 0.34% |

Indian rupee (USD/INR) | 0.42% | 0.35% | 3.59% | 0.64% | 0.58% | 0.52% | 0.41% | 0.11% |

Japanese yen (USD/JPY) | 0.58% | 0.57% | 11.10% | 0.86% | 0.94% | 0.92% | 0.57% | 0.21% |

Russian rouble (USD/RUB) | 3.07% | 2.26% | 2.36% | 0.95% | 2.06% | 1.54% | 5.20% | 0.30% |

South African rand (USD/ZAR) | 2.66% | 2.08% | 1.23% | 1.54% | 2.00% | 1.49% | 0.99% | 0.25% |

**Table 9.**Computational time, in minutes, for model fit, for each of the eight currency exchange rates, considering each of the eight models/algorithms, ARIMA, SSA for the window length and number of eigentriples for reconstruction as defined in Table 3, multivariate SSA for the window length and number of eigentriples for reconstruction as defined in Table 3, ANN, and the hybrid method that combines SSA and ANN.

Currency Exchange Rate | $\mathit{ARIMA}$ | ${\mathit{SSA}}_{{\mathit{L}}_{1}}$ | ${\mathit{SSA}}_{{\mathit{L}}_{2}}$ | ${\mathit{SSA}}_{{\mathit{L}}_{\mathit{p}}}$ | H-$\mathit{MSSA}$${}^{1}$ | V-$\mathit{MSSA}$${}^{1}$ | $\mathit{ANN}$ | $\mathit{SSA}-\mathit{ANN}$ |
---|---|---|---|---|---|---|---|---|

one-step-ahead | ||||||||

Brazilian real (USD/BRL) | 4.3655 | 0.5333 | 17.699 | 0.1891 | 0.2323 | 0.2755 | 0.8877 | 28.337 |

Chinese renminby (USD/CNY) | 3.7305 | 0.4544 | 18.158 | 0.2448 | 0.2323 | 0.2755 | 0.8795 | 15.076 |

Euro (USD/EUR) | 2.9998 | 0.4562 | 17.755 | 0.1813 | 0.2323 | 0.2755 | 0.9253 | 29.917 |

British pound (USD/GBP) | 0.9440 | 0.5494 | 17.549 | 0.1530 | 0.2323 | 0.2755 | 0.8994 | 29.427 |

Indian rupee (USD/INR) | 1.8074 | 0.4961 | 17.675 | 0.2385 | 0.2323 | 0.2755 | 2.2634 | 27.408 |

Japanese yen (USD/JPY) | 2.9255 | 0.4253 | 17.502 | 0.2316 | 0.2323 | 0.2755 | 20.062 | 30.499 |

Russian rouble (USD/RUB) | 1.3511 | 0.6087 | 17.294 | 0.3392 | 0.2323 | 0.2755 | 4.2888 | 29.711 |

South African rand (USD/ZAR) | 1.1148 | 0.6444 | 17.377 | 0.2995 | 0.2323 | 0.2755 | 0.8910 | 19.033 |

five-steps-ahead | ||||||||

Brazilian real (USD/BRL) | 4.5827 | 0.5158 | 17.352 | 0.1827 | 0.2112 | 0.2532 | 0.8935 | 28.563 |

Chinese renminby (USD/CNY) | 4.0223 | 0.4433 | 17.328 | 0.2371 | 0.2112 | 0.2532 | 0.8928 | 15.157 |

Euro (USD/EUR) | 3.3133 | 0.4625 | 17.574 | 0.1825 | 0.2112 | 0.2532 | 0.9231 | 30.004 |

British pound (USD/GBP) | 1.0444 | 0.4335 | 17.296 | 0.1478 | 0.2112 | 0.2532 | 0.8987 | 29.270 |

Indian rupee (USD/INR) | 1.9946 | 0.5102 | 17.376 | 0.2310 | 0.2112 | 0.2532 | 2.1407 | 26.658 |

Japanese yen (USD/JPY) | 2.8206 | 0.3862 | 17.437 | 0.2172 | 0.2112 | 0.2532 | 19.977 | 30.510 |

Russian rouble (USD/RUB) | 1.7594 | 0.4156 | 17.064 | 0.2088 | 0.2112 | 0.2532 | 4.1824 | 29.583 |

South African rand (USD/ZAR) | 1.5077 | 0.4542 | 17.382 | 0.2100 | 0.2112 | 0.2532 | 0.8782 | 19.019 |

ten-steps-ahead | ||||||||

Brazilian real (USD/BRL) | 4.6075 | 0.5136 | 17.217 | 0.1833 | 0.2335 | 0.2865 | 0.8950 | 28.491 |

Chinese renminby (USD/CNY) | 4.0933 | 0.4469 | 17.272 | 0.2396 | 0.2335 | 0.2865 | 0.8961 | 15.133 |

Euro (USD/EUR) | 3.3071 | 0.4646 | 17.442 | 0.1862 | 0.2335 | 0.2865 | 0.9321 | 29.974 |

British pound (USD/GBP) | 1.0325 | 0.4219 | 17.230 | 0.1477 | 0.2335 | 0.2865 | 0.9158 | 29.441 |

Indian rupee (USD/INR) | 1.9575 | 0.4892 | 17.271 | 0.2319 | 0.2335 | 0.2865 | 2.1563 | 26.646 |

Japanese yen (USD/JPY) | 2.8240 | 0.3899 | 17.338 | 0.2184 | 0.2335 | 0.2865 | 20.062 | 30.689 |

Russian rouble (USD/RUB) | 1.5355 | 0.4161 | 16.986 | 0.2080 | 0.2335 | 0.2865 | 4.2013 | 29.597 |

South African rand (USD/ZAR) | 1.2403 | 0.4578 | 17.209 | 0.2099 | 0.2335 | 0.2865 | 0.8795 | 19.178 |

© 2020 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (http://creativecommons.org/licenses/by/4.0/).

## Share and Cite

**MDPI and ACS Style**

Rodrigues, P.C.; Awe, O.O.; Pimentel, J.S.; Mahmoudvand, R.
Modelling the Behaviour of Currency Exchange Rates with Singular Spectrum Analysis and Artificial Neural Networks. *Stats* **2020**, *3*, 137-157.
https://doi.org/10.3390/stats3020012

**AMA Style**

Rodrigues PC, Awe OO, Pimentel JS, Mahmoudvand R.
Modelling the Behaviour of Currency Exchange Rates with Singular Spectrum Analysis and Artificial Neural Networks. *Stats*. 2020; 3(2):137-157.
https://doi.org/10.3390/stats3020012

**Chicago/Turabian Style**

Rodrigues, Paulo Canas, Olushina Olawale Awe, Jonatha Sousa Pimentel, and Rahim Mahmoudvand.
2020. "Modelling the Behaviour of Currency Exchange Rates with Singular Spectrum Analysis and Artificial Neural Networks" *Stats* 3, no. 2: 137-157.
https://doi.org/10.3390/stats3020012