Introduction

The foreign exchange market is one of the largest in the world. Individuals, organizations, and major banks trade currencies every day. Risk management is very important in forex trading. In other words, it is possible to find currency pairs that are highly correlated with each other using the PCA method.

Datasets

In this project, I will use 31 finance price data of H4 timeframe. I took these data from Metatrader4 platform using my ICmarket’s account and python program. There is a MetaTrader5 library in python. It helps to import currency pairs data from MT4 Platform. And it is real time data. You can see python code below. I imported fx data from 2015.01.01 to 2022.12.31. After I import these datas, I saved it as ‘df.RDS’. And I will use it from now on. It contains some confidential information. So I used *.

import pyreadr
import MetaTrader5 as mt
import pandas as pd
import plotly as pl
from datetime import datetime
import plotly.express as px
import pandas_ta as ta
import plotly
import matplotlib.pyplot as plt
import statistics
from statistics import stdev
from statistics import variance
import os
import glob
import numpy as np
from datetime import datetime, date, timedelta
import talib as tl

mt.initialize()
login=******** # account number
password=****** # password
server='ICMarketsSC-Demo'
mt.login(login,password,server)
list_fx=["AUDCHF","AUDJPY","AUDCAD","AUDNZD","AUDUSD","CADCHF","CADJPY","CHFJPY","EURAUD","EURCAD","EURCHF","EURGBP","EURJPY",
 "EURNZD","EURUSD","GBPAUD","GBPCAD","GBPCHF","GBPJPY","GBPNZD","GBPUSD","NZDCAD","NZDCHF","NZDJPY","NZDUSD","USDCAD","USDCHF",
 "USDCNH","USDJPY","XAGUSD","XAUUSD"]
df=pd.read_pickle('df.pkl')
for i in list_fx:
    df1=pd.DataFrame(mt.copy_rates_range(i,mt.TIMEFRAME_H4,datetime(2015,1,1),datetime(2022,12,31)))
    y="./"+i+".pkl"
    df1['time']=pd.to_datetime(df1['time'],unit='s')
    df1=df1[['time', 'close']]
    df1=df1.rename(columns={'time': 'time', 'close': i})
    #df1.to_pickle(y)
    df=df.merge(df1, left_on='time', right_on='time')
    print('finished')
pyreadr.write_rds('df.RDS',df)

Our data has 10765 observations with 31 variables.

df=readRDS("df.RDS")
df$time <-as.POSIXct(df$time,"05/24/2017 06:13:10", format = "%Y-%m-%d %H:%M:%S")
dim(df)
## [1] 10765    32

Exploratory Data Analysis

Variable identification

We have 29 currency pair variables such AUDCHF, AUDJPY and so on. For example AUDCHF=0,71992. It means 1 AUD equal to 0,71992 CHF. And we have 2 commodity product’s prices such as gold and silver.

library(tidyverse)
colnames(df)[-1] # 31 currency pairs data
##  [1] "AUDCHF" "AUDJPY" "AUDCAD" "AUDNZD" "AUDUSD" "CADCHF" "CADJPY" "CHFJPY"
##  [9] "EURAUD" "EURCAD" "EURCHF" "EURGBP" "EURJPY" "EURNZD" "EURUSD" "GBPAUD"
## [17] "GBPCAD" "GBPCHF" "GBPJPY" "GBPNZD" "GBPUSD" "NZDCAD" "NZDCHF" "NZDJPY"
## [25] "NZDUSD" "USDCAD" "USDCHF" "USDCNH" "USDJPY" "XAGUSD" "XAUUSD"
head(df)
##         time  AUDCHF AUDJPY  AUDCAD  AUDNZD  AUDUSD  CADCHF CADJPY  CHFJPY
## 1 2015-11-18 0.71992 87.601 0.94574 1.09726 0.70962 0.76094 92.602 121.660
## 2 2015-11-19 0.72752 88.330 0.94926 1.09500 0.71566 0.76614 93.041 121.405
## 3 2015-11-20 0.72910 88.386 0.95570 1.09392 0.71888 0.76266 92.466 121.206
## 4 2015-11-23 0.73402 88.540 0.96233 1.10222 0.71925 0.76249 91.983 120.595
## 5 2015-11-24 0.73259 88.364 0.96087 1.10248 0.72009 0.76215 91.943 120.594
## 6 2015-11-25 0.73737 88.823 0.96484 1.10465 0.72582 0.76398 92.036 120.428
##    EURAUD  EURCAD  EURCHF  EURGBP  EURJPY  EURNZD  EURUSD  GBPAUD  GBPCAD
## 1 1.49847 1.41759 1.07903 0.69956 131.295 1.64440 1.06354 2.14183 2.02614
## 2 1.49536 1.41979 1.08811 0.70025 132.117 1.63752 1.07028 2.13515 2.02727
## 3 1.49066 1.42504 1.08713 0.70141 131.792 1.63081 1.07178 2.12501 2.03140
## 4 1.47534 1.42014 1.08320 0.69957 130.649 1.62630 1.06130 2.10867 2.02969
## 5 1.47740 1.42002 1.08264 0.70318 130.580 1.62892 1.06405 2.10087 2.01918
## 6 1.46897 1.41776 1.08348 0.70655 130.507 1.62287 1.06641 2.07896 2.00631
##    GBPCHF  GBPJPY  GBPNZD  GBPUSD  NZDCAD  NZDCHF NZDJPY  NZDUSD  USDCAD
## 1 1.54225 187.661 2.35074 1.52015 0.86164 0.65583 79.809 0.64645 1.33294
## 2 1.55364 188.642 2.33862 1.52829 0.86661 0.66408 80.639 0.65332 1.32655
## 3 1.54976 187.862 2.32530 1.52789 0.87337 0.66623 80.772 0.65690 1.32961
## 4 1.54811 186.731 2.32479 1.51690 0.87282 0.66572 80.303 0.65228 1.33811
## 5 1.53946 185.680 2.31675 1.51311 0.87126 0.66419 80.127 0.65292 1.33455
## 6 1.53326 184.686 2.29692 1.50917 0.87316 0.66725 80.387 0.65681 1.32948
##    USDCHF  USDCNH  USDJPY XAGUSD  XAUUSD
## 1 1.01459 6.41493 123.450 14.177 1070.69
## 2 1.01665 6.40793 123.437 14.258 1082.11
## 3 1.01433 6.41119 122.960 14.185 1077.98
## 4 1.02063 6.42533 123.102 14.133 1068.94
## 5 1.01744 6.42907 122.715 14.187 1075.58
## 6 1.01601 6.42667 122.377 14.183 1071.33

Missing values

There is no NA rows.

sapply(df, function(x) sum(is.na(x)))
##   time AUDCHF AUDJPY AUDCAD AUDNZD AUDUSD CADCHF CADJPY CHFJPY EURAUD EURCAD 
##      0      0      0      0      0      0      0      0      0      0      0 
## EURCHF EURGBP EURJPY EURNZD EURUSD GBPAUD GBPCAD GBPCHF GBPJPY GBPNZD GBPUSD 
##      0      0      0      0      0      0      0      0      0      0      0 
## NZDCAD NZDCHF NZDJPY NZDUSD USDCAD USDCHF USDCNH USDJPY XAGUSD XAUUSD 
##      0      0      0      0      0      0      0      0      0      0

Univariate analysis-Statistic

You can see some important statistics of dataset from below table.

library(e1071)
library(moments)
library(tidyr)
library(tibble)
library(tidyverse)
library(psych)
df=df[-1]
describeBy(df)
##        vars     n    mean     sd  median trimmed    mad     min     max   range
## AUDCHF    1 10765    0.70   0.04    0.70    0.70   0.05    0.54    0.78    0.24
## AUDJPY    2 10765   81.76   6.22   81.81   81.56   5.63   60.75   98.39   37.64
## AUDCAD    3 10765    0.95   0.04    0.95    0.95   0.05    0.81    1.03    0.22
## AUDNZD    4 10765    1.07   0.02    1.07    1.07   0.03    1.00    1.15    0.14
## AUDUSD    5 10765    0.73   0.04    0.73    0.73   0.04    0.56    0.81    0.25
## CADCHF    6 10765    0.74   0.02    0.74    0.74   0.02    0.66    0.79    0.13
## CADJPY    7 10765   86.33   7.31   84.64   85.15   4.94   74.25  110.47   36.22
## CHFJPY    8 10765  116.92   9.90  114.00  115.04   4.89  102.03  150.38   48.35
## EURAUD    9 10765    1.56   0.07    1.57    1.56   0.07    1.37    1.96    0.59
## EURCAD   10 10765    1.48   0.06    1.48    1.48   0.05    1.29    1.61    0.33
## EURCHF   11 10765    1.09   0.05    1.09    1.09   0.03    0.94    1.20    0.26
## EURGBP   12 10765    0.87   0.03    0.87    0.87   0.03    0.70    0.95    0.25
## EURJPY   13 10765  127.04   7.14  126.97  126.73   6.92  110.86  147.80   36.94
## EURNZD   14 10765    1.67   0.07    1.68    1.67   0.06    1.45    1.96    0.51
## EURUSD   15 10765    1.13   0.06    1.13    1.13   0.06    0.96    1.25    0.30
## GBPAUD   16 10765    1.80   0.09    1.80    1.80   0.08    1.58    2.14    0.56
## GBPCAD   17 10765    1.71   0.08    1.71    1.70   0.05    1.41    2.09    0.67
## GBPCHF   18 10765    1.26   0.07    1.26    1.26   0.06    1.02    1.55    0.53
## GBPJPY   19 10765  146.93  10.15  145.99  146.51   9.98  125.12  188.64   63.52
## GBPNZD   20 10765    1.93   0.09    1.93    1.93   0.06    1.68    2.35    0.67
## GBPUSD   21 10765    1.31   0.07    1.31    1.31   0.07    1.04    1.53    0.49
## NZDCAD   22 10765    0.89   0.04    0.88    0.89   0.04    0.76    0.98    0.22
## NZDCHF   23 10765    0.65   0.04    0.65    0.66   0.04    0.54    0.73    0.19
## NZDJPY   24 10765   76.28   4.99   76.45   76.28   4.54   60.48   88.01   27.53
## NZDUSD   25 10765    0.68   0.04    0.68    0.68   0.04    0.55    0.75    0.20
## USDCAD   26 10765    1.31   0.04    1.31    1.30   0.04    1.20    1.46    0.26
## USDCHF   27 10765    0.96   0.03    0.97    0.97   0.03    0.88    1.03    0.15
## USDCNH   28 10765    6.72   0.24    6.72    6.71   0.30    6.25    7.37    1.12
## USDJPY   29 10765  112.63   9.30  110.22  110.69   4.20   99.84  151.47   51.63
## XAGUSD   30 10765   19.10   3.91   17.58   18.73   3.15   11.85   29.48   17.63
## XAUUSD   31 10765 1507.99 263.88 1413.02 1496.75 283.21 1051.54 2067.38 1015.84
##         skew kurtosis   se
## AUDCHF -0.21    -0.61 0.00
## AUDJPY  0.13    -0.03 0.06
## AUDCAD -0.12    -0.87 0.00
## AUDNZD  0.33    -0.30 0.00
## AUDUSD -0.50     0.08 0.00
## CADCHF -0.61    -0.20 0.00
## CADJPY  1.43     1.73 0.07
## CHFJPY  1.76     2.64 0.10
## EURAUD  0.07     0.72 0.00
## EURCAD -0.72     0.37 0.00
## EURCHF -0.40     0.32 0.00
## EURGBP -1.24     2.49 0.00
## EURJPY  0.37     0.03 0.07
## EURNZD -0.55     0.35 0.00
## EURUSD -0.38     0.01 0.00
## GBPAUD  0.26     0.42 0.00
## GBPCAD  0.88     3.62 0.00
## GBPCHF  0.36     0.96 0.00
## GBPJPY  0.39    -0.20 0.10
## GBPNZD  0.09     1.00 0.00
## GBPUSD -0.08     0.09 0.00
## NZDCAD -0.28    -0.06 0.00
## NZDCHF -0.24    -0.69 0.00
## NZDJPY -0.08    -0.20 0.05
## NZDUSD -0.63     0.05 0.00
## USDCAD  0.28     0.27 0.00
## USDCHF -0.52    -0.80 0.00
## USDCNH  0.07    -1.00 0.00
## USDJPY  2.11     4.18 0.09
## XAGUSD  0.75    -0.71 0.04
## XAUUSD  0.29    -1.52 2.54

Univariate analysis-Boxplot

library(e1071)
library(moments)
library(tidyr)
library(tibble)
library(tidyverse)
library(psych)
boxplot(df[c(1:29)],las = 2)

boxplot(df[c(30,31)],las = 2)

Univariate analysis-histogram

library(e1071)
library(moments)
library(tidyr)
library(tibble)
library(tidyverse)
library(psych)
par(mfrow = c(3,4))
for(i in 1:12){
hist(df[,i],main = colnames(df)[i])
}

par(mfrow = c(3,4))
for(i in 13:24){
hist(df[,i],main = colnames(df)[i])
}

par(mfrow = c(2,4))
for(i in 25:31){
hist(df[,i],main = colnames(df)[i])
}
par(mfrow = c(1,1))

Bi-variate analysis

This is a correlation graphic. It is easy to see the highest and lowest correlation between variables. For example, USDJPY is highly correlated with CADJPY and CHFJPY. NZDCAD is highly correlated with AUDCAD. NZDUSD is highly correlated with AUDUSD.

library(qgraph)
qgraph(cor(df),labels=colnames(df))

Outlier treatment

I used IQR to find outlier values. After removing outliers, I have 7676 observations.

count(df)
##       n
## 1 10765
outliers=df[0,]
for (i in 1:31) {
q1=quantile(df[,i], .25)
q3=quantile(df[,i], .75)
IQR=IQR(df[,i])
count_out<-subset(df, df[,i] > (q1 - 1.5*IQR) & df[,i] < (q3 + 1.5*IQR))
add_out<-setdiff(df,count_out)
outliers<-rbind(outliers,add_out)
outliers<-unique(outliers)
}
df<-setdiff(df,outliers)
count(df)
##      n
## 1 7676

Rotated PCA

Train model

I trained rotated PCA model. Firstly, we have to normalize our data set. After it, we have to calculate covariance and eigen values. Then we trained rotated PCA using principal function with varimax rotation option. There is loadings for each factor. This loadings indicate correlation between currency pair and RC1, RC2. * RC1 is highly positive correlated with AUDCHF,AUDCAD,CADCHF,EURCHF,NZDCHF. And RC1 is highly negative correlated with EURAUD,GBPAUD,GBPNZD, XAUUSD. * RC2 is highly positive correlated with AUDJPY,CADJPY,CHFJPY,EURJPY,GBPJPY,GBPUSD,NZDJPY. And RC2 is highly negative correlated with USDCAD,USDCNH, USDCHF. * Goodness of fit is 0,83 * RC1 can explain 30 percent of 31 variables. * RC2 can explain 60 percent of 31 variables. *

library(psych)
library(clusterSim)
df.n<-data.Normalization(df, type="n1", normalization="column")
df.cov<-cov(df.n)
df.eigen<-eigen(df.cov)
pca4<-principal(df.cov, nfactors=2, rotate="varimax")
head(pca4)
## $values
##  [1] 1.153424e+01 7.013194e+00 4.227529e+00 3.325186e+00 2.530495e+00
##  [6] 1.083625e+00 9.257916e-01 1.763606e-01 1.497849e-01 2.814249e-02
## [11] 2.208883e-03 8.228951e-04 6.140448e-04 4.677327e-04 2.889112e-04
## [16] 2.606984e-04 2.074183e-04 1.343327e-04 1.095265e-04 8.986632e-05
## [21] 8.667102e-05 7.411472e-05 6.505188e-05 5.017632e-05 4.758365e-05
## [26] 3.387957e-05 2.820202e-05 2.424263e-05 1.525483e-05 1.512176e-05
## [31] 6.242035e-06
## 
## $rotation
## [1] "varimax"
## 
## $n.obs
## [1] NA
## 
## $communality
##     AUDCHF     AUDJPY     AUDCAD     AUDNZD     AUDUSD     CADCHF     CADJPY 
## 0.97107588 0.91222370 0.64407230 0.12034347 0.85751025 0.49917369 0.63527815 
##     CHFJPY     EURAUD     EURCAD     EURCHF     EURGBP     EURJPY     EURNZD 
## 0.85182157 0.64160609 0.01013291 0.53635139 0.11833097 0.67902956 0.38361389 
##     EURUSD     GBPAUD     GBPCAD     GBPCHF     GBPJPY     GBPNZD     GBPUSD 
## 0.49063212 0.58421915 0.08295683 0.50002343 0.78151519 0.50967441 0.79809508 
##     NZDCAD     NZDCHF     NZDJPY     NZDUSD     USDCAD     USDCHF     USDCNH 
## 0.48160812 0.94184637 0.90152172 0.78704178 0.77346852 0.70795035 0.79332046 
##     USDJPY     XAGUSD     XAUUSD 
## 0.12599037 0.62948029 0.79752677 
## 
## $loadings
## 
## Loadings:
##        RC1    RC2   
## AUDCHF  0.976  0.138
## AUDJPY  0.601  0.742
## AUDCAD  0.781  0.185
## AUDNZD  0.289  0.191
## AUDUSD  0.653  0.657
## CADCHF  0.706       
## CADJPY  0.151  0.783
## CHFJPY -0.384  0.839
## EURAUD -0.753 -0.272
## EURCAD              
## EURCHF  0.731       
## EURGBP        -0.340
## EURJPY  0.220  0.794
## EURNZD -0.596 -0.170
## EURUSD  0.191  0.674
## GBPAUD -0.764       
## GBPCAD         0.287
## GBPCHF  0.677  0.205
## GBPJPY  0.148  0.872
## GBPNZD -0.706  0.104
## GBPUSD  0.138  0.883
## NZDCAD  0.688       
## NZDCHF  0.967       
## NZDJPY  0.564  0.764
## NZDUSD  0.604  0.650
## USDCAD -0.167 -0.863
## USDCHF  0.499 -0.677
## USDCNH -0.212 -0.865
## USDJPY         0.345
## XAGUSD -0.468  0.641
## XAUUSD -0.786  0.424
## 
##                  RC1   RC2
## SS loadings    9.491 9.056
## Proportion Var 0.306 0.292
## Cumulative Var 0.306 0.598
## 
## $fit
## [1] 0.8296409

Quality measure of PCA

We can see the complexity an uniqueness of each variable from below plot. GBPCAD and EURCAD has the largest unique value, and they are higher than 0,9. It means that these variables are not strongly correlated with other variables. So I removed these variables from the dataset. I will use dataset without GBPCAD, and EURCAD from now on.

par(mfrow=c(1,2))
plot(pca4$complexity)
plot(pca4$uniquenesses)

par(mfrow=c(1,1))
set<-data.frame(complex=pca4$complexity, unique=pca4$uniqueness)
tail(set[order(set$unique),])
##         complex    unique
## EURNZD 1.160888 0.6163861
## USDJPY 1.110678 0.8740096
## AUDNZD 1.732998 0.8796565
## EURGBP 1.047349 0.8816690
## GBPCAD 1.007496 0.9170432
## EURCAD 1.898571 0.9898671
df=df[-c(10,17)]

PCA model

The main goal of PCA is to minimize dimensions, preserving the covariance of data.

Covariance and Eigenvalues

First, we have to normalize our dataset and calculate covariance, and eigenvalues.

library(clusterSim)
df.n<-data.Normalization(df, type="n1", normalization="column")
df.cov<-cov(df.n)
df.eigen<-eigen(df.cov)
df.eigen$values
##  [1] 1.149570e+01 6.967749e+00 4.001713e+00 2.776378e+00 1.731421e+00
##  [6] 8.840814e-01 7.870096e-01 1.742080e-01 1.484947e-01 2.812983e-02
## [11] 2.023660e-03 7.922386e-04 5.870671e-04 4.265750e-04 2.821831e-04
## [16] 2.266632e-04 1.438783e-04 1.094790e-04 1.046126e-04 8.680014e-05
## [21] 8.455184e-05 6.116234e-05 5.363028e-05 4.181169e-05 2.970704e-05
## [26] 2.520425e-05 1.682551e-05 1.525626e-05 6.312481e-06
head(df.eigen$vectors)
##            [,1]        [,2]        [,3]        [,4]          [,5]         [,6]
## [1,] -0.2418472 -0.20690172 -0.03620309  0.05377337 -0.0009332690 -0.126410299
## [2,] -0.2788675  0.05954315 -0.06682821  0.03116742 -0.1729461332 -0.002881992
## [3,] -0.2067416 -0.14462123  0.22467294  0.10362963  0.0003009108 -0.092385920
## [4,] -0.1025010 -0.01363566 -0.07371298  0.38557376 -0.2630455321 -0.576114685
## [5,] -0.2726095  0.02273398  0.15591842  0.09657977  0.0096725705 -0.131954883
## [6,] -0.1611763 -0.17182323 -0.29143874 -0.02543344  0.0004008112 -0.098748823
##              [,7]        [,8]        [,9]        [,10]        [,11]       [,12]
## [1,] -0.005085311  0.03250668  0.09345574 -0.081512388 -0.272133239 -0.16247136
## [2,]  0.101120385  0.04460306 -0.02273838 -0.079651276 -0.317751699  0.14981490
## [3,]  0.395499431  0.03824011  0.02508033 -0.007719497  0.006743843 -0.23860067
## [4,]  0.190694783 -0.09184302 -0.01999144 -0.025045572 -0.005023702 -0.03449304
## [5,] -0.025028510  0.01680702 -0.12593877 -0.081951333 -0.299430151  0.11394880
## [6,] -0.426201031  0.03336895  0.11795995 -0.050923140 -0.097350315 -0.03200442
##             [,13]        [,14]       [,15]       [,16]       [,17]       [,18]
## [1,] -0.042840241 -0.267322991  0.27834436 -0.18047177  0.11799701 -0.22318545
## [2,]  0.212501410 -0.178332865  0.08485833  0.23343029 -0.09684879  0.07954948
## [3,]  0.196554189 -0.055404762  0.08515234  0.04655495  0.28553324  0.09343488
## [4,] -0.021598678 -0.001426875 -0.06251512  0.03358411  0.05398519  0.06406016
## [5,]  0.207492503  0.148431745 -0.05322957 -0.19403715 -0.07088037 -0.13639614
## [6,]  0.005813667  0.099062743 -0.06913359 -0.05921741  0.22159979  0.29254502
##             [,19]       [,20]       [,21]       [,22]        [,23]       [,24]
## [1,] -0.080929863  0.02348370  0.01085808 -0.02980712 -0.024879859  0.08633724
## [2,] -0.003675145 -0.02425706  0.08996190  0.24866663 -0.085595972 -0.45941806
## [3,] -0.066443332  0.09107954  0.21357206  0.14971117  0.207137549  0.43971585
## [4,]  0.137238158  0.13065965 -0.16706954 -0.42377586 -0.155387995 -0.12445455
## [5,]  0.055635781 -0.40779870  0.13185635  0.08074011  0.227294998 -0.07882794
## [6,]  0.072351305  0.07720338 -0.02996395  0.02051265  0.009345844 -0.14593678
##           [,25]       [,26]       [,27]       [,28]       [,29]
## [1,]  0.2541039  0.24382658 -0.18250262  0.46987181 -0.34675591
## [2,] -0.2190590  0.12010472  0.23557324  0.24552348  0.34550896
## [3,]  0.1484908 -0.04862782  0.19473917 -0.17320980  0.31675100
## [4,] -0.1073862 -0.04338629 -0.22237608 -0.15663129  0.06406284
## [5,] -0.1132031 -0.17215276  0.09710166 -0.35223809 -0.43768635
## [6,]  0.4293274 -0.47236464  0.19736696  0.02891579  0.07370902

Train model

In order to train PCA model, I used prcomp function. You can see rotation values from below table. * We can reduce these 29 variables to at least 1 variable by performing dimensional reduction. PC1 can explain 63% of these variables. PC2 can explain 86% of these variables. If I reduce these 29 variables to three PC, it can explain 94 % of these variables.

pca1=prcomp(df.cov,center = F,scale. = F)
head(pca1)
## $sdev
##  [1] 2.172483e+00 1.316781e+00 7.562526e-01 5.246862e-01 3.272077e-01
##  [6] 1.670757e-01 1.487308e-01 3.292222e-02 2.806286e-02 5.316037e-03
## [11] 3.824359e-04 1.497190e-04 1.109453e-04 8.061509e-05 5.332759e-05
## [16] 4.283532e-05 2.719044e-05 2.068958e-05 1.976993e-05 1.640368e-05
## [21] 1.597880e-05 1.155860e-05 1.013517e-05 7.901667e-06 5.614102e-06
## [26] 4.763155e-06 3.179723e-06 2.883162e-06 1.192947e-06
## 
## $rotation
##                PC1         PC2          PC3          PC4           PC5
## AUDCHF -0.24184718  0.20690172  0.036203090 -0.053773366  0.0009332690
## AUDJPY -0.27886755 -0.05954315  0.066828210 -0.031167416  0.1729461332
## AUDCAD -0.20674160  0.14462123 -0.224672944 -0.103629634 -0.0003009108
## AUDNZD -0.10250105  0.01363566  0.073712976 -0.385573761  0.2630455321
## AUDUSD -0.27260945 -0.02273398 -0.155918423 -0.096579773 -0.0096725705
## CADCHF -0.16117626  0.17182323  0.291438741  0.025433439 -0.0004008112
## CADJPY -0.18888266 -0.18475871  0.245832333  0.049027418  0.2111793206
## CHFJPY -0.08125036 -0.33555707  0.041583434  0.035106211  0.2292575053
## EURAUD  0.21989554 -0.11432851  0.106223031 -0.227881108 -0.2194676698
## EURCHF -0.15310046  0.19346916  0.164699426 -0.302758441 -0.2221125169
## EURGBP  0.05331912  0.09924908 -0.127470216 -0.490525191  0.1785236695
## EURJPY -0.20489858 -0.17157567  0.171581428 -0.217431072  0.0446858846
## EURNZD  0.16441111 -0.10633107  0.142082679 -0.430101146 -0.0801621034
## EURUSD -0.17358417 -0.14582963 -0.114563967 -0.352746676 -0.2291385006
## GBPAUD  0.17107871 -0.18536033  0.199735495  0.142382436 -0.3399309554
## GBPCHF -0.18715519  0.11863146  0.250987488  0.058633269 -0.3520801676
## GBPJPY -0.20310208 -0.20627139  0.215730754  0.069573734 -0.0487662623
## GBPNZD  0.13651582 -0.20364319  0.268038036 -0.061807016 -0.2369780748
## GBPUSD -0.20173788 -0.21086648 -0.019820526  0.006074295 -0.3413217881
## NZDCAD -0.16730521  0.15013545 -0.285589641  0.102558062 -0.1480394389
## NZDCHF -0.22756367  0.22406916  0.009633497  0.089413973 -0.1023605412
## NZDJPY -0.27459437 -0.07319487  0.047681020  0.102438628  0.1000096439
## NZDUSD -0.25996705 -0.03109450 -0.203806851  0.050598770 -0.1183512517
## USDCAD  0.20795558  0.20433961 -0.005500174  0.028488707  0.0132265856
## USDCHF  0.02298260  0.31925698  0.256605812  0.051741039  0.0061202689
## USDCNH  0.21574290  0.18941973  0.059248668 -0.036084988  0.1663532351
## USDJPY -0.08727972 -0.07693222  0.374964950  0.104535086  0.3334974706
## XAGUSD -0.02312166 -0.30010483 -0.241734908  0.044433906  0.0348350719
## XAUUSD  0.08959471 -0.31918676 -0.184225102  0.023480882  0.0455560618
##                 PC6          PC7          PC8         PC9         PC10
## AUDCHF -0.126410299 -0.005085311 -0.032506680 -0.09345574  0.081512388
## AUDJPY -0.002881992  0.101120385 -0.044603058  0.02273838  0.079651276
## AUDCAD -0.092385920  0.395499431 -0.038240107 -0.02508033  0.007719497
## AUDNZD -0.576114685  0.190694783  0.091843021  0.01999144  0.025045572
## AUDUSD -0.131954883 -0.025028510 -0.016807020  0.12593877  0.081951333
## CADCHF -0.098748823 -0.426201031 -0.033368947 -0.11795995  0.050923140
## CADJPY  0.065222544 -0.167726845 -0.014552970  0.03999406  0.019863731
## CHFJPY  0.147044196  0.145794286  0.018330365  0.11903553 -0.053094157
## EURAUD  0.298678546 -0.026972348 -0.043876288 -0.04676741 -0.014337440
## EURCHF  0.115845806 -0.039001898 -0.097242108 -0.20792842  0.016487303
## EURGBP  0.321983021 -0.147821359  0.019295855 -0.09463988 -0.018738548
## EURJPY  0.234786300  0.108628564 -0.093582864 -0.01931261 -0.027099838
## EURNZD -0.009411700  0.075052100  0.002524756 -0.03828039 -0.033056727
## EURUSD  0.113247797 -0.056912209 -0.073660546  0.10250651  0.001091362
## GBPAUD  0.052272618  0.076417773 -0.050390473  0.03866802  0.023121641
## GBPCHF -0.125121369  0.070133993 -0.117692283 -0.13246716  0.037566925
## GBPJPY  0.038503038  0.170332585 -0.079483327  0.02528824 -0.009408660
## GBPNZD -0.278923633  0.201866663 -0.001447142  0.05324710  0.002088409
## GBPUSD -0.116432848  0.042560407 -0.080352736  0.16750132  0.010417838
## NZDCAD  0.222592941  0.322453425 -0.095730811 -0.03915305 -0.029896754
## NZDCHF  0.083011973 -0.076904316 -0.079915294 -0.11559293  0.052150800
## NZDJPY  0.203788508  0.049525612 -0.087181585  0.01319436  0.053144592
## NZDUSD  0.089497106 -0.103287616 -0.058718815  0.12799207  0.049595441
## USDCAD  0.103258149  0.494829529 -0.018951044 -0.21162585  0.042326373
## USDCHF -0.002895945  0.015308973 -0.046908374 -0.28389538 -0.019206900
## USDCNH -0.045562745 -0.005952437 -0.841462879  0.40023130  0.111837754
## USDJPY  0.207569207  0.235220225 -0.041371693 -0.15346784 -0.051418248
## XAGUSD -0.198169688 -0.111327261 -0.407781741 -0.53164392 -0.579988622
## XAUUSD -0.062312485 -0.048348182 -0.157435752 -0.45128967  0.778717727
##                PC11         PC12         PC13         PC14          PC15
## AUDCHF -0.272133239  0.162471360 -0.042840241  0.267322991  0.2783443594
## AUDJPY -0.317751699 -0.149814900  0.212501410  0.178332865  0.0848583269
## AUDCAD  0.006743843  0.238600669  0.196554189  0.055404762  0.0851523393
## AUDNZD -0.005023702  0.034493036 -0.021598678  0.001426875 -0.0625151169
## AUDUSD -0.299430151 -0.113948803  0.207492503 -0.148431745 -0.0532295696
## CADCHF -0.097350315  0.032004419  0.005813667 -0.099062743 -0.0691335904
## CADJPY -0.099411016 -0.071963541 -0.184697822 -0.054155767 -0.0153204864
## CHFJPY  0.102683180  0.145315389 -0.123967502 -0.096265408 -0.1043394551
## EURAUD -0.278105789 -0.053329502  0.030499422  0.135963365  0.2221574469
## EURCHF  0.177775087  0.093887356  0.018251288 -0.139596540  0.0950738027
## EURGBP  0.035435340 -0.024137613  0.146954369  0.404155937 -0.5689798888
## EURJPY  0.079492936  0.031334800 -0.048016753 -0.050979295  0.3246685767
## EURNZD -0.143983836  0.008337963 -0.478195302 -0.163722977  0.0689996359
## EURUSD  0.111181963 -0.020434491  0.276004191 -0.339565561  0.1016926789
## GBPAUD -0.362071193  0.299632241  0.368598505  0.113206369 -0.0595690404
## GBPCHF  0.284632129 -0.030589867 -0.033876874  0.272380249 -0.0923074797
## GBPJPY  0.208877812 -0.207306973 -0.094030575  0.274700077 -0.0382287844
## GBPNZD -0.191416333  0.174317140 -0.091209596 -0.106828932 -0.4481633532
## GBPUSD  0.216187393 -0.367719245  0.033567142  0.104190730 -0.0884016030
## NZDCAD  0.061072809  0.302531236 -0.179227404 -0.120145793 -0.1887351433
## NZDCHF -0.178688632  0.189465718 -0.406891363  0.106174270 -0.0719856629
## NZDJPY -0.238930534 -0.183221188 -0.035713184  0.046944717 -0.1799819995
## NZDUSD -0.208807097 -0.084860417 -0.151503244 -0.330850172 -0.2263878375
## USDCAD -0.225426052 -0.513298765 -0.103419886 -0.055076352  0.0263633202
## USDCHF  0.035199745 -0.222403943  0.249640801 -0.391980024 -0.1779450709
## USDCNH  0.033020381  0.017715236 -0.009156874  0.002655626  0.0016966140
## USDJPY  0.107231900  0.236204600  0.202110868 -0.152639719 -0.0608527325
## XAGUSD -0.090807957 -0.022266348  0.010982535  0.024026271 -0.0005011362
## XAUUSD  0.085868994  0.044651343 -0.006685626 -0.030350614 -0.0088145739
##                PC16         PC17         PC18         PC19          PC20
## AUDCHF -0.180471774 -0.117997014 -0.223185446 -0.080929863 -0.0234836963
## AUDJPY  0.233430286  0.096848786  0.079549475 -0.003675145  0.0242570585
## AUDCAD  0.046554946 -0.285533242  0.093434879 -0.066443332 -0.0910795377
## AUDNZD  0.033584112 -0.053985190  0.064060159  0.137238158 -0.1306596539
## AUDUSD -0.194037147  0.070880367 -0.136396141  0.055635781  0.4077986959
## CADCHF -0.059217406 -0.221599789  0.292545020  0.072351305 -0.0772033756
## CADJPY -0.278418778 -0.175335724  0.461523328  0.239297793 -0.0139159645
## CHFJPY -0.208327952 -0.103389070 -0.419244453  0.384740669 -0.3058597104
## EURAUD  0.187368646 -0.453299652 -0.038604341  0.050636741  0.1498502060
## EURCHF -0.041131402  0.416636962  0.078540079 -0.040042102 -0.0417894608
## EURGBP -0.167429718  0.005644595 -0.005794868 -0.013820157  0.0289794099
## EURJPY -0.258968123  0.265100429  0.052657406 -0.310201293 -0.1204364977
## EURNZD  0.262937177 -0.085257954 -0.042071526  0.023876806  0.0991177250
## EURUSD  0.003007966 -0.100569154 -0.033276295  0.235232743 -0.1534136350
## GBPAUD -0.201425441  0.109139533  0.063277985  0.138856774 -0.2033100624
## GBPCHF  0.184381277  0.121512286 -0.053661614  0.512107754  0.1693069040
## GBPJPY -0.134896211 -0.201928037  0.053581127 -0.345120099  0.0234494389
## GBPNZD -0.042831878  0.107185021  0.026571412 -0.291194028  0.0119908308
## GBPUSD -0.065573298 -0.217534590 -0.091168055 -0.096694115  0.0410745649
## NZDCAD  0.031197085 -0.206879247  0.410182571  0.014363105 -0.0069886971
## NZDCHF -0.153221422 -0.045543412 -0.381659664 -0.005222002 -0.0467861505
## NZDJPY  0.551292840  0.183991823 -0.004184201 -0.024797436 -0.4033677141
## NZDUSD -0.015525117  0.077183639 -0.060882096 -0.042874233  0.2352815665
## USDCAD -0.314714634  0.132447674  0.102103405  0.253204015  0.0017528186
## USDCHF -0.017210947 -0.313555170 -0.253230988 -0.192802309 -0.2518400660
## USDCNH -0.011862262 -0.002130316 -0.012261963  0.006833159 -0.0012100679
## USDJPY  0.139360611 -0.040000715 -0.116566273  0.017786803  0.5276078831
## XAGUSD -0.009200844  0.026492561  0.005178449  0.013597617  0.0101417101
## XAUUSD  0.005106642 -0.028637842 -0.001213098 -0.027826725  0.0005252916
##                PC21         PC22         PC23          PC24         PC25
## AUDCHF -0.010858081 -0.029807117 -0.024879859 -0.0863372419 -0.254103853
## AUDJPY -0.089961899  0.248666628 -0.085595972  0.4594180632  0.219059010
## AUDCAD -0.213572055  0.149711171  0.207137549 -0.4397158483 -0.148490843
## AUDNZD  0.167069544 -0.423775859 -0.155387995  0.1244545467  0.107386216
## AUDUSD -0.131856350  0.080740113  0.227294998  0.0788279373  0.113203104
## CADCHF  0.029963953  0.020512651  0.009345844  0.1459367761 -0.429327384
## CADJPY -0.120664715  0.116713387 -0.026908834 -0.3018946270  0.224823898
## CHFJPY -0.329884017 -0.010218772  0.114509425  0.2422064842 -0.187659140
## EURAUD -0.153955270 -0.116234256 -0.020225732  0.1925434558 -0.113637498
## EURCHF -0.606239121 -0.152250904 -0.223620893  0.0066476721  0.074334678
## EURGBP  0.077830206 -0.007990711  0.041990050 -0.0500299124 -0.037643507
## EURJPY  0.412907449 -0.035862182  0.249337669  0.1528063416 -0.220473981
## EURNZD  0.027337900 -0.021825938  0.181284311 -0.1434874379  0.147297755
## EURUSD  0.294302786  0.341381202 -0.197356901 -0.1197236044  0.123089651
## GBPAUD  0.115614440 -0.358094693  0.017592410 -0.1200985371  0.217626625
## GBPCHF  0.153108053  0.079744117  0.369279454  0.0383617127 -0.035949772
## GBPJPY -0.116448921 -0.066949195  0.199580939 -0.0346502691  0.325603185
## GBPNZD -0.073271494  0.425096305 -0.048326308  0.0587108092 -0.221497794
## GBPUSD -0.002899446 -0.180843150 -0.439789890 -0.0278880050 -0.220533417
## NZDCAD  0.085369442 -0.096518946 -0.060704995  0.4092591295  0.060837345
## NZDCHF  0.193842938  0.147979965 -0.328757792 -0.0471178006  0.303156650
## NZDJPY  0.024797956 -0.076693737 -0.032266372 -0.2453572877 -0.137512468
## NZDUSD  0.014218074 -0.396774855  0.209738610 -0.0993197301 -0.117473722
## USDCAD  0.048773135  0.049736216 -0.123841154 -0.0606231577 -0.171348923
## USDCHF  0.021157343 -0.048911254  0.213843684  0.0898579585  0.216428199
## USDCNH -0.018144675 -0.001442521 -0.001048886  0.0006640399  0.001227850
## USDJPY  0.129584613 -0.087172758 -0.288160258 -0.1566248588 -0.093566209
## XAGUSD -0.005603731  0.004515721 -0.005901805 -0.0057027768 -0.003172638
## XAUUSD  0.007142976 -0.007394332  0.007639558  0.0046496938  0.001262790
##                PC26         PC27         PC28          PC29
## AUDCHF -0.243826579 -0.182502623 -0.469871808 -0.3467559060
## AUDJPY -0.120104722  0.235573243 -0.245523481  0.3455089635
## AUDCAD  0.048627821  0.194739173  0.173209803  0.3167510011
## AUDNZD  0.043386288 -0.222376083  0.156631289  0.0640628450
## AUDUSD  0.172152756  0.097101663  0.352238085 -0.4376863493
## CADCHF  0.472364638  0.197366957 -0.028915787  0.0737090161
## CADJPY -0.414272239 -0.060746443  0.101800907 -0.0288367040
## CHFJPY  0.060891582  0.065925635 -0.048524665  0.0115994944
## EURAUD -0.055931803 -0.340779375  0.314443954  0.1055712067
## EURCHF  0.011243580 -0.045232938  0.023958526  0.0007340277
## EURGBP -0.055519611  0.070325375 -0.062380259 -0.0010268036
## EURJPY -0.130817303  0.083249078  0.264324518  0.0692615650
## EURNZD  0.058739487  0.468636132 -0.230910700 -0.1393066160
## EURUSD  0.164955411 -0.249000389 -0.246023111 -0.0226080793
## GBPAUD  0.078196788  0.207038469 -0.068047720 -0.0011311584
## GBPCHF -0.145885436 -0.068781379  0.047138756  0.0397881164
## GBPJPY  0.457397920 -0.233424351 -0.203120901 -0.0313184070
## GBPNZD -0.114097194 -0.212539182  0.019423829  0.0248246336
## GBPUSD -0.210872178  0.386386633  0.057939927 -0.0503628008
## NZDCAD -0.060658910  0.012845634 -0.049311030 -0.2879030395
## NZDCHF  0.139099169  0.037272332  0.296043219  0.2254713352
## NZDJPY  0.074661246 -0.112166379  0.166567503 -0.2858255981
## NZDUSD -0.092647370 -0.198511439 -0.248862702  0.4422659316
## USDCAD  0.175745097 -0.037857193 -0.064329579  0.0447324986
## USDCHF -0.272499473  0.060022645  0.014243768 -0.0485773395
## USDCNH -0.001376357 -0.005168495 -0.003847927 -0.0024079166
## USDJPY  0.055952326  0.020085518 -0.060927867 -0.0315907217
## XAGUSD  0.004551657 -0.008713797 -0.004895806  0.0022271098
## XAUUSD -0.009712667  0.009826906  0.005940468 -0.0032260847
## 
## $center
## [1] FALSE
## 
## $scale
## [1] FALSE
## 
## $x
##               PC1         PC2         PC3         PC4           PC5
## AUDCHF -2.7802021  1.44163929  0.14487437 -0.14929520  0.0016158813
## AUDJPY -3.2057771 -0.41488172  0.26742731 -0.08653253  0.2994425088
## AUDCAD -2.3766390  1.00768447 -0.89907661 -0.28771505 -0.0005210032
## AUDNZD -1.1783211  0.09500988  0.29497817 -1.07049857  0.4554424698
## AUDUSD -3.1338359 -0.15840469 -0.62394076 -0.26814197 -0.0167472885
## CADCHF -1.8528336  1.19722114  1.16625416  0.07061285 -0.0006939727
## CADJPY -2.1713380 -1.28735233  0.98375041  0.13611865  0.3656402395
## CHFJPY -0.9340296 -2.33807752  0.16640496  0.09746812  0.3969411820
## EURAUD  2.5278527 -0.79661235  0.42507407 -0.63268413 -0.3799908586
## EURCHF -1.7599966  1.34804455  0.65907981 -0.84057193 -0.3845702014
## EURGBP  0.6129404  0.69154268 -0.51009920 -1.36188343  0.3090995704
## EURJPY -2.3554522 -1.19549624  0.68661961 -0.60367088  0.0773700640
## EURNZD  1.8900204 -0.74088826  0.56857409 -1.19412343 -0.1387943222
## EURUSD -1.9954712 -1.01610430 -0.45845210 -0.97935817 -0.3967351349
## GBPAUD  1.9666691 -1.29154425  0.79928410  0.39530749 -0.5885634804
## GBPCHF -2.1514795  0.82659426  1.00437986  0.16278813 -0.6095988776
## GBPJPY -2.3348001 -1.43724731  0.86329253  0.19316300 -0.0844349142
## GBPNZD  1.5693446 -1.41893468  1.07261126 -0.17159965 -0.4103087355
## GBPUSD -2.3191177 -1.46926477 -0.07931606  0.01686454 -0.5909715969
## NZDCAD -1.9232902  1.04610619 -1.14284774  0.28473996 -0.2563185436
## NZDCHF -2.6160032  1.56125772  0.03855049  0.24824700 -0.1772291562
## NZDJPY -3.1566540 -0.51000353  0.19080575  0.28440837  0.1731587641
## NZDUSD -2.9885027 -0.21665868 -0.81557650  0.14048132 -0.2049158028
## USDCAD  2.3905945  1.42378717 -0.02201012  0.07909542  0.0229007836
## USDCHF  0.2642011  2.22450258  1.02686278  0.14365269  0.0105967601
## USDCNH  2.4801152  1.31982916  0.23709616 -0.10018557  0.2880274287
## USDJPY -1.0033413 -0.53604439  1.50050206  0.29022893  0.5774244119
## XAGUSD -0.2657996 -2.09105520 -0.96735369  0.12336533  0.0603141633
## XAUUSD  1.0299537 -2.22401326 -0.73721596  0.06519181  0.0788767068
##                 PC6          PC7           PC8          PC9          PC10
## AUDCHF -0.111757000 -0.004002188 -0.0056629234 -0.013877683  2.292929e-03
## AUDJPY -0.002547915  0.079582715 -0.0077702092  0.003376529  2.240576e-03
## AUDCAD -0.081676678  0.311261852 -0.0066617323 -0.003724296  2.171481e-04
## AUDNZD -0.509332305  0.150078626  0.0159997884  0.002968622  7.045276e-04
## AUDUSD -0.116658864 -0.019697677 -0.0029279172  0.018701240  2.305277e-03
## CADCHF -0.087302003 -0.335424306 -0.0058131373 -0.017516427  1.432459e-03
## CADJPY  0.057662042 -0.132002639 -0.0025352437  0.005938906  5.587633e-04
## CHFJPY  0.129999046  0.114741504  0.0031932961  0.017676146 -1.493529e-03
## EURAUD  0.264056162 -0.021227497 -0.0076436000 -0.006944713 -4.033097e-04
## EURCHF  0.102417128 -0.030694868 -0.0169403525 -0.030876268  4.637850e-04
## EURGBP  0.284659216 -0.116336830  0.0033614923 -0.014053520 -5.271121e-04
## EURJPY  0.207570213  0.085491724 -0.0163028829 -0.002867820 -7.623137e-04
## EURNZD -0.008320709  0.059066724  0.0004398327 -0.005684436 -9.298799e-04
## EURUSD  0.100120276 -0.044790455 -0.0128322559  0.015221674  3.069981e-05
## GBPAUD  0.046213252  0.060141521 -0.0087784231  0.005741996  6.504077e-04
## GBPCHF -0.110617481  0.055196127 -0.0205029364 -0.019670671  1.056751e-03
## GBPJPY  0.034039822  0.134053381 -0.0138466308  0.003755169 -2.646640e-04
## GBPNZD -0.246591209  0.158871003 -0.0002521037  0.007906912  5.874659e-05
## GBPUSD -0.102936120  0.033495449 -0.0139980889  0.024873058  2.930520e-04
## NZDCAD  0.196790290  0.253773944 -0.0166770725 -0.005814020 -8.409905e-04
## NZDCHF  0.073389345 -0.060524436 -0.0139218830 -0.017164938  1.466993e-03
## NZDJPY  0.180165640  0.038977133 -0.0151877290  0.001959293  1.494948e-03
## NZDUSD  0.079122731 -0.081288346 -0.0102292870  0.019006144  1.395111e-03
## USDCAD  0.091288614  0.389435594 -0.0033014234 -0.031425317  1.190633e-03
## USDCHF -0.002560251  0.012048309 -0.0081718136 -0.042156959 -5.402867e-04
## USDCNH -0.040281177 -0.004684625 -0.1465895592  0.059432227  3.145976e-03
## USDJPY  0.183508085  0.185120577 -0.0072072795 -0.022789160 -1.446386e-03
## XAGUSD -0.175198145 -0.087615624 -0.0710388386 -0.078946304 -1.631498e-02
## XAUUSD -0.055089312 -0.038050484 -0.0274265663 -0.067014124  2.190519e-02
##                 PC11          PC12          PC13          PC14          PC15
## AUDCHF -5.507053e-04  1.287161e-04 -2.515010e-05  1.140333e-04  7.854407e-05
## AUDJPY -6.430215e-04 -1.186891e-04  1.247526e-04  7.607234e-05  2.394558e-05
## AUDCAD  1.364725e-05  1.890287e-04  1.153905e-04  2.363429e-05  2.402855e-05
## AUDNZD -1.016627e-05  2.732671e-05 -1.267987e-05  6.086692e-07 -1.764071e-05
## AUDUSD -6.059449e-04 -9.027464e-05  1.218120e-04 -6.331727e-05 -1.502048e-05
## CADCHF -1.970040e-04  2.535514e-05  3.413013e-06 -4.225769e-05 -1.950833e-05
## CADJPY -2.011741e-04 -5.701230e-05 -1.084300e-04 -2.310150e-05 -4.323182e-06
## CHFJPY  2.077959e-04  1.151245e-04 -7.277725e-05 -4.106441e-05 -2.944283e-05
## EURAUD -5.627917e-04 -4.224969e-05  1.790521e-05  5.799857e-05  6.268907e-05
## EURCHF  3.597564e-04  7.438119e-05  1.071473e-05 -5.954839e-05  2.682822e-05
## EURGBP  7.170909e-05 -1.912275e-05  8.627208e-05  1.724028e-04 -1.605565e-04
## EURJPY  1.608667e-04  2.482464e-05 -2.818906e-05 -2.174649e-05  9.161598e-05
## EURNZD -2.913744e-04  6.605656e-06 -2.807327e-04 -6.984013e-05  1.947053e-05
## EURUSD  2.249945e-04 -1.618899e-05  1.620330e-04 -1.448502e-04  2.869595e-05
## GBPAUD -7.327091e-04  2.373802e-04  2.163921e-04  4.829100e-05 -1.680938e-05
## GBPCHF  5.759988e-04 -2.423447e-05 -1.988800e-05  1.161906e-04 -2.604761e-05
## GBPJPY  4.226978e-04 -1.642366e-04 -5.520226e-05  1.171802e-04 -1.078752e-05
## GBPNZD -3.873617e-04  1.381008e-04 -5.354616e-05 -4.557055e-05 -1.264641e-04
## GBPUSD  4.374899e-04 -2.913214e-04  1.970617e-05  4.444516e-05 -2.494544e-05
## NZDCAD  1.235906e-04  2.396769e-04 -1.052185e-04 -5.125119e-05 -5.325787e-05
## NZDCHF -3.616051e-04  1.501021e-04 -2.388725e-04  4.529129e-05 -2.031314e-05
## NZDJPY -4.835143e-04 -1.451549e-04 -2.096604e-05  2.002544e-05 -5.078788e-05
## NZDUSD -4.225546e-04 -6.722970e-05 -8.894257e-05 -1.411324e-04 -6.388282e-05
## USDCAD -4.561858e-04 -4.066551e-04 -6.071442e-05 -2.349419e-05  7.439283e-06
## USDCHF  7.123233e-05 -1.761970e-04  1.465559e-04 -1.672089e-04 -5.021309e-05
## USDCNH  6.682204e-05  1.403469e-05 -5.375700e-06  1.132823e-06  4.787558e-07
## USDJPY  2.170009e-04  1.871304e-04  1.186526e-04 -6.511228e-05 -1.717161e-05
## XAGUSD -1.837645e-04 -1.764026e-05  6.447486e-06  1.024901e-05 -1.414122e-07
## XAUUSD  1.737697e-04  3.537452e-05 -3.924911e-06 -1.294681e-05 -2.487324e-06
##                 PC16          PC17          PC18          PC19          PC20
## AUDCHF -4.090632e-05 -1.697721e-05 -2.443412e-05 -8.466285e-06 -2.038388e-06
## AUDJPY  5.291006e-05  1.393444e-05  8.708996e-06 -3.844665e-07  2.105516e-06
## AUDCAD  1.055229e-05 -4.108203e-05  1.022916e-05 -6.950811e-06 -7.905717e-06
## AUDNZD  7.612283e-06 -7.767296e-06  7.013241e-06  1.435684e-05 -1.134128e-05
## AUDUSD -4.398109e-05  1.019815e-05 -1.493251e-05  5.820205e-06  3.539698e-05
## CADCHF -1.342241e-05 -3.188340e-05  3.202753e-05  7.568860e-06 -6.701264e-06
## CADJPY -6.310730e-05 -2.522700e-05  5.052711e-05  2.503357e-05 -1.207908e-06
## CHFJPY -4.722029e-05 -1.487544e-05 -4.589846e-05  4.024873e-05 -2.654867e-05
## EURAUD  4.246958e-05 -6.521997e-05 -4.226364e-06  5.297242e-06  1.300702e-05
## EURCHF -9.322977e-06  5.994501e-05  8.598488e-06 -4.188909e-06 -3.627331e-06
## EURGBP -3.795016e-05  8.121347e-07 -6.344163e-07 -1.445763e-06  2.515417e-06
## EURJPY -5.869855e-05  3.814219e-05  5.764879e-06 -3.245097e-05 -1.045391e-05
## EURNZD  5.959819e-05 -1.226677e-05 -4.605948e-06  2.497815e-06  8.603433e-06
## EURUSD  6.817953e-07 -1.446972e-05 -3.643055e-06  2.460831e-05 -1.331633e-05
## GBPAUD -4.565574e-05  1.570281e-05  6.927610e-06  1.452617e-05 -1.764734e-05
## GBPCHF  4.179246e-05  1.748298e-05 -5.874819e-06  5.357294e-05  1.469586e-05
## GBPJPY -3.057601e-05 -2.905306e-05  5.866008e-06 -3.610392e-05  2.035415e-06
## GBPNZD -9.708412e-06  1.542160e-05  2.909011e-06 -3.046257e-05  1.040806e-06
## GBPUSD -1.486306e-05 -3.129850e-05 -9.980986e-06 -1.011543e-05  3.565278e-06
## NZDCAD  7.071232e-06 -2.976543e-05  4.490637e-05  1.502562e-06 -6.066199e-07
## NZDCHF -3.472966e-05 -6.552708e-06 -4.178371e-05 -5.462873e-07 -4.061045e-06
## NZDJPY  1.249578e-04  2.647243e-05 -4.580821e-07 -2.594125e-06 -3.501237e-05
## NZDUSD -3.518973e-06  1.110505e-05 -6.665310e-06 -4.485186e-06  2.042247e-05
## USDCAD -7.133424e-05  1.905634e-05  1.117818e-05  2.648834e-05  1.521449e-07
## USDCHF -3.901089e-06 -4.511378e-05 -2.772347e-05 -2.016956e-05 -2.185975e-05
## USDCNH -2.688739e-06 -3.065062e-07 -1.342427e-06  7.148347e-07 -1.050341e-07
## USDJPY  3.158793e-05 -5.755234e-06 -1.276156e-05  1.860724e-06  4.579644e-05
## XAGUSD -2.085493e-06  3.811704e-06  5.669313e-07  1.422482e-06  8.803019e-07
## XAUUSD  1.157488e-06 -4.120363e-06 -1.328087e-07 -2.911027e-06  4.559538e-08
##                 PC21          PC22          PC23          PC24          PC25
## AUDCHF -9.180707e-07 -1.823073e-06 -1.334314e-06 -3.609906e-06 -7.548673e-06
## AUDJPY -7.606444e-06  1.520903e-05 -4.590536e-06  1.920905e-05  6.507594e-06
## AUDCAD -1.805791e-05  9.156686e-06  1.110885e-05 -1.838526e-05 -4.411223e-06
## AUDNZD  1.412604e-05 -2.591913e-05 -8.333502e-06  5.203655e-06  3.190126e-06
## AUDUSD -1.114870e-05  4.938255e-06  1.218990e-05  3.295929e-06  3.362929e-06
## CADCHF  2.533507e-06  1.254602e-06  5.012202e-07  6.101863e-06 -1.275404e-05
## CADJPY -1.020242e-05  7.138464e-06 -1.443128e-06 -1.262272e-05  6.678852e-06
## CHFJPY -2.789230e-05 -6.250041e-07  6.141173e-06  1.012706e-05 -5.574797e-06
## EURAUD -1.301720e-05 -7.109160e-06 -1.084712e-06  8.050567e-06 -3.375833e-06
## EURCHF -5.125864e-05 -9.312022e-06 -1.199285e-05  2.779504e-07  2.208263e-06
## EURGBP  6.580687e-06 -4.887306e-07  2.251938e-06 -2.091835e-06 -1.118277e-06
## EURJPY  3.491209e-05 -2.193415e-06  1.337205e-05  6.389091e-06 -6.549629e-06
## EURNZD  2.311470e-06 -1.334926e-06  9.722329e-06 -5.999452e-06  4.375780e-06
## EURUSD  2.488384e-05  2.087967e-05 -1.058431e-05 -5.005846e-06  3.656629e-06
## GBPAUD  9.775414e-06 -2.190191e-05  9.434859e-07 -5.021523e-06  6.465042e-06
## GBPCHF  1.294557e-05  4.877337e-06  1.980456e-05  1.603968e-06 -1.067961e-06
## GBPJPY -9.845971e-06 -4.094770e-06  1.070358e-05 -1.448786e-06  9.672706e-06
## GBPNZD -6.195240e-06  2.599989e-05 -2.591754e-06  2.454798e-06 -6.580043e-06
## GBPUSD -2.451535e-07 -1.106079e-05 -2.358606e-05 -1.166045e-06 -6.551395e-06
## NZDCAD  7.218144e-06 -5.903325e-06 -3.255626e-06  1.711182e-05  1.807297e-06
## NZDCHF  1.638978e-05  9.050802e-06 -1.763137e-05 -1.970075e-06  9.005886e-06
## NZDJPY  2.096713e-06 -4.690769e-06 -1.730455e-06 -1.025880e-05 -4.085088e-06
## NZDUSD  1.202164e-06 -2.426768e-05  1.124834e-05 -4.152726e-06 -3.489796e-06
## USDCAD  4.123858e-06  3.041984e-06 -6.641636e-06 -2.534757e-06 -5.090269e-06
## USDCHF  1.788892e-06 -2.991527e-06  1.146850e-05  3.757113e-06  6.429441e-06
## USDCNH -1.534166e-06 -8.822794e-08 -5.625205e-08  2.776463e-08  3.647580e-08
## USDJPY  1.095662e-05 -5.331690e-06 -1.545412e-05 -6.548750e-06 -2.779575e-06
## XAGUSD -4.738058e-07  2.761921e-07 -3.165155e-07 -2.384427e-07 -9.424967e-08
## XAUUSD  6.039518e-07 -4.522547e-07  4.097117e-07  1.944116e-07  3.751375e-08
##                 PC26          PC27          PC28          PC29
## AUDCHF -6.145465e-06 -3.070700e-06 -7.168486e-06 -2.188890e-06
## AUDJPY -3.027149e-06  3.963640e-06 -3.745770e-06  2.181019e-06
## AUDCAD  1.225628e-06  3.276586e-06  2.642534e-06  1.999485e-06
## AUDNZD  1.093519e-06 -3.741591e-06  2.389608e-06  4.043955e-07
## AUDUSD  4.338981e-06  1.633785e-06  5.373835e-06 -2.762887e-06
## CADCHF  1.190559e-05  3.320800e-06 -4.411467e-07  4.652867e-07
## CADJPY -1.044142e-05 -1.022090e-06  1.553101e-06 -1.820311e-07
## CHFJPY  1.534726e-06  1.109233e-06 -7.403049e-07  7.322159e-08
## EURAUD -1.409719e-06 -5.733787e-06  4.797238e-06  6.664162e-07
## EURCHF  2.833860e-07 -7.610673e-07  3.655175e-07  4.633536e-09
## EURGBP -1.399330e-06  1.183260e-06 -9.516894e-07 -6.481678e-09
## EURJPY -3.297152e-06  1.400708e-06  4.032603e-06  4.372123e-07
## EURNZD  1.480485e-06  7.885043e-06 -3.522833e-06 -8.793703e-07
## EURUSD  4.157577e-06 -4.189559e-06 -3.753392e-06 -1.427131e-07
## GBPAUD  1.970891e-06  3.483528e-06 -1.038154e-06 -7.140415e-09
## GBPCHF -3.676933e-06 -1.157282e-06  7.191611e-07  2.511617e-07
## GBPJPY  1.152837e-05 -3.927484e-06 -3.098865e-06 -1.976968e-07
## GBPNZD -2.875734e-06 -3.576080e-06  2.963350e-07  1.567050e-07
## GBPUSD -5.314874e-06  6.501153e-06  8.839465e-07 -3.179142e-07
## NZDCAD -1.528862e-06  2.161344e-07 -7.523018e-07 -1.817382e-06
## NZDCHF  3.505890e-06  6.271261e-07  4.516512e-06  1.423283e-06
## NZDJPY  1.881780e-06 -1.887257e-06  2.541197e-06 -1.804269e-06
## NZDUSD -2.335107e-06 -3.340057e-06 -3.796714e-06  2.791795e-06
## USDCAD  4.429523e-06 -6.369666e-07 -9.814287e-07  2.823730e-07
## USDCHF -6.868144e-06  1.009912e-06  2.173066e-07 -3.066435e-07
## USDCNH -3.469004e-08 -8.696257e-08 -5.870497e-08 -1.519993e-08
## USDJPY  1.410236e-06  3.379491e-07 -9.295313e-07 -1.994158e-07
## XAGUSD  1.147211e-07 -1.466141e-07 -7.469169e-08  1.405859e-08
## XAUUSD -2.448005e-07  1.653427e-07  9.062932e-08 -2.036460e-08
summary(pca1)
## Importance of components:
##                           PC1    PC2     PC3    PC4     PC5     PC6     PC7
## Standard deviation     2.1725 1.3168 0.75625 0.5247 0.32721 0.16708 0.14873
## Proportion of Variance 0.6327 0.2324 0.07667 0.0369 0.01435 0.00374 0.00297
## Cumulative Proportion  0.6327 0.8651 0.94178 0.9787 0.99304 0.99678 0.99975
##                            PC8     PC9     PC10      PC11      PC12      PC13
## Standard deviation     0.03292 0.02806 0.005316 0.0003824 0.0001497 0.0001109
## Proportion of Variance 0.00015 0.00011 0.000000 0.0000000 0.0000000 0.0000000
## Cumulative Proportion  0.99989 1.00000 1.000000 1.0000000 1.0000000 1.0000000
##                             PC14      PC15      PC16      PC17      PC18
## Standard deviation     8.062e-05 5.333e-05 4.284e-05 2.719e-05 2.069e-05
## Proportion of Variance 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00
## Cumulative Proportion  1.000e+00 1.000e+00 1.000e+00 1.000e+00 1.000e+00
##                             PC19     PC20      PC21      PC22      PC23
## Standard deviation     1.977e-05 1.64e-05 1.598e-05 1.156e-05 1.014e-05
## Proportion of Variance 0.000e+00 0.00e+00 0.000e+00 0.000e+00 0.000e+00
## Cumulative Proportion  1.000e+00 1.00e+00 1.000e+00 1.000e+00 1.000e+00
##                             PC24      PC25      PC26     PC27      PC28
## Standard deviation     7.902e-06 5.614e-06 4.763e-06 3.18e-06 2.883e-06
## Proportion of Variance 0.000e+00 0.000e+00 0.000e+00 0.00e+00 0.000e+00
## Cumulative Proportion  1.000e+00 1.000e+00 1.000e+00 1.00e+00 1.000e+00
##                             PC29
## Standard deviation     1.193e-06
## Proportion of Variance 0.000e+00
## Cumulative Proportion  1.000e+00

Plots

You can see each dimensional is highly positive and negative correlated with what variables. For example: * Dim1 is highly positive correlated with USDCAD,USDCNH,EURAUD,EURNZD,GBPNZD,GBPAUD. * Dim1 is highly negative correlated with AUDUSD,NZDUSD,AUDJPY,NZDJPY. * Dim2 is highly positive correlated with USDCHF,NZDCHF,AUDCHF,USDCAD,USDCNH. * Dim2 is highly negative correlated with CHFJPY,XAGUSD,XAUUSD.

library(factoextra)
fviz_pca_var(pca1, col.var="steelblue")

fviz_eig(pca1, choice='eigenvalue')

fviz_eig(pca1) # percentage of explained variance on y-axis

eig.val<-get_eigenvalue(pca1)

Cumulative variance

It shows optimal number of PC. I think 5 PC is optimal number. In other words, PC1 PC2 PC3 PC4 and PC5 can explain 98% of these variables.

a<-summary(pca1)
plot(a$importance[3,],type="l") 

Individual results

library(factoextra)
ind<-get_pca_ind(pca1)  
print(ind)
## Principal Component Analysis Results for individuals
##  ===================================================
##   Name       Description                       
## 1 "$coord"   "Coordinates for the individuals" 
## 2 "$cos2"    "Cos2 for the individuals"        
## 3 "$contrib" "contributions of the individuals"
head(ind$coord) # coordinates of variables
##            Dim.1       Dim.2      Dim.3       Dim.4         Dim.5        Dim.6
## AUDCHF -2.780202  1.44163929  0.1448744 -0.14929520  0.0016158813 -0.111757000
## AUDJPY -3.205777 -0.41488172  0.2674273 -0.08653253  0.2994425088 -0.002547915
## AUDCAD -2.376639  1.00768447 -0.8990766 -0.28771505 -0.0005210032 -0.081676678
## AUDNZD -1.178321  0.09500988  0.2949782 -1.07049857  0.4554424698 -0.509332305
## AUDUSD -3.133836 -0.15840469 -0.6239408 -0.26814197 -0.0167472885 -0.116658864
## CADCHF -1.852834  1.19722114  1.1662542  0.07061285 -0.0006939727 -0.087302003
##               Dim.7        Dim.8        Dim.9       Dim.10        Dim.11
## AUDCHF -0.004002188 -0.005662923 -0.013877683 0.0022929292 -5.507053e-04
## AUDJPY  0.079582715 -0.007770209  0.003376529 0.0022405765 -6.430215e-04
## AUDCAD  0.311261852 -0.006661732 -0.003724296 0.0002171481  1.364725e-05
## AUDNZD  0.150078626  0.015999788  0.002968622 0.0007045276 -1.016627e-05
## AUDUSD -0.019697677 -0.002927917  0.018701240 0.0023052767 -6.059449e-04
## CADCHF -0.335424306 -0.005813137 -0.017516427 0.0014324590 -1.970040e-04
##               Dim.12        Dim.13        Dim.14        Dim.15        Dim.16
## AUDCHF  1.287161e-04 -2.515010e-05  1.140333e-04  7.854407e-05 -4.090632e-05
## AUDJPY -1.186891e-04  1.247526e-04  7.607234e-05  2.394558e-05  5.291006e-05
## AUDCAD  1.890287e-04  1.153905e-04  2.363429e-05  2.402855e-05  1.055229e-05
## AUDNZD  2.732671e-05 -1.267987e-05  6.086692e-07 -1.764071e-05  7.612283e-06
## AUDUSD -9.027464e-05  1.218120e-04 -6.331727e-05 -1.502048e-05 -4.398109e-05
## CADCHF  2.535514e-05  3.413013e-06 -4.225769e-05 -1.950833e-05 -1.342241e-05
##               Dim.17        Dim.18        Dim.19        Dim.20        Dim.21
## AUDCHF -1.697721e-05 -2.443412e-05 -8.466285e-06 -2.038388e-06 -9.180707e-07
## AUDJPY  1.393444e-05  8.708996e-06 -3.844665e-07  2.105516e-06 -7.606444e-06
## AUDCAD -4.108203e-05  1.022916e-05 -6.950811e-06 -7.905717e-06 -1.805791e-05
## AUDNZD -7.767296e-06  7.013241e-06  1.435684e-05 -1.134128e-05  1.412604e-05
## AUDUSD  1.019815e-05 -1.493251e-05  5.820205e-06  3.539698e-05 -1.114870e-05
## CADCHF -3.188340e-05  3.202753e-05  7.568860e-06 -6.701264e-06  2.533507e-06
##               Dim.22        Dim.23        Dim.24        Dim.25        Dim.26
## AUDCHF -1.823073e-06 -1.334314e-06 -3.609906e-06 -7.548673e-06 -6.145465e-06
## AUDJPY  1.520903e-05 -4.590536e-06  1.920905e-05  6.507594e-06 -3.027149e-06
## AUDCAD  9.156686e-06  1.110885e-05 -1.838526e-05 -4.411223e-06  1.225628e-06
## AUDNZD -2.591913e-05 -8.333502e-06  5.203655e-06  3.190126e-06  1.093519e-06
## AUDUSD  4.938255e-06  1.218990e-05  3.295929e-06  3.362929e-06  4.338981e-06
## CADCHF  1.254602e-06  5.012202e-07  6.101863e-06 -1.275404e-05  1.190559e-05
##               Dim.27        Dim.28        Dim.29
## AUDCHF -3.070700e-06 -7.168486e-06 -2.188890e-06
## AUDJPY  3.963640e-06 -3.745770e-06  2.181019e-06
## AUDCAD  3.276586e-06  2.642534e-06  1.999485e-06
## AUDNZD -3.741591e-06  2.389608e-06  4.043955e-07
## AUDUSD  1.633785e-06  5.373835e-06 -2.762887e-06
## CADCHF  3.320800e-06 -4.411467e-07  4.652867e-07
head(ind$contrib) # contributions of individuals to PC
##           Dim.1      Dim.2     Dim.3       Dim.4        Dim.5        Dim.6
## AUDCHF 5.647316 4.13321730 0.1265468  0.27918654 8.409569e-05 1.542854e+00
## AUDJPY 7.508548 0.34231317 0.4312009  0.09379110 2.887897e+00 8.019466e-04
## AUDCAD 4.126822 2.01940835 4.8737313  1.03687872 8.742500e-06 8.240842e-01
## AUDNZD 1.014417 0.01795199 0.5246237 14.35406725 6.680699e+00 3.204630e+01
## AUDUSD 7.175330 0.04990121 2.3472260  0.90060093 9.033246e-03 1.681167e+00
## CADCHF 2.508200 2.85051790 8.2007694  0.06245543 1.551099e-05 9.415077e-01
##               Dim.7      Dim.8      Dim.9      Dim.10      Dim.11     Dim.12
## AUDCHF  0.002496865 0.10202468 0.84328045 0.641515667 7.150282732 2.54867035
## AUDJPY  0.987273464 0.19208316 0.04992052 0.612555590 9.748455099 2.16705558
## AUDCAD 15.102601384 0.14118814 0.06073324 0.005753578 0.004391116 5.49671663
## AUDNZD  3.511055186 0.81442736 0.03858763 0.060565032 0.002436732 0.11487430
## AUDUSD  0.060482538 0.02727354 1.53136578 0.648443407 8.656674577 1.25365943
## CADCHF 17.538361785 0.10750905 1.34347367 0.250374664 0.915028792 0.09889628
##             Dim.13       Dim.14    Dim.15    Dim.16    Dim.17    Dim.18
## AUDCHF 0.177200049 6.8997389107 7.4804011 3.1446956 1.3443182 4.8094097
## AUDJPY 4.359971665 3.0705968904 0.6952628 5.2610743 0.9056250 0.6109908
## AUDCAD 3.730135776 0.2963836350 0.7000889 0.2092626 7.8717880 0.8429039
## AUDNZD 0.045041659 0.0001965766 0.3773376 0.1089000 0.2813904 0.3962197
## AUDUSD 4.156854766 2.1272259281 0.2735684 3.6352124 0.4850784 1.7962393
## CADCHF 0.003263326 0.9475033088 0.4614645 0.3385780 4.7413140 8.2631465
##             Dim.19      Dim.20     Dim.21      Dim.22     Dim.23     Dim.24
## AUDCHF 0.632379292  0.05324673 0.01138325  0.08578275 0.05976623  0.7197081
## AUDJPY 0.001304094  0.05681151 0.78140694  5.97028475 0.70740267 20.3786855
## AUDCAD 0.426248471  0.80094311 4.40401599  2.16405575 4.14264481 18.6682785
## AUDNZD 1.818485291  1.64832574 2.69497418 17.33933587 2.33128278  1.4954833
## AUDUSD 0.298860430 16.05653014 1.67865763  0.62941739 4.98815327  0.5999573
## CADCHF 0.505420410  0.57548315 0.08668785  0.04062596 0.00843329  2.0563145
##           Dim.25     Dim.26    Dim.27      Dim.28     Dim.29
## AUDCHF  6.234226  5.7401352 3.2158683 21.31664288 11.6093463
## AUDJPY  4.633213  1.3927725 5.3581141  5.82030975 11.5260015
## AUDCAD  2.128920  0.2283125 3.6615644  2.89670969  9.6871500
## AUDNZD  1.113415  0.1817461 4.7745911  2.36873828  0.3962529
## AUDUSD  1.237305  2.8614621 0.9103604 11.97933354 18.4963501
## CADCHF 17.796607 21.5434270 3.7610484  0.08072909  0.5245674
head(ind$cos2) # represents the quality of representation for variables on the factor map
##            Dim.1       Dim.2       Dim.3        Dim.4        Dim.5        Dim.6
## AUDCHF 0.7836203 0.210700787 0.002127826 0.0022596679 2.647109e-07 1.266200e-03
## AUDJPY 0.9673185 0.016201360 0.006731539 0.0007047932 8.439754e-03 6.110445e-07
## AUDCAD 0.7375281 0.132587097 0.105546912 0.0108087956 3.544320e-08 8.710604e-04
## AUDNZD 0.4450012 0.002893153 0.027887759 0.3672874213 6.648152e-02 8.314503e-02
## AUDUSD 0.9514685 0.002430961 0.037716258 0.0069658077 2.717258e-05 1.318492e-03
## CADCHF 0.5404636 0.225653646 0.214131231 0.0007849844 7.581906e-08 1.199892e-03
##               Dim.7        Dim.8        Dim.9       Dim.10       Dim.11
## AUDCHF 1.623858e-06 3.251130e-06 1.952481e-05 5.330086e-07 3.074620e-08
## AUDJPY 5.961292e-04 5.682877e-06 1.073109e-06 4.725224e-07 3.891830e-08
## AUDCAD 1.265039e-02 5.794640e-06 1.811092e-06 6.156929e-09 2.431881e-11
## AUDNZD 7.218909e-03 8.204693e-05 2.824515e-06 1.590852e-07 3.312507e-11
## AUDUSD 3.758997e-05 8.305379e-07 3.388306e-05 5.148586e-07 3.557199e-08
## CADCHF 1.771261e-02 5.320038e-06 4.830417e-05 3.230413e-07 6.110033e-09
##              Dim.12       Dim.13       Dim.14       Dim.15       Dim.16
## AUDCHF 1.679649e-09 6.412572e-11 1.318306e-09 6.254315e-10 1.696421e-10
## AUDJPY 1.325943e-09 1.464880e-09 5.446988e-10 5.397017e-11 2.634993e-10
## AUDCAD 4.665600e-09 1.738570e-09 7.293518e-11 7.538888e-11 1.453938e-11
## AUDNZD 2.393364e-10 5.153043e-11 1.187398e-13 9.973921e-11 1.857222e-11
## AUDUSD 7.895387e-10 1.437548e-09 3.884063e-10 2.185797e-11 1.874018e-10
## CADCHF 1.012105e-10 1.833874e-12 2.811286e-10 5.991476e-11 2.836315e-11
##              Dim.17       Dim.18       Dim.19       Dim.20       Dim.21
## AUDCHF 2.922035e-11 6.052659e-11 7.266725e-12 4.212372e-13 8.544865e-14
## AUDJPY 1.827602e-11 7.139027e-12 1.391297e-14 4.172727e-13 5.445857e-12
## AUDCAD 2.203718e-10 1.366255e-11 6.308457e-12 8.160836e-12 4.257819e-11
## AUDNZD 1.933631e-11 1.576418e-11 6.606202e-11 4.122472e-11 6.395502e-11
## AUDUSD 1.007591e-11 2.160268e-11 3.281848e-12 1.213876e-10 1.204176e-11
## CADCHF 1.600379e-10 1.614881e-10 9.018920e-12 7.069799e-12 1.010504e-12
##              Dim.22       Dim.23       Dim.24       Dim.25       Dim.26
## AUDCHF 3.369466e-13 1.804966e-13 1.321127e-12 5.776891e-12 3.828798e-12
## AUDJPY 2.177239e-11 1.983489e-12 3.473077e-11 3.986060e-12 8.625226e-13
## AUDCAD 1.094785e-11 1.611350e-11 4.413588e-11 2.540798e-12 1.961414e-13
## AUDNZD 2.153151e-10 2.225815e-11 8.678623e-12 3.261742e-12 3.832537e-13
## AUDUSD 2.362593e-12 1.439600e-11 1.052441e-12 1.095664e-12 1.823968e-12
## CADCHF 2.478024e-13 3.955039e-14 5.861632e-12 2.560882e-11 2.231494e-11
##              Dim.27       Dim.28       Dim.29
## AUDCHF 9.559336e-13 5.209641e-12 4.857366e-13
## AUDJPY 1.478738e-12 1.320642e-12 4.477356e-13
## AUDCAD 1.401830e-12 9.117865e-13 5.220213e-13
## AUDNZD 4.486902e-12 1.830151e-12 5.241390e-14
## AUDUSD 2.586019e-13 2.797761e-12 7.395508e-13
## CADCHF 1.736117e-12 3.063795e-14 3.408278e-14

Contributions of individual variables to PC

library(gridExtra)
var<-get_pca_var(pca1)
a<-fviz_contrib(pca1, "var", axes=1, xtickslab.rt=90) # default angle=45°
b<-fviz_contrib(pca1, "var", axes=2, xtickslab.rt=90)
grid.arrange(a,b,top='Contribution to the first two Principal Components')

MDS model

The main goal of MDS is minimizing dimensions, preserving distance between data points.

Standarize datasets

library(tidyverse)
library(corrplot)
library(clusterSim)
df.norm<-data.Normalization(df, type="n1",normalization="column")
df.norm.plot<-cor(df.norm, method="pearson") 
corrplot(df.norm.plot, order ="alphabet", tl.cex=0.6)

Training model

dist_df<-dist(t(df.norm))
as.matrix(dist_df)[1:5, 1:5] # let’s see the distance matrix
##          AUDCHF   AUDJPY   AUDCAD   AUDNZD   AUDUSD
## AUDCHF  0.00000 67.37418 58.69585 93.03029 64.32286
## AUDJPY 67.37418  0.00000 79.95874 90.12655 48.55428
## AUDCAD 58.69585 79.95874  0.00000 95.35919 56.01423
## AUDNZD 93.03029 90.12655 95.35919  0.00000 93.07366
## AUDUSD 64.32286 48.55428 56.01423 93.07366  0.00000
mds1<-cmdscale(dist_df, k=2) #k - the maximum dimension of the space
summary(mds1)
##        V1               V2        
##  Min.   :-59.09   Min.   :-85.06  
##  1st Qu.:-39.81   1st Qu.:-35.12  
##  Median :-22.16   Median :  8.64  
##  Mean   :  0.00   Mean   :  0.00  
##  3rd Qu.: 36.11   3rd Qu.: 31.33  
##  Max.   : 95.30   Max.   : 71.86
plot(mds1)

Similarity and Dissimilarity matrix

Similarity - it shows a positive correlation between variables. Dissimilarity - it shows a negative correlation between variables.

### Similarity and Dissimilarity matrix
sim<-cor(df.norm)  # similarity matrix
dis.t<-dist(t(df.norm)) # dissimilarity matrix
library(smacof)
dis2<-sim2diss(sim, method=1, to.dist = TRUE)
head(sim)
##           AUDCHF    AUDJPY    AUDCAD    AUDNZD    AUDUSD    CADCHF      CADJPY
## AUDCHF 1.0000000 0.7042814 0.7755569 0.4361802 0.7304605 0.7489569  0.28041340
## AUDJPY 0.7042814 1.0000000 0.5834918 0.4708277 0.8464157 0.4873813  0.79371358
## AUDCAD 0.7755569 0.5834918 1.0000000 0.4075977 0.7955965 0.1629495 -0.03011594
## AUDNZD 0.4361802 0.4708277 0.4075977 1.0000000 0.4356543 0.2502926  0.26273199
## AUDUSD 0.7304605 0.8464157 0.7955965 0.4356543 1.0000000 0.3072117  0.44770993
## CADCHF 0.7489569 0.4873813 0.1629495 0.2502926 0.3072117 1.0000000  0.46880326
##            CHFJPY     EURAUD    EURCHF      EURGBP    EURJPY     EURNZD
## AUDCHF -0.2756359 -0.7593473 0.7638475  0.01564967 0.3537505 -0.5244581
## AUDJPY  0.4876679 -0.6776433 0.4108405 -0.16338143 0.8147020 -0.4259333
## AUDCAD -0.1598355 -0.6999549 0.4778026  0.15685226 0.2376629 -0.4776496
## AUDNZD  0.0905585 -0.2516660 0.4032833  0.32925447 0.4239972  0.2779589
## AUDUSD  0.2505331 -0.7074345 0.4148729 -0.01127155 0.5900626 -0.4715231
## CADCHF -0.2643930 -0.4522829 0.6933101 -0.14041195 0.3028410 -0.3202533
##              EURUSD     GBPAUD    GBPCHF    GBPJPY     GBPNZD     GBPUSD
## AUDCHF  0.294529340 -0.7418321 0.7345366 0.2830734 -0.5957209 0.26339455
## AUDJPY  0.544291853 -0.5254762 0.5136758 0.7877748 -0.3300341 0.63098252
## AUDCAD  0.443376516 -0.7939430 0.3553265 0.1111700 -0.6673029 0.30583393
## AUDNZD  0.363044360 -0.4833282 0.1547223 0.1914080  0.0295884 0.11477894
## AUDUSD  0.727012463 -0.6703275 0.4122796 0.5094286 -0.5125858 0.69810332
## CADCHF -0.003494861 -0.3261343 0.7762797 0.3253657 -0.2325759 0.09227028
##             NZDCAD     NZDCHF    NZDJPY     NZDUSD     USDCAD      USDCHF
## AUDCHF  0.59948124 0.93693826 0.6272194 0.62980029 -0.2989188  0.43014244
## AUDJPY  0.37001294 0.59479820 0.9489451 0.74461391 -0.7125934 -0.13956858
## AUDCAD  0.85924502 0.70252994 0.5057336 0.71566702 -0.1451947  0.02784396
## AUDNZD -0.11667581 0.09454288 0.1688873 0.07358324 -0.2309610  0.02850358
## AUDUSD  0.62076941 0.63944804 0.7892297 0.92961814 -0.7139071 -0.30180839
## CADCHF  0.03764082 0.72865559 0.4499015 0.23546534 -0.3161523  0.64289650
##            USDCNH      USDJPY      XAGUSD     XAUUSD
## AUDCHF -0.3079255  0.14905180 -0.37895964 -0.7233128
## AUDJPY -0.6936721  0.52060678  0.13235378 -0.1947619
## AUDCAD -0.3588304 -0.18030693 -0.05682365 -0.3827726
## AUDNZD -0.0942304  0.17455482 -0.02856079 -0.1734553
## AUDUSD -0.7205687 -0.01362342  0.27361129 -0.1203454
## CADCHF -0.1025139  0.41988622 -0.52975165 -0.7297891
as.matrix(dis2)[1:5,1:5]
##           AUDCHF    AUDJPY    AUDCAD    AUDNZD    AUDUSD
## AUDCHF 0.0000000 0.2957186 0.2244431 0.5638198 0.2695395
## AUDJPY 0.2957186 0.0000000 0.4165082 0.5291723 0.1535843
## AUDCAD 0.2244431 0.4165082 0.0000000 0.5924023 0.2044035
## AUDNZD 0.5638198 0.5291723 0.5924023 0.0000000 0.5643457
## AUDUSD 0.2695395 0.1535843 0.2044035 0.5643457 0.0000000

Mantel test

P value of mantel-test is 0,001. It means our dataset is non-random pattern, interpreted as a similarity of the matrices.

### Mantel test
library(ape)
mantel.test(as.matrix(sim), as.matrix(dis2)) 
## $z.stat
## [1] -58.36825
## 
## $p
## [1] 0.001
## 
## $alternative
## [1] "two.sided"