google / lightweight_mmm

LightweightMMM 🦇 is a lightweight Bayesian Marketing Mix Modeling (MMM) library that allows users to easily train MMMs and obtain channel attribution information.
https://lightweight-mmm.readthedocs.io/en/latest/index.html
Apache License 2.0
902 stars 194 forks source link

`media_prior` with impressions only (unknown spend) #54

Closed PhilippeMoussalli closed 2 years ago

PhilippeMoussalli commented 2 years ago

Hello,

First of all, thank you for open-sourcing such an amazing library !

I have some question regarding the model that I hope you can help me with :)

I'm considering running lightweights mmm on a dataset that only comprises of different channels with their impressions (no channel costs included). My end goal is to use get an estimate on the the media effects of each channel (I don't need to generated the ROI estimates).

My question is, would it be possible to conduct this sort of analysis without including the spend for each channel? I only have impressions with no costs but I know that spend is an obligatory prior in mmm.fit (media_prior).

In theory this should be possible since the three different marketing approach (ad-stock, hill_adstock and carryover) can be modelled based on spend or impressions as mentioned in the docs

Thank you in advance for your response.

pabloduque0 commented 2 years ago

Hello @PhilippeMoussalli !

If you do not need ROI calculations you can only use impressions with no cost related data.

For what to pass the as the media_prior:

The only caveat is that some other aspects might be a bit tricky like for example the media optimisation, you will need some price estimation in order to run that. But if your main interest is media contribution/effect, you should be fine without costs/spend/prices.

Hope that helps!

PhilippeMoussalli commented 2 years ago

Thanks for the quick response @pabloduque0!

Indeed all those suggestions seem to be valuable. I will most likely pass in manual priors since I have an overall estimate on the effectiveness of each channel.

Maybe a follow up question based on that approach:

pabloduque0 commented 2 years ago

Yes you can generate the response curve normally and either provide no prices or prices of 1. Although labels will say spend, in your case it will be impressions.