← Voltar aos estudos
MARKETING MIX MODELING DADO REAL · CÓDIGO ABERTO

Marketing Mix Modeling com dados reais: TikTok, Facebook e Google Ads

Adstock, saturação, ROI marginal e validação fora da amostra

Por Thiago Rosa · TSR Insights · código completo no GitHub →

O MMM Lab do site é um simulador educacional, com parâmetros ilustrativos — bom para entender o conceito, mas sem dado real por trás. Este estudo é o oposto: adstock, curva de saturação e regressão ajustados de verdade sobre um dataset público (200 semanas, 2018-2021), com validação fora da amostra (treino/teste) e cada limitação documentada honestamente, inclusive os achados negativos.

Resultado do modelo completo

0.592

R² (base completa)

0.278

R² (teste, dado nunca visto)

R$ 1.560

MAE no teste

13.7%

erro médio / Sales médio

Resposta por canal

TikTok

saturação 64.9% no investimento médio

95.1%

contribuição / Sales médio

0.12x

ROI marginal

0.45

adstock (λ)

0.16

shape da curva

Maior contribuição total do modelo, mas já na parte achatada da curva (shape < 1, satura quase de imediato) — por isso o ROI marginal é baixo mesmo com contribuição alta.

Facebook

saturação 63.3% no investimento médio

53.8%

contribuição / Sales médio

0.10x

ROI marginal

0.25

adstock (λ)

0.14

shape da curva

Ajuste de curva mais fraco que o TikTok (R² isolado de 0.099) — padrão semelhante, mas com menos confiança estatística no formato exato da saturação.

Google Ads

sem curva de saturação confiável

17.9%

contribuição / Sales médio

1.26x

ROI (constante, linear)

0.00

adstock (λ)

—

sem saturação detectada

A curva de saturação ajustada isoladamente teve R² negativo (-2.564) — pior que simplesmente usar a média. Tratado como retorno linear por falta de evidência de não-linearidade, não por prova de que o canal nunca satura (o investimento quase não variou no dataset).

Metodologia, em resumo

Adstock (spend[t] + decay × adstock[t-1]) com decay estimado por grid search, não escolhido a dedo. Curva de saturação Hill/logística ajustada por otimização numérica. Regressão múltipla com variável de tendência para isolar crescimento orgânico do efeito de mídia. Validação com split temporal 80/20 — decay e saturação reestimados só com dado de treino, testados em semanas que o modelo nunca viu.

O que a validação fora da amostra revelou

R² caiu de 0.644 (treino) para 0.278 (teste) — sinal real de que parte do ajuste no treino capturava padrão específico daquele período, não só sinal genuíno. O maior erro de previsão no teste coincidiu com a retomada de investimento logo após seis semanas de baixo investimento, bem no Dia dos Namorados — o modelo não tem variável de sazonalidade, então não separa efeito de calendário de efeito de mídia nesse ponto. Investigado e documentado no notebook 04, não escondido atrás de um número de R² isolado.

Crescimento orgânico (Trend)

R$ 3,33 / semana

A regressão inclui uma variável de tendência (a numeração sequencial das semanas) além dos 3 canais de mídia. O coeficiente dela — R$ 3,33 por semana, estimado só com dado de treino — é a leitura de quanto Sales cresce apenas pela passagem do tempo, isolado do efeito de TikTok, Facebook e Google Ads: crescimento que aconteceria de qualquer forma, sem mérito atribuível a investimento em mídia.

Limitações honestas

Dataset pequeno (200 semanas), sem variáveis de controle externas (preço, promoção, sazonalidade). Curva do Google Ads não confiável por falta de variação no investimento observado. Resíduos do modelo completo mostram padrão sistemático, não ruído aleatório puro — sinal de que falta alguma variável que este dataset não tem. Fonte dos dados é um dataset comunitário do Kaggle, sem confirmação oficial de que é 100% real, não sintético.