Introduction

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.

What Forecasts currently exist?

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.

Examining the Data

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.

Examining and explaining structural breaks

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.

Creating our forecasts

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.

Auto 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

Manual ARIMA

## 
## 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

STL

## 
## 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

ETS

## 
## 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.

Building a linear regression model

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.

Silver

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.

CPI

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.

Recessions

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 Supply

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.

Commodity Prices and Base Metal Prices

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.

Exchange Rates

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.

Gold reserves

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.

Running the Model

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%)


  1. Quandl Dataset, Gold Price (USD): https://www.quandl.com/data/BUNDESBANK/BBK01_WT5511-Gold-Price-USD

  2. Best Ten Everything, Top Ten Most Traded Commodities, 07/05/2013: http://bestteneverything.com/top-ten-most-traded-commodities/

  3. 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

  4. 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/

  5. London Market Bullion Association website with details on the pricing of gold: http://www.lbma.org.uk/pricing-and-statistics

  6. Bullion Vault, information on the London Gold Fix: https://www.bullionvault.com/guide/gold/Gold-fix

  7. London Market Bullion Association website with details on the introduction of the new LMBA Gold Price: http://www.lbma.org.uk/lbma-gold-price

  8. 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

  9. 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/

  10. Nadeem Walayat, Gold Price Trend Forecast 2015, 31/12/2014: http://www.marketoracle.co.uk/Article48824.html

  11. 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

  12. 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

  13. 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

  14. 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

  15. Martin Feldstein, Is Gold a Good Hedge?, 26/12/2009: http://economistsview.typepad.com/economistsview/2009/12/is-gold-a-good-hedge.html

  16. Neil R. Ericsson interviews Sir David F Hendry, Cambridge University Press, 2004: http://dido.econ.yale.edu/korora/et/interview/hendry.pdf

  17. Quandl Dataset, LBMA Silver Price: London Fixings: https://www.quandl.com/data/OFDP/SILVER_5-LBMA-Silver-Price-London-Fixings

  18. 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

  19. Martin Feldstein, Is Gold a Good Hedge?, 26/12/2009: http://economistsview.typepad.com/economistsview/2009/12/is-gold-a-good-hedge.html

  20. About News, The History of Recessions in the United States: http://useconomy.about.com/od/grossdomesticproduct/a/recession_histo.htm

  21. Quandl Dataset, M1 Money Stock: https://www.quandl.com/data/FRED/M1-M1-Money-Stock

  22. Quandl Datasets, Commodity Prices: https://www.quandl.com/data/RBA/I02-Commodity-Prices

  23. 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/

  24. Quandl Dataset, Currency Exchange Rate USD vs GBP: https://www.quandl.com/data/BNP/USDGBP-Currency-Exchange-Rate-USD-vs-GBP

  25. Quandl Dataset, Currency Exchange Rate USD vs JPY: https://www.quandl.com/data/BNP/USDJPY-Currency-Exchange-Rate-USD-vs-JPY

  26. Quandl Dataset, GDRZF: GOLD RESERVE INC: https://www.quandl.com/data/YAHOO/GDRZF-GDRZF-GOLD-RESERVE-INC

  27. 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/