This is by way of being a bit of an experiment. I’ve been reading John Foreman’s excellent and fascinating Analytics Made Skeezy blog and came across the Projecting Meth Demand using Exponential Smoothing, in which the protagonist helps a drug lord forecast monthly demand. I was trying to follow along with the spreadsheet, but fell at the first hurdle: it turns out that the Mac version of Excel doesn’t allow array formulae. So I turned to R.
I wanted some nice seasonally-dependent data and a bit of a trend with which to play. Google Trends provides a lot of that sort of thing:
[trend w=”590″ h=”400″ q=”cold+remedies” geo=”US”]
I downloaded the Google Trends data and dropped it into R, converting the data to a time series with a 52-week frequency (Google Trends reports weekly search data). I’d not used the
ts() function before. It seems fantastically useful. Here’s the code (including all the Google data):
Which gave me this:
Next, I converted the
search_index time series into a Holt Winters object. The Holt Winters function comes as standard with R, so nothing to do here. There are all sorts of tweaks I could make to improve results if I understood the process better. But this is just a proof-of-concept run:
Which produces this nice-looking fit, based on the trend and 52 individual coefficients:
Next, I load the
forecast package, and run the
forecast.HoltWinters function for the next year.
Which, in turn, gives this:
The blue line is the forecast, the orange area gives the 80% confidence interval and the yellow the 95% confidence interval.
As I say, I really need to learn how to tweak this if I’m ever going to sell methamphetamine.