Sie sind auf Seite 1von 2

7/14/2017 Adstock Rate Deriving with Analytical Methods | Gabriel Mohanna's Blog

Gabriel Mohanna's Blog


Analytics Artist

Adstock Rate Deriving with AnalyticalMethods


In a previous article I explained the concept & formula behind advertising adstock. This article focuses on how to
analytically derive the adstock rate. Ill also compare and contrast this method to assumption based methods followed
by some consulting companies in the Marketing Mix space.

First, I start with a little story. A marketing manager tries to create a model that can predict sales based on di erent
advertising levels. He or she asks a statistician to test a particular adstock rate for the advertising variable in the
model. The results comes back and it is either insigni cant or unsatisfactory. The marketing manager then asks the
statistician to try a di erent adstock level. This process repeats itself till there is something of value and makes sense.

This process however isnt only ine cient, its is also wrong. The manager is assuming an adstock rate. What makes
this even worse is some consulting companies in the Marketing Mix space repeat this mistake on a massive scale. They
use expensive computing power on servers and clusters to test every potential adstock rate.

The best approach is to analytically derive the adstock rate based on the data. The eld of operations research, or in
particular, mathematical optimization, can lend a hand. We can set up an optimization program in Excel or any other
programming language to derive the optimal adstock rate.

Here are simple instructions to follow:

1. Start with the data


Get sales, i.e. actual, and the advertising variable(s)
2. Set up regression
Predicted Sales = + * adstock(Advertising)
and are linear regression parameters
The adstock function adstock(Advertising) is de ned as At = Xt + adstock rate * At-1
3. Setup & run optimization
Minimize the sum of squared errors for regression formula by changing the adstock rate
Mathematically speaking
Objective function:Minimize (Actual Predicted)2
Subject to: 0 <= adstock rate < 1

The workbook here has a completemathematical setup to calculate the optimum adstock rateas described above. I
use the LINEST function to simplify the least square minimization and regression formula. Youll need to have Solver
Add-in installed with Excel. Hint: It is already installed; you just need to load it Instructions on loading Solver Add-in.

https://analyticsartist.wordpress.com/2014/01/31/adstock-rate-deriving-with-analytical-methods/ 1/13
7/14/2017 Adstock Rate Deriving with Analytical Methods | Gabriel Mohanna's Blog

This approach has two bene ts:(1) Fast: There are no iteration is necessary and(2) Accurate: Adstock rate will be
de ned to the most signi cant decimal point. Assumption based rates as a comparison will often stop at 28% while
actual adstock rate is 28.54783%. To credit consulting companies, though, an adstock rate of 28% is good enough.

It is important to note that the optimum adstock rate can lead to negative correlation with sales data and hence lead to
the interpretation that advertising negatively a ects sales. The statistician in this case has to either test di erent
adstock rates or apply constrained optimization. Sometimes, however, advertising can lead to negative e ects in the
case of over saturated market.

Update: The R approach is to use the nls() function with the same set up as above.

# Define Adstock Function

adstock <- function(x, rate=0){

return(as.numeric(filter(x=x, filter=rate, method="recursive")))


}

# Run Optimization

modFit <- nls(sales~b0+b1*adstock(ad, rate),


start=c(b0=1, b1=1, rate=0))

summary(modFit)

Note that the R code above uses the Gauss-Newton algorithm which doesnt take into account any constraints and
hence the rate might not be kosherly within 0-1 bounds. If you want to set up constraints then you can put a penalty in
the formula function or use the Port algorithm. However, nls documentation mentions that the Port algorithm appears
un nished so use with caution. Alternatively, you can use the nlsLM() function in the minpack.lm package. That
function uses Levenberg-Marquardt and it does work with lower and upper bounds.

Advertisements

385 1,550 29,999 385 1,550 29,999

9,408 32,999 439 9,408 32,999 439


Amazon India Amazon India

This entry was posted in Blogs, R and tagged Advertising, consulting companies, marketing manager, statistician, the
Marketing Mix space on January 31, 2014 [https://analyticsartist.wordpress.com/2014/01/31/adstock-rate-deriving-

https://analyticsartist.wordpress.com/2014/01/31/adstock-rate-deriving-with-analytical-methods/ 2/13

Das könnte Ihnen auch gefallen