Marketing Mix Modeling
Intermediate
Building Your First Marketing Mix Model in Python
Prerequisites
- Python 3.8+
- pandas, numpy, statsmodels, matplotlib
- Basic understanding of regression
Step 1: Prepare the Data
import pandas as pd
import numpy as np
df = pd.read_csv('marketing_data.csv')
Step 2: Apply Adstock Transformation
def geometric_adstock(series, decay=0.7):
result = np.zeros(len(series))
result[0] = series.iloc[0]
for i in range(1, len(series)):
result[i] = series.iloc[i] + decay * result[i-1]
return result
df['tv_adstock'] = geometric_adstock(df['tv_spend'], 0.8)
Step 3: Build the Model
import statsmodels.api as sm
X = df[['tv_adstock', 'digital_adstock', 'search_spend', 'promo_flag', 'temperature']]
X = sm.add_constant(X)
y = df['sales']
model = sm.OLS(y, X).fit()
print(model.summary())