

Motivation
News articles love citing the crude inventory as reasons for movements in oil prices. Quoting from the WSJ:
U.S. inventories are closely watched by traders as the first indicator of the global supplyanddemand balance. Stockpiles have fallen in recent weeks from their highest level in more than 80 years, boosting expectations that the global glut of crude that has weighed on prices for nearly two years is now receding.
The U.S. Energy Information Administration said U.S. crude stockpiles fell 4.2 million barrels last week, while analysts polled by The Wall Street Journal had expected a decrease of 2.5 million barrels.
So this got me really curious. How good is the Energy Information Administration (EIA) figure as a predictor of crude oil prices? To test this, I decided to use the following data:
 EIA US Crude Inventory exSPR (Strategic Petroleum Reserve). This data (basically the one that WSJ quoted on top) is usually released every Wednesday afternoon. This data is going to be a single number for every week.
 US Oil Fund (USO), an ETF that tracks the front month West Texas Intermediate (WTI) futures. This is going to be a set of numbers daily describing the open, high, low, close (OHLC) prices. We are most interested in the extent of movement from the beginning of the day (before EIA data is released) to the end of the day (after EIA data is released). Hence, we define intraday return as (close  open) / close for a specific day. Furthermore, we are probably interested in this figure for Wednesdays given that EIA data is released every Wednesday.
Data
I pull the data from Thomson Datastream using this wonderful Python interface. If you want to replicate this, you’d need to get yourself some Datastream credentials. Ask your school librarian very nicely. :)


The crude oil inventory data has the datastream mnemonic EIA2007
(trust me it took me like 2 hours to find it.) Then I plot it to inject some pictures into this post (otherwise you’d find it boring right?) Besides everyone likes pictures.






Uh oh looks like we don’t have complete data before late 2009. Oh well. We just truncate our analysis then.
Now let’s subdivide our data into each of the days of the week: Monday till Friday.
Also, Thomson Datastream’s crude oil stock data seems to be lagged by 2 days. That is, Wednesday’s data seems to only be in the system by Friday. Hence, I shift the inventory data by 2
days.


We have all the fields that we need for our analysis. They should be pretty self explanatory.
Analysis
First we do scatter plots of crude_oil_stock_pct
, the percent change of this week’s crude inventory stock on last week’s inventory stock, on uso_intraday_return
, the intraday return. Turns out not much of a relationship exists:


When I ran OLS regressions on each of them, not only are the Rsquared pathetic, the slopes are in entirely wrong direction as well. For example, the slope for Wednesdays is 0.734359432686, which means that oil prices tend to increase intraday when the inventory increases.






Day Of Week 0
OLS Regression Results
===============================================================================
Dep. Variable: uso_intraday_return Rsquared: 0.001
Model: OLS Adj. Rsquared: 0.002
Method: Least Squares Fstatistic: 0.2613
Date: Thu, 09 Jun 2016 Prob (Fstatistic): 0.610
Time: 22:34:39 LogLikelihood: 932.68
No. Observations: 329 AIC: 1861.
Df Residuals: 327 BIC: 1854.
Df Model: 1
Covariance Type: nonrobust
=======================================================================================
coef std err t P>t [95.0% Conf. Int.]

Intercept 0.0001 0.001 0.177 0.859 0.002 0.001
crude_oil_stock_pct 0.0960 0.188 0.511 0.610 0.273 0.465
==============================================================================
Omnibus: 46.601 DurbinWatson: 1.846
Prob(Omnibus): 0.000 JarqueBera (JB): 268.062
Skew: 0.364 Prob(JB): 6.18e59
Kurtosis: 7.362 Cond. No. 239.
==============================================================================
Warnings:
[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.
Day Of Week 1
OLS Regression Results
===============================================================================
Dep. Variable: uso_intraday_return Rsquared: 0.003
Model: OLS Adj. Rsquared: 0.000
Method: Least Squares Fstatistic: 1.144
Date: Thu, 09 Jun 2016 Prob (Fstatistic): 0.285
Time: 22:34:39 LogLikelihood: 1035.4
No. Observations: 359 AIC: 2067.
Df Residuals: 357 BIC: 2059.
Df Model: 1
Covariance Type: nonrobust
=======================================================================================
coef std err t P>t [95.0% Conf. Int.]

Intercept 0.0002 0.001 0.302 0.763 0.001 0.002
crude_oil_stock_pct 0.2028 0.190 1.070 0.285 0.576 0.170
==============================================================================
Omnibus: 8.913 DurbinWatson: 1.929
Prob(Omnibus): 0.012 JarqueBera (JB): 14.310
Skew: 0.117 Prob(JB): 0.000781
Kurtosis: 3.950 Cond. No. 265.
==============================================================================
Warnings:
[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.
Day Of Week 2
OLS Regression Results
===============================================================================
Dep. Variable: uso_intraday_return Rsquared: 0.028
Model: OLS Adj. Rsquared: 0.026
Method: Least Squares Fstatistic: 10.44
Date: Thu, 09 Jun 2016 Prob (Fstatistic): 0.00134
Time: 22:34:39 LogLikelihood: 963.67
No. Observations: 359 AIC: 1923.
Df Residuals: 357 BIC: 1916.
Df Model: 1
Covariance Type: nonrobust
=======================================================================================
coef std err t P>t [95.0% Conf. Int.]

Intercept 4.491e05 0.001 0.051 0.959 0.002 0.002
crude_oil_stock_pct 0.7344 0.227 3.232 0.001 0.287 1.181
==============================================================================
Omnibus: 18.131 DurbinWatson: 2.048
Prob(Omnibus): 0.000 JarqueBera (JB): 29.969
Skew: 0.335 Prob(JB): 3.11e07
Kurtosis: 4.247 Cond. No. 260.
==============================================================================
Warnings:
[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.
Day Of Week 3
OLS Regression Results
===============================================================================
Dep. Variable: uso_intraday_return Rsquared: 0.014
Model: OLS Adj. Rsquared: 0.012
Method: Least Squares Fstatistic: 5.126
Date: Thu, 09 Jun 2016 Prob (Fstatistic): 0.0242
Time: 22:34:39 LogLikelihood: 968.11
No. Observations: 352 AIC: 1932.
Df Residuals: 350 BIC: 1924.
Df Model: 1
Covariance Type: nonrobust
=======================================================================================
coef std err t P>t [95.0% Conf. Int.]

Intercept 0.0004 0.001 0.500 0.618 0.002 0.001
crude_oil_stock_pct 0.4824 0.213 2.264 0.024 0.063 0.901
==============================================================================
Omnibus: 32.562 DurbinWatson: 2.031
Prob(Omnibus): 0.000 JarqueBera (JB): 120.200
Skew: 0.274 Prob(JB): 7.92e27
Kurtosis: 5.810 Cond. No. 258.
==============================================================================
Warnings:
[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.
Day Of Week 4
OLS Regression Results
===============================================================================
Dep. Variable: uso_intraday_return Rsquared: 0.003
Model: OLS Adj. Rsquared: 0.000
Method: Least Squares Fstatistic: 0.8663
Date: Thu, 09 Jun 2016 Prob (Fstatistic): 0.353
Time: 22:34:39 LogLikelihood: 991.29
No. Observations: 347 AIC: 1979.
Df Residuals: 345 BIC: 1971.
Df Model: 1
Covariance Type: nonrobust
=======================================================================================
coef std err t P>t [95.0% Conf. Int.]

Intercept 0.0009 0.001 1.153 0.250 0.001 0.002
crude_oil_stock_pct 0.1796 0.193 0.931 0.353 0.200 0.559
==============================================================================
Omnibus: 56.151 DurbinWatson: 2.035
Prob(Omnibus): 0.000 JarqueBera (JB): 254.440
Skew: 0.577 Prob(JB): 5.61e56
Kurtosis: 7.033 Cond. No. 258.
==============================================================================
Warnings:
[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.
Conclusion
EIA inventory data is probably a weak predictor in and of itself. We can add more factors (momentum, etc) but the correlation’s definitely not as clear cut as most news agencies would like to claim.