Home  GitHub  Speaking Engagements  Terms  Email
Copper Prices After COVID19: A Time Series Analysis
Published on 9 May 2020
With COVID19 proving to be a gamechanger from both a health and economic perspective, the commodity market has been hit particularly hard.
Copper prices have seen a significant slump in the first quarter of 2020. According to the World Bank, this is in large part due to the large decline that we have been seeing in the manufacturing sector and stimulus measures are having a limited effect in supporting prices.
Source: investing.com
Accordingly, the producer price index has also been falling.
However, is it necessarily a given that we can expect these trends to continue looking forward?
To answer this question, let’s consider a time series analysis using the following:
 Cointegration
 Crosscorrelation
 Forecasting of inflation and 10Year US Treasury Rates with ARIMA
Given that copper prices are stochastic in nature (i.e. follow a random walk), forecasts are not made using copper prices outright. Rather, this analysis investigates the correlations between copper and the 10year US Treasury Rate, with a view to inferring the potential direction for copper from forecasts of US inflation and the 10year US Treasury Rate.
For the purposes of this analysis, the copper price producer index and the 10year US Treasury Rate is split into the following time periods for training and validation purposes:
Training: January 1981 to January 2018
Validation: February 2018 to March 2020
The relevant time series were sourced from the FRED (Federal Reserve Economic Data) source through Quandl.
The sourced time series are as follows:

10 Year Treasury Constant Maturity Rate (FRED/GS10)

Producer Price Index by Commodity for Special Indexes Copper and Copper Products (FRED/WPUSI019011)

U.S. Inflation Data (FRED/FPCPITOTLZGUSA)
The producer price index and 10year treasury data is in monthly format and the U.S. inflation data is in yearly format.
Cointegration and CrossCorrelation
When working with time series analysis, cointegration testing is used in order to determine whether correlations between two time series are theoretically relevant or simply due to chance.
In addition, crosscorrelation is used to infer whether there is a leading or lagging relationship between the two indicators, e.g. US GDP is typically a lagging indicator for the S&P 500, while the S&P 500 is conversely a leading indicator for US GDP.
Cointegration
A cointegration analysis is conducted between the 10year US Treasury rate and the copper producer price index for both the training and validation data. Note that copper prices are converted into logarithmic format for this purpose, while the 10year US Treasury rate remains in its original format.
Here are the results for the training set:
>>> coin_result_1 = ts.coint(treasurynp, copperlog)
>>> coin_result_1
(3.118624703597714,
0.08462298746786284,
array([3.92127651, 3.3499261 , 3.05401605]))
With a pvalue of 0.08, this implies that longrun cointegration between copper and the 10year US Treasury yield is present at the 10% level of significance.
However, when testing for cointegration on the validation set, we see that the pvalue is highly insignificant at 0.88.
>>> coin_result_2 = ts.coint(treasuryvalnp, coppervallog)
>>> coin_result_2
(1.0698051835455291,
0.8887881547454453,
array([4.3881592, 3.5914508, 3.21845 ]))
These results imply that the relationship between the producer price index and the 10Year US Treasury rate has deviated from its longrun pattern. We can see that over time, the producer price index has seen a longterm rise while the 10Year Treasury Rate has seen an extended decline.
CrossCorrelation
A crosscorrelation analysis demonstrated that changes in the copper price index and the 10Year US Treasury Rate on a monthly basis do not generally demonstrate any time lags between the two. That said, some meaningful correlations are observed for up to a threemonth lag period.
ARIMA: Inflation and 10Year US Treasury Rate Forecast
As mentioned, copper prices resemble a stochastic process and therefore it was not deemed appropriate to forecast future movements of this commodity directly.
However, ARIMA is used in this case for forecasting US inflation and the 10Year US Treasury Rate, with a view to inferring a potential path for the copper producer price index going forward.
The inflation data used is on a yearly basis dating back to January 1960, while the US 10Year Treasury data used is the same as that used for the cointegration and crosscorrelation analyses above.
The pyramid.arima
library in Python is used to run an auto_arima model whereby the ARIMA coordinates are automatically selected to find the best fit model.
The appropriate model as identified for forecasting inflation is as follows:
The appropriate model as identified for forecasting the 10year US Treasury Rate is as follows:
Inflation
The ARIMA forecast for inflation yields an RMSE (root mean squared error) of 0.866 on the validation set.
The forecast for the next 20 months predicts a significant rise in inflation:
10Year US Treasury Rate
The ARIMA forecast for the 10Year US Treasury Rate yields an RMSE of 0.756 on the validation set.
The forecast for the next 20 months predicts a continued drop in the 10Year US Treasury Rate:
Interpretation
There could be a case for higher inflation going forward
With the effects of the COVID19 pandemic on the economy, central banks around the world have moved to cut interest rates. With that being said, there is only so much quantitative easing that the economy can absorb before prices increase. This is particularly the case if the economy recovers faster than expected and consumers take advantage of lower rates, in turn pushing prices up. From this standpoint, the ARIMA forecast of rising inflation rates may be theoretically justified.
The ARIMA forecast for the 10Year US Treasury Rate indicates a downward trend, which would be contrary to expectations in a period rising inflation. However, with the 10year yield indicating low inflation expectations at present, we could see a situation where yields start rising if inflation grows faster than expected.
Copper and 10year US Treasury Rate deviating from longrun relationship
This may be one of the reasons we are seeing the copper producer price index and the 10year Treasury rate deviate from their longrun relationship based on the previous cointegration analysis. The longrun relationship between copper and the 10Y rate has been negative, i.e. copper prices have risen while the 10Y rate has fallen. However, we are now seeing a situation where both time series are declining.
Implications for copper prices
The longrun relationship as indicated by the cointegration analysis would suggest that the two series cannot move in the same direction indefinitely. It is likely that both copper prices and Treasury yields will continue to fall during the COVID19 recession.
Should yields continue falling, then copper prices will eventually start rising under this model. This contradicts expectations in the shortterm since lower yields imply lower inflation  which means lower cost of production for copper. However, the longrun implication is that lower prices eventually bolster consumer spending  and copper prices rise to accordingly reflect future expectations of higher inflation.
On the other hand, a limitation of this analysis is that the 10year US Treasury yield has predominantly been falling since 1980. Therefore, while the relationship between copper and the 10year Treasury has been negative over this period, it cannot be assumed that the relationship would remain negative if bond yields suddenly started rising. Indeed, what might be more likely to happen is that copper prices would also rise under this scenario given that 1) the metal tends to be used as a hedge against inflation and 2) higher cost of production means that producers must hike prices in order to maintain profitability.
Conclusion
The following analysis has attempted to investigate a potential future trajectory for the copper producer price index. using US inflation and 10Year Treasury yield forecasts. Many thanks for reading, and the GitHub repository with associated code and findings can be found here.
Update (7 June 2020)
After having tested additional variables for cointegration with the copper producer price index (see cointegration analysis v2.ipynb), Total Assets: All Commercial Banks demonstrated a high degree of cointegration with price.
>>> coin_result_4 = ts.coint(assets, copper_price_index)
>>> coin_result_4
(7.030137738227275,
7.273958862435694e09,
array([3.98404804, 3.3842816 , 3.07775039]))
Specifically, a negative longrun relationship has been observed between the two series with a correlation coefficient of 0.21.
Additionally, a 30period rolling average demonstrates a longrun decline in the percentage of commercial assets held by banks.
Assuming this trend continues, this could also be evidence for higher copper prices over the longerterm.
Disclaimer: The above is simply an illustration of time series analysis methods on the topic in question and is presented “as is”. None of the above is meant as any form of investment advice, or advice of a professional nature. COVID19 is an ongoing situation, and the above analysis reflects the author’s opinion at the time of writing only  no warranties are made as to the accuracy of the above information for any purpose.