I will be forecasting the price of Gold1 in US Dollars per ounce, using a variety of techniques to produce forecast values for 30th April 2015, 31st May 2015 and 31st March 2016. In creating these forecasts I will be ignoring all values that have been released since 31st March 2015.
Gold is an extremely popular precious metal, listed by BestTenEverything as the 4th most frequently traded commodity in the world2. It shares very few similarities with other commodities, which makes forecasting it different to forecasting anything else. Most commodities, such as food and beverage commodities, gases or oils are ‘essential’ goods, are depleted when used, and their prices and quantities are affected by the processes required to obtain them. Only precious metals like gold, silver, platinum and palladium are completely resuable and retradable, and while mining is still ongoing, it is only on a very small scale, which means we can confidently know roughly how much gold will be in circulation at any point in the near future.
It’s when we really consider the ‘essentialness’ of these commodities that gold stands out from other precious metals. Silver and palladium both have uses in science and ‘silverware’, but gold has few practical applications outside of corrosion resistant electrical conductors. It’s soft, not very durable and very expensive. Yet, perhaps simply because it’s shiny and it’s rare, gold has, for thousands and thousands of years, stood as a means for trade, a symbol of wealth and power, and a financial safehaven for investment, as well as being fundamental to jewellery manufacture. Roughly 50% of new gold produced goes into jewellery, 40% is bought for investment purposes and 10% goes into practical uses3.
Gold was, for roughly 2 millenia, the primary material used for coinage, from the early Hellenistic Greek Empires through to the 1930s. After the 1930s currencies were pegged to the price of gold using the gold standard until 1976. Even today there remain economic theories of a strong, possibly inverse relationship between the price of gold and the price of the US Dollar4.
The price of gold is determined twice daily by the London Market Bullion Association, using an auction-like system to determine exactly what the price is5, in what is known as the London Gold Fix6. Their method for obtaining this result changed on the 20th March 20157, and is now controlled by a third party; ICE Benchmark Administration (IBA), although the actual auction-like system remains much the same.
At the start of 2015, Goldman Sachs lowered forecasts for many base metals but raised their forecast for gold by $62 to $1612 per ounce as an average across 20158. Their given reason for making this change is “cost deflation - driven by a combination of actual and anticipated U.S. dollar strength, cheaper energy and other input costs, and our expectation of an improvement in mining productivity”.
The London Market Bullion Association published an analysts’ forecast survey in January 20159, in which its contributors predicted the price of gold to average $1211 in 2015, a 0.6% fall from the price to that point in January, and a 3.64% fall from the average price in 2014.
Market Oracle predicts the price of gold will fall until around August 2015 at a low of $1050 which will propel the price upwards above $1300 to a $1350 high in November 2015, closing the year around $130010.
Image taken from marketoracle.co.uk
Fund manager Evy Hambro was quoted in the Telegraph at the start of the year11 claiming that gold has bottomed out following its recent fall in price, and will soon start to rise again. He cites fear of deflation, arising from the European Central Bank being “expected to print billions of new euros”, as being a factor that will cause people to reach out to gold as a safe asset. The Telegraph points out that Mr Hambro’s investment fund that deals largely with gold and gold mining shares has lost his investors more than 50% of their cash in the last 3 years.
The same Telegraph article goes on to give the contrasting opinions of Stephen Jones, chief investment officer at Kames Capital, and Iain Tait, a partner at London & Capital. They both argue that because very low inflation looks to be likely in the foreseeable future, the only people turning to gold as a hedge would be thinking very long term.
The Week opine that the recent strength of the dollar is preventing gold prices from rising much, and expect that to continue for the short term future12.
Chief executive of McEwen Mining Inc. Rob McEwen has recently reiterated his belief that the price of gold will surpass $5000 per oz13. Sadly, Mr McEwen didn’t put a timeframe on this forecast.
I feel it’s worth noting that the majority of forecasts predicting a rise in the gold price are given by individuals with a vested interest in the price of gold rising, and thus may not be reliable.
Our dataset starts in 1968. No data is available before then because the price of gold in dollars only began to fluctuate just before the dollar came completely off the gold standard in 1971.
The price is quite stable from the spike in 1980 until about 2001. Then we see an incredible spike upwards, from 275.35 in August 2001 to at 1826 in August 2011. That’s a percentage increase of 563% in a decade. Clearly, finding explanatory reasons for this rise will be crucial to building an accurate forecasting model.
Eyeballing this dataset and treating it as any time-series would allow us to consider the possibility that this is a random walk, as has been suggested by economist J.P. Botha14, for instance taking the form Yt = Yt-1 + ε .We must certainly, therefore, consider using a naïve forecast method where E(Yt) = E(Yt-1 + ε), so Ŷt = Yt-1.
Here are ADF and KPSS unit root tests to attempt to decide if this dataset could be a random walk.
##
## Augmented Dickey-Fuller Test
##
## data: Gold_Price
## Dickey-Fuller = -1.7274, Lag order = 8, p-value = 0.6937
## alternative hypothesis: stationary
##
## KPSS Test for Level Stationarity
##
## data: Gold_Price
## KPSS Level = 5.3325, Truncation lag parameter = 5, p-value = 0.01
Our ADF critical values are -3.96 at the 1% level, -3.41 at the 5% level and -3.12 and the 10% level. We fail to reject our ADF stat of -1.7274 at any of these levels, therefore failing to reject the null hypothesis of a unit root. Our KPSS critical values are 0.216 at the 1% level, 0.146 at the 5% level and 0.119 and the 10% level. We firmly reject our KPSS stat of 5.3325 at all of these levels, therefore rejecting the null of stationarity in favour of the alternative of a unit root. Our PP critical values are -3.96 at the 1% level, -3.41 at the 5% level and -3.12 and the 10% level.
Here are the Autocorrelation and Partial Autocorrelation estimations for our dataset:
The slow decline in our ACF graph also suggests a high level of auto correlation which is indicative of a random walk. I conclude from these results that the presence of a unit root is likely and therefore there remains a good chance that this dataset is a random walk. This may mean that using a naïve method gives us a strong forecast.
Here I’ve used an AR-X model to determine the structural breaks in the dataset.
These results are plainly intuitive. The model has no difficulties explaining the stable parts of the model and the residuals fall around the peaks and troughs, firstly in 1980, then in the 2000s.
We see similar results if we run a Time Series Decomposition Model:
Or an Indicator Saturation Model:
In all cases we’re finding distortions in our residuals around the times when the price changes sharply, so the challenge becomes finding ways to be able to predict and explain these sharp changes. I thought one possible reason for them could be related to gold’s use as an investment safehaven. Throughout history gold has been seen as the go-to tangible asset investment along with property. Demand for gold will therefore rise when investors don’t want to hold onto money in bank accounts. Two instances where this would be particularly true are when interest rates are low enough for investors to seek a higher rate of return, and when the possiblility of government top-slicing or a bank collapsing is especially high.
These criteria are met during times of recession, so I decided to plot the beginning and end of US recessions against the gold price.
Here, just from looking at the data, we tend to see rises in the gold price delayed shortly after the end of a recession, particularly so for larger recessions. This might suggest that the monetary repurcussions of recession lead to a greater demand for gold a short while after the recession is officially over. We even see that in the long gap between the recession ending in 1991 and the one beginning in 2001 that the price of gold steadily but slowly declines without a recession to cause it to rise.
While gold is often a sensible investment because it provides a security in its tangibility or simply because its price has risen largely over time, it is often used to hedge against changes in the price of the dollar or low inflation, although some economists feel this isn’t always wise15.
There are five forecasting techniques I will be looking to evaluate. An ARIMA model whose parameters are determined automatically, an ARIMA model whose parameters are chosen manually by me, a Time Series Decomposition Model (STL), an Exponential Smoothing State Space Model (ETS) and eventually a linear regression run on lagged explanatory variables. After examining the data I chose to use the order (0,1,1) without drift for my Manual ARIMA.
##
## Forecast method: ARIMA(0,1,1) with drift
##
## Model Information:
## Series: gold.t
## ARIMA(0,1,1) with drift
##
## Coefficients:
## ma1 drift
## -0.1145 2.0303
## s.e. 0.0438 1.3089
##
## sigma^2 estimated as 1229: log likelihood=-2796.07
## AIC=5598.13 AICc=5598.18 BIC=5611.13
##
## Error measures:
## ME RMSE MAE MPE MAPE MASE
## Training set 0.00199215 35.00079 19.74659 -0.6616115 4.322448 0.260411
## ACF1
## Training set 0.004802896
##
## Forecasts:
## Point Forecast Lo 80 Hi 80 Lo 95 Hi 95
## Apr 2015 1185.157 1140.222 1230.092 1116.4352 1253.880
## May 2015 1187.188 1127.166 1247.209 1095.3931 1278.982
## Jun 2015 1189.218 1117.204 1261.232 1079.0828 1299.353
## Jul 2015 1191.248 1108.972 1273.524 1065.4180 1317.079
## Aug 2015 1193.279 1101.885 1284.672 1053.5046 1333.053
## Sep 2015 1195.309 1095.629 1294.989 1042.8613 1347.757
## Oct 2015 1197.339 1090.010 1304.668 1033.1936 1361.485
## Nov 2015 1199.370 1084.902 1313.838 1024.3058 1374.433
## Dec 2015 1201.400 1080.213 1322.587 1016.0601 1386.740
## Jan 2016 1203.430 1075.877 1330.983 1008.3550 1398.505
## Feb 2016 1205.460 1071.845 1339.076 1001.1131 1409.808
## Mar 2016 1207.491 1068.076 1346.906 994.2741 1420.707
##
## Forecast method: ARIMA(0,1,1)
##
## Model Information:
## Series: gold.t
## ARIMA(0,1,1)
##
## Coefficients:
## ma1
## -0.1092
## s.e. 0.0435
##
## sigma^2 estimated as 1232: log likelihood=-2802.24
## AIC=5608.48 AICc=5608.5 BIC=5617.15
##
## Error measures:
## ME RMSE MAE MPE MAPE MASE
## Training set 2.276134 35.07533 19.55634 0.4925356 4.000649 0.2579021
## ACF1
## Training set -0.0002376766
##
## Forecasts:
## Point Forecast Lo 80 Hi 80 Lo 95 Hi 95
## Apr 2015 1182.673 1137.682 1227.663 1113.8653 1251.480
## May 2015 1182.673 1122.419 1242.926 1090.5229 1274.823
## Jun 2015 1182.673 1110.307 1255.038 1071.9987 1293.347
## Jul 2015 1182.673 1099.949 1265.396 1056.1584 1309.187
## Aug 2015 1182.673 1090.752 1274.594 1042.0918 1323.254
## Sep 2015 1182.673 1082.394 1282.951 1029.3100 1336.035
## Oct 2015 1182.673 1074.682 1290.664 1017.5144 1347.831
## Nov 2015 1182.673 1067.484 1297.861 1006.5069 1358.838
## Dec 2015 1182.673 1060.711 1304.635 996.1479 1369.198
## Jan 2016 1182.673 1054.294 1311.051 986.3346 1379.011
## Feb 2016 1182.673 1048.183 1317.162 976.9890 1388.356
## Mar 2016 1182.673 1042.338 1323.007 968.0500 1397.295
##
## Forecast method: STL + ETS(M,A,N)
##
## Model Information:
## ETS(M,A,N)
##
## Call:
## ets(y = x, model = etsmodel)
##
## Smoothing parameters:
## alpha = 0.9999
## beta = 1e-04
##
## Initial states:
## l = 54.6484
## b = 2.2878
##
## sigma: 0.0792
##
## AIC AICc BIC
## 7247.468 7247.540 7264.809
##
## Error measures:
## ME RMSE MAE MPE MAPE MASE
## Training set -0.2721609 34.88957 20.37349 -0.8109975 5.358254 0.2686784
## ACF1
## Training set -0.1016066
##
## Forecasts:
## Point Forecast Lo 80 Hi 80 Lo 95 Hi 95
## Apr 2015 1177.031 1057.2497 1296.812 993.8414 1360.220
## May 2015 1175.560 1005.7271 1345.392 915.8232 1435.296
## Jun 2015 1170.494 961.9563 1379.031 851.5633 1489.424
## Jul 2015 1175.719 934.3013 1417.138 806.5022 1544.937
## Aug 2015 1185.925 915.3169 1456.534 772.0654 1599.785
## Sep 2015 1194.455 897.2558 1491.655 739.9279 1648.983
## Oct 2015 1194.434 872.5962 1516.272 702.2255 1686.643
## Nov 2015 1203.434 858.4901 1548.378 675.8878 1730.980
## Dec 2015 1204.302 837.4934 1571.111 643.3165 1765.288
## Jan 2016 1214.799 827.1552 1602.443 621.9490 1807.649
## Feb 2016 1215.403 807.7939 1623.011 592.0189 1838.786
## Mar 2016 1206.521 779.6941 1633.347 553.7458 1859.296
##
## Forecast method: ETS(M,Md,N)
##
## Model Information:
## ETS(M,Md,N)
##
## Call:
## ets(y = gold.t)
##
## Smoothing parameters:
## alpha = 0.9924
## beta = 0.0565
## phi = 0.9708
##
## Initial states:
## l = 38.9441
## b = 1.0013
##
## sigma: 0.0581
##
## AIC AICc BIC
## 6895.229 6895.337 6916.904
##
## Error measures:
## ME RMSE MAE MPE MAPE MASE
## Training set -0.6848402 35.70133 19.70011 -0.07001472 4.027806 0.2597981
## ACF1
## Training set -0.1364345
##
## Forecasts:
## Point Forecast Lo 80 Hi 80 Lo 95 Hi 95
## Apr 2015 1174.151 1086.7049 1261.530 1038.3748 1310.690
## May 2015 1168.908 1042.6140 1297.995 979.6435 1366.798
## Jun 2015 1163.842 1006.1887 1325.969 927.6107 1422.628
## Jul 2015 1158.945 975.5461 1356.179 894.7915 1469.425
## Aug 2015 1154.210 949.5610 1381.350 855.6480 1514.795
## Sep 2015 1149.633 922.1123 1403.450 824.4896 1556.754
## Oct 2015 1145.207 898.6350 1424.953 798.6154 1608.878
## Nov 2015 1140.926 873.0259 1443.926 770.7653 1653.255
## Dec 2015 1136.786 851.3539 1469.974 740.5509 1698.395
## Jan 2016 1132.782 832.8777 1496.574 714.7911 1749.333
## Feb 2016 1128.908 817.3115 1511.879 684.6788 1818.980
## Mar 2016 1125.160 796.0805 1545.487 661.1443 1854.328
Here’s how they all look side by side:
The Auto ARIMA and STL models both predict a reasonably steady rise in the gold price, the ETS model predicts a fall and the Manual ARIMA, because it doesn’t have a drift term, forecasts no change over the next 12 months.
I then plotted the residuals for each of these models:
For each of the models the residuals are in places we’d expect them to be: very early in the models when there isn’t a lot of data to base forecasts on, around 1980 when we saw our first big structural break, one large one around 2000 when the price starts to shoot up, and a large drop shortly before 2010 when the price began to fall. The residuals for all four models become, on the whole, more stable as time goes on, which is promising for our models in 2015.
Here’s how these residuals are distributed:
The AUTO Arima and STL residuals are shifted slightly to the left, but the ETS and Manual ARIMA residuals are both almost perfectly central and have close to a normal distribution.
Next I ran all four forecast models over a training period of the previous 12 months, April 2014 through to March 2015:
Their accuracy in Mean Absolute Percentage Error, over that training period, as well as over the entirety of the model is below.
## Auto ARIMA Manual ARIMA STL ETS
## Training Set 6.279068 5.121597 6.018055 3.486353
## All Data 4.322448 4.000649 5.358254 4.027806
Over the training period the ETS model was the most accurate, as it was the only one to forecast a fall in price. Over the whole model, however, the Manual Arima turned out to be the most accurate, with a MAPE of 4.00, just ahead of the ETS model. As we would expect, the two most accurate models are the ones whose residuals were most central and normally distributed earlier.
These percentage errors though, are averaged across the whole 12 month period of a forecast. This is a very sensible thing to do in order to obtain the overall accuracy of a forecast - a model may be a little further out than others in its first couple of values, but do a better job of obtaining the overall trend of the data which will make it a more accurate model over the longer term.
For the purposes of my project however, I wanted to obtain the accuracy of each model at forecasting only one month, two months or twelve months respectively. While the overall accuracy of a model needs to test as many periods as possible, if I need a figure for the price of gold at the end of April I am only interested in how well each model can forecast one month ahead.
Obtaining this value isn’t possible using the accuracy function in R, so I had to do it manually. Firstly, I used a random numnber generator to gather 30 random numbers between 180 and 550 to use as my months after the start of the dataset. 180 months allows for 15 full years of data to be analysed in each forecast. Originally I tried with more than 30 numbers but found there’s only a certain length a formula can be before the software is unable to run it.
These 30 numbers were:
## [1] 188 194 195 200 258 266 284 292 306 309 337 339 346 357 358 362 370
## [18] 407 416 441 444 459 462 465 469 480 485 509 510 544
Each number represents a number of months after April 1968, which is when our dataset begins. Using all available data up to each random date I will generate a 1 month, 2 month, and 12 month forecast with each of our four forecast models from each of those months. I will then be able to compare each forecast value with the corresponding correct value and use all these results to calculate a mean percentage error. Here’s an example of what one of these calculations looks like - for a one month Auto ARIMA forecast:
auto1test=data.frame(randno1,c(gold.t[randno1]),c(data.frame(forecast(auto.arima(gold.t[1:188]),h=1))[1,1],data.frame(forecast(auto.arima(gold.t[1:194]),h=1))[1,1],data.frame(forecast(auto.arima(gold.t[1:195]),h=1))[1,1],data.frame(forecast(auto.arima(gold.t[1:200]),h=1))[1,1],data.frame(forecast(auto.arima(gold.t[1:258]),h=1))[1,1],data.frame(forecast(auto.arima(gold.t[1:266]),h=1))[1,1],data.frame(forecast(auto.arima(gold.t[1:284]),h=1))[1,1],data.frame(forecast(auto.arima(gold.t[1:292]),h=1))[1,1],data.frame(forecast(auto.arima(gold.t[1:306]),h=1))[1,1],data.frame(forecast(auto.arima(gold.t[1:309]),h=1))[1,1],data.frame(forecast(auto.arima(gold.t[1:337]),h=1))[1,1],data.frame(forecast(auto.arima(gold.t[1:339]),h=1))[1,1],data.frame(forecast(auto.arima(gold.t[1:346]),h=1))[1,1],data.frame(forecast(auto.arima(gold.t[1:357]),h=1))[1,1],data.frame(forecast(auto.arima(gold.t[1:358]),h=1))[1,1],data.frame(forecast(auto.arima(gold.t[1:362]),h=1))[1,1],data.frame(forecast(auto.arima(gold.t[1:370]),h=1))[1,1],data.frame(forecast(auto.arima(gold.t[1:407]),h=1))[1,1],data.frame(forecast(auto.arima(gold.t[1:416]),h=1))[1,1],data.frame(forecast(auto.arima(gold.t[1:441]),h=1))[1,1],data.frame(forecast(auto.arima(gold.t[1:444]),h=1))[1,1],data.frame(forecast(auto.arima(gold.t[1:459]),h=1))[1,1],data.frame(forecast(auto.arima(gold.t[1:462]),h=1))[1,1],data.frame(forecast(auto.arima(gold.t[1:465]),h=1))[1,1],data.frame(forecast(auto.arima(gold.t[1:469]),h=1))[1,1],data.frame(forecast(auto.arima(gold.t[1:480]),h=1))[1,1],data.frame(forecast(auto.arima(gold.t[1:485]),h=1))[1,1],data.frame(forecast(auto.arima(gold.t[1:509]),h=1))[1,1],data.frame(forecast(auto.arima(gold.t[1:510]),h=1))[1,1],data.frame(forecast(auto.arima(gold.t[1:557]),h=1))[1,1]))
## Row Actual Auto.ARIMA (Percentage Error)
## 1 189 381.50 420.9963 10.35288700
## 2 195 375.25 383.4500 2.18520986
## 3 196 341.60 375.2500 9.85070258
## 4 201 309.00 323.2442 4.60977095
## 5 259 376.05 374.3458 0.45318839
## 6 267 352.40 370.6087 5.16704343
## 7 285 353.40 367.8665 4.09351334
## 8 293 340.50 356.6226 4.73497033
## 9 307 369.10 350.9864 4.90750000
## 10 310 378.20 389.3406 2.94568088
## 11 338 390.55 390.4847 0.01672048
## 12 340 385.50 379.8157 1.47452053
## 13 347 360.60 342.3028 5.07409945
## 14 358 301.80 291.0676 3.55612846
## 15 359 296.55 304.2018 2.58028152
## 16 363 295.75 290.4298 1.79886828
## 17 371 286.80 286.1997 0.20929375
## 18 408 303.00 295.2376 2.56183418
## 19 417 342.75 318.8332 6.97790784
## 20 442 423.80 432.1152 1.96205375
## 21 445 433.20 426.7614 1.48629266
## 22 460 637.00 588.9445 7.54403437
## 23 463 600.90 594.0237 1.14432639
## 24 466 645.75 630.0406 2.43274048
## 25 470 656.60 676.6404 3.05215280
## 26 481 867.75 932.9578 7.51458451
## 27 486 897.00 836.1629 6.78228160
## 28 510 1311.00 1240.2597 5.39590534
## 29 511 1336.75 1322.3035 1.08071934
## 30 545 1392.75 1318.8784 5.30400743
In repeating this for all months and all forecasting models I was able to obtain my accuracy results, which, below, are compared to the overall MAPEs for each model.
## One Month Two Months Twelve Months Overall MAPE
## Auto.ARIMA 3.908307 4.962451 12.47575 4.322448
## Manual.ARIMA 3.869474 5.023654 12.77893 4.000649
## STL 4.123446 5.900949 12.44396 5.358254
## ETS 3.679139 4.934643 11.69889 4.027806
In overall MAPE the ETS model was slightly less accurate overall than our Manual ARIMA, but for each of the specific forecasts it was the most accurate.
I then decided to examine the residuals of each of these methods to check if each model was giving accurate results across time. I wanted to see if the randomly selected dates gave residuals that were shifted in one particular direction or another, so I plotted them for each of the four models, for all of 1 month, 2 months and 12 months.
There is a slight negative trend over time for every model, the trend getting more distinct as the model moves to 12 months for some models, and less so for others. This is largely down to sheer chance, but what is reassuring is that the residuals appear well distributed positively and negatively, giving the impression of a representative set of data.
After establishing these four forecasts, I decided to begin to build my linear regression model. We saw from our structural break analysis and from where the residuals were on some of our models, that the sharp changes in the gold price are the areas those models struggled to forecast. This is where a linear regression can have an advantage because we can factor in variables that explain these changes.
I recently attended a talk by Professor David Hendry at which he discussed the benefits of over-fitting a model then using model selection to remove the variables least good at explaining the data16. This gives you the best chance of including everything necessary to build a good model and not include anything irrelevant. I therefore decided the best way to build this model was to include as many explanatory variables as possible, then use a stepwise method to systematically remove the ones that were insignificant. All datasets are from Quandl unless otherwise specified.
As both are precious metal commodities, the prices of gold and silver17 behave very similarly as the following graph indicates. It seems plausible that changes in the price of one could soon be mirrored in the price of the other, and this made it a dataset worth including.
When inflation18 is low people with large amounts of money in bank accounts look for better ways of getting returns for their money. As I mentioned earlier, gold has been seen as a staple investment good for millenia, and when investors think savings accounts aren’t getting the best returns possible, gold is one of the first things they’ll look to invest in, even if this isn’t actually sensible19.
A similar set of circumstances that lead to investors being cautious to leave money in savings accounts is when they fear for the security of their bank, or of a potential government topslice. Therefore, recessions are a time you would expect the price of gold to rise. In Excel I created a dummy variable equal to 1 in a month where a US recession started20. Originally I wanted to use the length of the recession in months in place of the value ‘1’ so that deeper recessions would have a greater impact in the regression, but if a recession had started at the beginning of March 2015 I wouldn’t know how long it’s going to last in order to put that value into the forecast, so I settled for 1s and 0s. Because, when we examined the gold price plotted against US recessions earlier, the rises in gold price appeared to be a short time after the recession, I added in a series of delays to these dummy variables to create time series at 0, 3, 6, 12, 18 and 24 months.
Money supply21 is another factor that could affect whether or not a investor decides to buy gold. Money supply and monetary policy in general are likely to affect the interest rate and thereby the price of gold.
Similarly to why you might include the price of silver, an overall commodity price22 will fare similarly to the price of gold which could provide some forecasting use. I also included the subset of base metal prices, because it may well share many similarities with gold.
The price of gold is affected by the value of the dollar23. I therefore decided to include dollar exchange rates in my regression: dollars to British pounds sterling24 to reflect a Western exchange rate and dollars to Japanese yen25 to reflect an Eastern exchange rate. Due to the US’s notorious gold dealings with China in the past few years ideally I would’ve liked to use the dollar to renimbi exchange rate, but the renimbi is a fixed price currency, rendering it useless for my forecast.
The price of gold may also be determined by the levels of gold in reserves26 - a higher level of supply will cause the price to fall and vice versa. Because gold never really leaves circulation as it is remeltable, the level of gold available to buy isn’t likely to be heavily affected by the level of gold in reserves, so I didn’t expect this dataset to be very significant.
The earliest point any of these datasets starts is January 1990 for the exchange rates. Because linear regressions require all explanatory variable vectors to be of the same length, all datasets must be trimmed to start at this point. I set up each variable, including gold, to be lagged 1 month, 2 months and 12 months.
gold1.reg=lm(gold1.t ~ gold1.l + silver1.l + cpi1.l + comm1.l + commbm1.l + gbp1.l + yen1.l + res1.l + m11.l + rec01.l + rec31.l + rec61.l + rec121.l + rec181.l + rec241.l)
summary(gold1.reg)
##
## Call:
## lm(formula = gold1.t ~ gold1.l + silver1.l + cpi1.l + comm1.l +
## commbm1.l + gbp1.l + yen1.l + res1.l + m11.l + rec01.l +
## rec31.l + rec61.l + rec121.l + rec181.l + rec241.l)
##
## Residuals:
## Min 1Q Median 3Q Max
## -211.168 -12.874 -0.323 13.359 197.166
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 11.91420 63.83687 0.187 0.8521
## gold1.l 0.91310 0.03719 24.555 <2e-16 ***
## silver1.l -0.93514 1.11613 -0.838 0.4028
## cpi1.l -0.14464 0.25161 -0.575 0.5658
## comm1.l 1.09177 0.36602 2.983 0.0031 **
## commbm1.l 0.19978 0.19500 1.024 0.3065
## gbp1.l 77.82746 64.95388 1.198 0.2318
## yen1.l -0.46603 0.24684 -1.888 0.0600 .
## res1.l -1.47231 1.05891 -1.390 0.1655
## m11.l 0.01006 0.01707 0.590 0.5559
## rec01.l 37.05395 24.49581 1.513 0.1315
## rec31.l -29.27113 24.40556 -1.199 0.2314
## rec61.l -22.54316 24.47807 -0.921 0.3579
## rec121.l 3.94117 24.67527 0.160 0.8732
## rec181.l -3.89700 24.47087 -0.159 0.8736
## rec241.l -12.17432 24.43321 -0.498 0.6187
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 41.65 on 286 degrees of freedom
## Multiple R-squared: 0.9917, Adjusted R-squared: 0.9913
## F-statistic: 2275 on 15 and 286 DF, p-value: < 2.2e-16
We then run a stepwise selection process and our new model looks like this:
gold1.step=step(gold1.reg)
gold1.reg.s=lm(gold1.step)
summary(gold1.reg.s)
##
## Call:
## lm(formula = gold1.step)
##
## Residuals:
## Min 1Q Median 3Q Max
## -206.43 -12.40 -0.23 13.69 190.78
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 39.32855 25.90400 1.518 0.130
## gold1.l 0.91753 0.01883 48.730 < 2e-16 ***
## comm1.l 1.00440 0.25060 4.008 7.75e-05 ***
## yen1.l -0.38001 0.19889 -1.911 0.057 .
## rec01.l 37.27144 24.17941 1.541 0.124
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 41.34 on 297 degrees of freedom
## Multiple R-squared: 0.9915, Adjusted R-squared: 0.9914
## F-statistic: 8657 on 4 and 297 DF, p-value: < 2.2e-16
Stepwise selection has cut down all our insignificant explanatory variables and left us with 4, and a lowest t value of 1.541. 1.541 is still not that high though - it falls below our 10% significance level of 1.645, so I decided to run a second stepwise process, this time raising the scale used to determine the AIC statistic, meaning the model we’re left will ignore more insignificant regressors.
gold1.step2=step(gold1.reg,scale=2500)
gold1.reg.s2=lm(gold1.step2)
summary(gold1.reg.s2)
##
## Call:
## lm(formula = gold1.step2)
##
## Residuals:
## Min 1Q Median 3Q Max
## -207.166 -12.251 -0.385 13.722 190.816
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 35.09099 25.81711 1.359 0.1751
## gold1.l 0.91752 0.01887 48.618 < 2e-16 ***
## comm1.l 1.01411 0.25110 4.039 6.84e-05 ***
## yen1.l -0.34326 0.19791 -1.734 0.0839 .
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 41.43 on 298 degrees of freedom
## Multiple R-squared: 0.9914, Adjusted R-squared: 0.9913
## F-statistic: 1.149e+04 on 3 and 298 DF, p-value: < 2.2e-16
In our second model the 0 month recession dummy is removed, leaving us just with variables that are statistically significant at the 10% level.
Our final 1 month forecast model leaves us with three regressors - the gold price, the commodity index price and the price of 1 dollar in yen. The coefficient for USD/JPY is <0, because as that exchange rate falls, the dollar becomes less valuable, which has an inverse effect on the price of gold, as was previously discussed27.
Here are my models for the 2 month forecast:
gold2.reg=lm(gold2.t ~ gold2.l + silver2.l + cpi2.l + comm2.l + commbm2.l + gbp2.l + yen2.l + res2.l + m12.l + rec02.l + rec32.l + rec62.l + rec122.l + rec182.l + rec242.l)
summary(gold2.reg)
##
## Call:
## lm(formula = gold2.t ~ gold2.l + silver2.l + cpi2.l + comm2.l +
## commbm2.l + gbp2.l + yen2.l + res2.l + m12.l + rec02.l +
## rec32.l + rec62.l + rec122.l + rec182.l + rec242.l)
##
## Residuals:
## Min 1Q Median 3Q Max
## -364.71 -20.54 -2.94 22.19 238.99
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -25.769368 91.616530 -0.281 0.7787
## gold2.l 0.818032 0.053238 15.365 < 2e-16 ***
## silver2.l -2.247893 1.598057 -1.407 0.1606
## cpi2.l -0.048141 0.360721 -0.133 0.8939
## comm2.l 2.567179 0.524912 4.891 1.68e-06 ***
## commbm2.l 0.397830 0.279872 1.421 0.1563
## gbp2.l 175.292925 93.093059 1.883 0.0607 .
## yen2.l -0.808051 0.354289 -2.281 0.0233 *
## res2.l -2.789661 1.516149 -1.840 0.0668 .
## m12.l -0.001846 0.024710 -0.075 0.9405
## rec02.l 34.450892 35.069982 0.982 0.3268
## rec32.l -17.698174 34.941713 -0.507 0.6129
## rec62.l -50.941544 35.049166 -1.453 0.1472
## rec122.l -7.189282 35.326992 -0.204 0.8389
## rec182.l 18.324472 35.034606 0.523 0.6014
## rec242.l -2.585354 34.980366 -0.074 0.9411
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 59.63 on 285 degrees of freedom
## Multiple R-squared: 0.9831, Adjusted R-squared: 0.9822
## F-statistic: 1104 on 15 and 285 DF, p-value: < 2.2e-16
gold2.step=step(gold2.reg)
gold2.reg.s=lm(gold2.step)
summary(gold2.reg.s)
##
## Call:
## lm(formula = gold2.step)
##
## Residuals:
## Min 1Q Median 3Q Max
## -365.10 -20.90 -3.04 22.07 239.17
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -31.45402 81.68041 -0.385 0.7005
## gold2.l 0.81320 0.03578 22.729 < 2e-16 ***
## silver2.l -2.09695 1.48618 -1.411 0.1593
## comm2.l 2.56486 0.48220 5.319 2.08e-07 ***
## commbm2.l 0.36356 0.23277 1.562 0.1194
## gbp2.l 166.33353 89.23219 1.864 0.0633 .
## yen2.l -0.77167 0.32447 -2.378 0.0180 *
## res2.l -2.73751 1.32654 -2.064 0.0399 *
## rec62.l -51.15880 34.67103 -1.476 0.1411
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 59.08 on 292 degrees of freedom
## Multiple R-squared: 0.983, Adjusted R-squared: 0.9825
## F-statistic: 2107 on 8 and 292 DF, p-value: < 2.2e-16
gold2.step2=step(gold2.reg,scale=4500)
gold2.reg.s2=lm(gold2.step2)
summary(gold2.reg.s2)
##
## Call:
## lm(formula = gold2.step2)
##
## Residuals:
## Min 1Q Median 3Q Max
## -363.00 -21.31 -2.56 21.94 219.43
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 96.65506 41.39375 2.335 0.0202 *
## gold2.l 0.79229 0.02754 28.766 < 2e-16 ***
## comm2.l 2.55536 0.36702 6.962 2.16e-11 ***
## yen2.l -0.85912 0.30303 -2.835 0.0049 **
## res2.l -2.27371 1.26484 -1.798 0.0733 .
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 59.48 on 296 degrees of freedom
## Multiple R-squared: 0.9825, Adjusted R-squared: 0.9823
## F-statistic: 4156 on 4 and 296 DF, p-value: < 2.2e-16
As well as having a negative estimate for USD/JPY, here we also have a negative estimate for gold reserve levels. This also makes sense - as the levels of gold in reserves fall, supply shortens and this causes the price to rise. Also, gold in reserves falling is likely to be caused by people buying gold, which raises demand, thus raising the price.
And the 12 month forecast:
gold12.reg=lm(gold12.t ~ gold12.l + silver12.l + cpi12.l + comm12.l + commbm12.l + gbp12.l + yen12.l + res12.l + m112.l + rec012.l + rec312.l + rec612.l + rec1212.l + rec1812.l + rec2412.l)
summary(gold12.reg)
##
## Call:
## lm(formula = gold12.t ~ gold12.l + silver12.l + cpi12.l + comm12.l +
## commbm12.l + gbp12.l + yen12.l + res12.l + m112.l + rec012.l +
## rec312.l + rec612.l + rec1212.l + rec1812.l + rec2412.l)
##
## Residuals:
## Min 1Q Median 3Q Max
## -346.16 -42.89 -1.80 45.79 390.20
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -292.31998 153.63744 -1.903 0.05813 .
## gold12.l 0.80193 0.08850 9.061 < 2e-16 ***
## silver12.l -18.17863 2.65778 -6.840 5.13e-11 ***
## cpi12.l 1.90068 0.62149 3.058 0.00245 **
## comm12.l 6.16014 0.87438 7.045 1.49e-11 ***
## commbm12.l 2.14571 0.47931 4.477 1.11e-05 ***
## gbp12.l 712.03905 155.45920 4.580 7.05e-06 ***
## yen12.l -2.55586 0.59221 -4.316 2.22e-05 ***
## res12.l -11.67427 2.52165 -4.630 5.65e-06 ***
## m112.l -0.23626 0.05009 -4.717 3.81e-06 ***
## rec012.l -29.37454 57.88056 -0.508 0.61221
## rec312.l -125.10567 57.67368 -2.169 0.03092 *
## rec612.l -119.85176 57.88765 -2.070 0.03935 *
## rec1212.l -47.90520 58.30156 -0.822 0.41197
## rec1812.l 44.84138 57.81039 0.776 0.43861
## rec2412.l 46.79464 57.71791 0.811 0.41821
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 98.38 on 275 degrees of freedom
## Multiple R-squared: 0.955, Adjusted R-squared: 0.9525
## F-statistic: 388.9 on 15 and 275 DF, p-value: < 2.2e-16
gold12.step=step(gold12.reg)
gold12.reg.s=lm(gold12.step)
summary(gold12.reg.s)
##
## Call:
## lm(formula = gold12.step)
##
## Residuals:
## Min 1Q Median 3Q Max
## -346.81 -41.78 -0.74 48.64 390.65
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -265.40645 151.87845 -1.747 0.08165 .
## gold12.l 0.81026 0.08725 9.287 < 2e-16 ***
## silver12.l -18.23261 2.63089 -6.930 2.91e-11 ***
## cpi12.l 1.91857 0.61621 3.114 0.00204 **
## comm12.l 6.03309 0.86467 6.977 2.19e-11 ***
## commbm12.l 2.13237 0.47610 4.479 1.10e-05 ***
## gbp12.l 686.06666 153.81593 4.460 1.19e-05 ***
## yen12.l -2.63960 0.58478 -4.514 9.40e-06 ***
## res12.l -11.85560 2.50515 -4.732 3.53e-06 ***
## m112.l -0.23682 0.04953 -4.782 2.82e-06 ***
## rec312.l -125.35023 57.44777 -2.182 0.02994 *
## rec612.l -119.97504 57.64803 -2.081 0.03833 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 98.07 on 279 degrees of freedom
## Multiple R-squared: 0.9546, Adjusted R-squared: 0.9528
## F-statistic: 533.5 on 11 and 279 DF, p-value: < 2.2e-16
Here, our first stepwise process left us entirely with variables that have a t value of at least 2. Therefore, rather than run the second regression with a greater scale as I have done previously, I decided to make some changes to what was being run. In our first regression above, three of the estimates don’t make sense to me. The first is the ridiculously large (and positive) value for USD/GBP, and the second and third are the similarly large but negative rec3 and rec6 variables. I would expect negative values for exchange rates, because a lower value of the dollar leads to a higher gold price, and I would expect positive values for the recession dummies because I expect the price of gold to rise in times of recession.
When examining the results of a linear regression, I feel you must be able to understand the reasoning behind why each estimate is what it is, so because none of these made logical sense to me and what I thought their impact on the price of gold should be, I removed all of them and ran the regression with a higher scale again.
gold12.step2=step(lm(gold12.t ~ gold12.l + silver12.l + cpi12.l + comm12.l + commbm12.l + yen12.l + res12.l + m112.l + rec012.l + rec1212.l + rec1812.l + rec2412.l),scale=4500)
gold12.reg.s2=lm(gold12.step2)
summary(gold12.reg.s2)
##
## Call:
## lm(formula = gold12.step2)
##
## Residuals:
## Min 1Q Median 3Q Max
## -349.38 -43.45 -4.31 45.77 409.18
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 191.69002 115.79957 1.655 0.098964 .
## gold12.l 0.83477 0.09100 9.173 < 2e-16 ***
## silver12.l -17.12187 2.74617 -6.235 1.65e-09 ***
## cpi12.l 2.45394 0.63287 3.878 0.000131 ***
## comm12.l 5.96148 0.90226 6.607 1.95e-10 ***
## commbm12.l 0.84423 0.40289 2.095 0.037024 *
## yen12.l -3.16357 0.60061 -5.267 2.75e-07 ***
## res12.l -10.04806 2.59975 -3.865 0.000138 ***
## m112.l -0.24633 0.05157 -4.777 2.87e-06 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 102.7 on 282 degrees of freedom
## Multiple R-squared: 0.9497, Adjusted R-squared: 0.9483
## F-statistic: 665.8 on 8 and 282 DF, p-value: < 2.2e-16
The result is a model with a lower adjusted R2 but one I believe does a better job of explaining changes in the price of gold.
Below are the mean percentage errors for each regression, along with the mean percentage errors of our earlier four models and two new models. I previously discussed the idea that this timeseries is a random walk and as such I should consider a naïve forecasting method. Where E(Yt) = E(Yt-1 + ε), Ŷt = Yt-1, so I added in a forecast simply predicting that the price will remain the same as it was in the previous period. As a second naïve forecast to factor in a potential drift term, I also ran a regression of just gold lagged once, twice or twelve times on itself, i.e. Goldt = β0 + β1Goldt-1, Goldt = β0 + β1Goldt-2 and Goldt = β0 + β1Goldt-12.
## MAPE.1m MAPE.2m MAPE.12m
## Regression 3.509849 5.525143 11.59043
## Regression.2 3.478435 5.531728 11.25312
## Naïve 4.010340 5.699967 16.31566
## Naïve.with.drift 4.135118 6.026924 19.80895
## Auto.ARIMA 3.908307 4.962451 12.47575
## Manual.ARIMA 3.869474 5.023654 12.77893
## STL 4.123446 5.900949 12.44396
## ETS 3.679139 4.934643 11.69889
The first thing that strikes me about these results is that our second 12 month regression is considerably more accurate than the first one, which goes to show that it’s worth analysing a regression’s coefficients and creating a model that makes sense, rather than just choosing the one that gives you the best adjusted R2. For 1 month, our most accurate model is the 2nd regression, edging out the 1st regression. For two months the ETS is the most accurate, just ahead of the Auto ARIMA.
The tables below show each method’s forecasted values for 1 month, 2 months and 12 months, along with their respective MAPEs and how that forecast value changes from the value at the end of March 2015 (1179.250).
## MAPE.1m Forecast.1m % Change.1m
## Regression 3.509849 1146.656 -2.7639209
## Regression.2 3.478435 1147.493 -2.6930193
## Naïve 4.010340 1179.250 0.0000000
## Naïve.with.drift 4.135118 1173.032 -0.5272924
## Auto.ARIMA 3.908307 1185.157 0.5009459
## Manual.ARIMA 3.869474 1182.673 0.2902426
## STL 4.123446 1177.031 -0.1881910
## ETS 3.679139 1174.151 -0.4324216
## MAPE.2m Forecast.2m % Change.2m
## Regression 5.525143 1116.032 -5.3608632
## Regression.2 5.531728 1099.211 -6.7872535
## Naïve 5.699967 1179.250 0.0000000
## Naïve.with.drift 6.026924 1167.179 -1.0235835
## Auto.ARIMA 4.962451 1187.188 0.6731147
## Manual.ARIMA 5.023654 1182.673 0.2902426
## STL 5.900949 1175.560 -0.3129452
## ETS 4.934643 1168.908 -0.8769610
## MAPE.12m Forecast.12m % Change.12m
## Regression 11.59043 854.9755 -27.4983649
## Regression.2 11.25312 815.0125 -30.8872197
## Naïve 16.31566 1179.2500 0.0000000
## Naïve.with.drift 19.80895 1099.4261 -6.7690379
## Auto.ARIMA 12.47575 1207.4907 2.3948023
## Manual.ARIMA 12.77893 1182.6727 0.2902426
## STL 12.44396 1206.5207 2.3125435
## ETS 11.69889 1125.1603 -4.5867865
Interestingly, the three overall most accurate forecast methods - the two linear regressions and the ETS, all predict the price will fall for each of our forecasting periods. In spite of the evidence to suggest the dataset might be a random walk, the naïve methods were considerably less accurate than nearly all other methods.
Using the model with the best accuracy in each period’s forecast, my final forecasts, accompanied by the percentage change from March 2015’s closing price, are:
30th April 2015 - 1147.493 (-2.693%)
31st May 2015 - 1168.908 (-0.877%)
31st March 2016 - 854.1361 (-27.570%)
Quandl Dataset, Gold Price (USD): https://www.quandl.com/data/BUNDESBANK/BBK01_WT5511-Gold-Price-USD↩
Best Ten Everything, Top Ten Most Traded Commodities, 07/05/2013: http://bestteneverything.com/top-ten-most-traded-commodities/↩
Andy Soos, Gold Mining Boom Increasing Mercury Pollution Risk, 06/01/2011: http://oilprice.com/Metals/Gold/Gold-Mining-Boom-Increasing-Mercury-Pollution-Risk.html↩
Annie Gilroy, Why gold and the US dollar have an inverse relationship, 22/09/2014: http://marketrealist.com/2014/09/why-gold-and-u-s-dollar-have-inverse-relationship/↩
London Market Bullion Association website with details on the pricing of gold: http://www.lbma.org.uk/pricing-and-statistics↩
Bullion Vault, information on the London Gold Fix: https://www.bullionvault.com/guide/gold/Gold-fix↩
London Market Bullion Association website with details on the introduction of the new LMBA Gold Price: http://www.lbma.org.uk/lbma-gold-price↩
Reuters, UPDATE 1-Goldman Sachs slashes base metal price forecasts, ups gold, 23/01/2015: http://www.reuters.com/article/2015/01/23/metals-goldman-forecasts-idUSL1N0V21PS20150123↩
London Market Bullion Association, 2015 LBMA Forecast Survey Published, 28/01/2015: http://www.lbma.org.uk/_blog/lbma_media_centre/post/2015-lbma-forecast-survey-published/↩
Nadeem Walayat, Gold Price Trend Forecast 2015, 31/12/2014: http://www.marketoracle.co.uk/Article48824.html↩
Kyle Caldwell, Gold price predictions: Will gold rise or fall in 2015?, 08/01/2015: http://www.telegraph.co.uk/finance/personalfinance/investing/gold/11312719/Gold-price-predictions-Will-gold-rise-or-fall-in-2015.html↩
The Week, Gold price pinned down as US dollar rides high, 15/04/2015: http://www.theweek.co.uk/gold-price/61682/gold-price-pinned-down-as-us-dollar-rides-high↩
Peter Koven, PDAC 2015: McEwen sticks to US$5,000 gold forecast, 04/03/2015: http://business.financialpost.com/news/mining/pdac-2015-mcewen-sticks-to-us5000-gold-forecast↩
J.P. Bortha, The random walk model and the behaviour of gold prices, a note, 15/05/1980: http://www.iassa.co.za/articles/015_may1980_02.pdf↩
Martin Feldstein, Is Gold a Good Hedge?, 26/12/2009: http://economistsview.typepad.com/economistsview/2009/12/is-gold-a-good-hedge.html↩
Neil R. Ericsson interviews Sir David F Hendry, Cambridge University Press, 2004: http://dido.econ.yale.edu/korora/et/interview/hendry.pdf↩
Quandl Dataset, LBMA Silver Price: London Fixings: https://www.quandl.com/data/OFDP/SILVER_5-LBMA-Silver-Price-London-Fixings↩
Quandl Dataset, Consumer Price Index for All Urban Consumers: All Items (USA Inflation): https://www.quandl.com/data/FRED/CPIAUCSL-Consumer-Price-Index-for-All-Urban-Consumers-All-Items-USA-Inflation↩
Martin Feldstein, Is Gold a Good Hedge?, 26/12/2009: http://economistsview.typepad.com/economistsview/2009/12/is-gold-a-good-hedge.html↩
About News, The History of Recessions in the United States: http://useconomy.about.com/od/grossdomesticproduct/a/recession_histo.htm↩
Quandl Dataset, M1 Money Stock: https://www.quandl.com/data/FRED/M1-M1-Money-Stock↩
Quandl Datasets, Commodity Prices: https://www.quandl.com/data/RBA/I02-Commodity-Prices↩
Annie Gilroy, Why gold and the US dollar have an inverse relationship, 22/09/2014: http://marketrealist.com/2014/09/why-gold-and-u-s-dollar-have-inverse-relationship/↩
Quandl Dataset, Currency Exchange Rate USD vs GBP: https://www.quandl.com/data/BNP/USDGBP-Currency-Exchange-Rate-USD-vs-GBP↩
Quandl Dataset, Currency Exchange Rate USD vs JPY: https://www.quandl.com/data/BNP/USDJPY-Currency-Exchange-Rate-USD-vs-JPY↩
Quandl Dataset, GDRZF: GOLD RESERVE INC: https://www.quandl.com/data/YAHOO/GDRZF-GDRZF-GOLD-RESERVE-INC↩
Annie Gilroy, Why gold and the US dollar have an inverse relationship, 22/09/2014: http://marketrealist.com/2014/09/why-gold-and-u-s-dollar-have-inverse-relationship/↩