Inferência causal · Tratamento contínuo · Mídia paga

A curva de gasto vs conversão mente. Este laboratório mede o tamanho da mentira.

Quanto rende o próximo real de orçamento? Em dados observacionais essa curva nasce enviesada, porque a plataforma gasta mais onde já converte melhor. Aqui, um laboratório com verdade conhecida sobre covariáveis reais mostra o viés, corrige sem experimento e converte a curva certa em +9,9% de conversões com o mesmo orçamento.

mesma verba+9,9%política causal (g-comp) vs alocação da plataforma
e a 0,002% do ótimo teórico da sua classe de decisão
-6,7%política da curva ingênua vs a mesma referência
seguir a curva enviesada destrói valor de verdade
0,71 → 0,02correlação dose × potencial: observacional → RCT
é o confundimento que o experimento elimina por sorteio

1.143 anúncios reais de Facebook Ads (covariáveis do dataset KAG, o mesmo do projeto de marketing analytics) · dose e desfecho simulados com verdade conhecida, no padrão dos benchmarks de tratamento contínuo · seed 42, tudo reproduzível por src/analysis.py · todos os números desta página saem dos artefatos gerados.

01 · O problema

"Quanto gastar" é uma pergunta causal, e a mais traiçoeira delas

Decidir onde anunciar compara dois braços (uplift A vs B). Decidir quanto investir compara infinitos: cada valor de orçamento é um tratamento diferente. O nome disso é dose-resposta, e a armadilha é que o histórico da conta parece responder de graça: basta plotar gasto contra conversão. Só que essa curva não é causal.

🤖 A plataforma confunde

O leilão da Meta despeja verba onde a resposta parece melhor. Gasto alto e conversão alta acontecem juntos porque ambos vêm do mesmo público bom, não porque um causa o outro na proporção observada.

📈 A curva ingênua mistura públicos

Cada faixa de dose contém um público diferente: nas doses baixas moram os segmentos fracos, nas altas os fortes. A curva "média" compara maçãs com laranjas ao longo do próprio eixo.

💸 O erro custa caro dos dois lados

Superestimar o retorno marginal no topo infla orçamento em público saturado; subestimar no meio corta verba de onde ainda renderia. A conta chega em conversões perdidas.

Por que um laboratório semi-sintético? Em dados reais a curva verdadeira é desconhecida: qualquer método causal produz uma curva bonita e ninguém pode verificar. A solução da literatura de tratamento contínuo (benchmarks como News-dosage e TCGA-dosage) é usar covariáveis reais + mecanismo simulado com verdade conhecida: o mundo fica realista, e o gabarito existe. É exatamente o que este projeto faz, com os 1.143 anúncios reais do dataset KAG: assim dá para medir o erro de cada método em vez de confiar nele no escuro.
02 · O laboratório

Um mundo realista com gabarito

Cada anúncio real (idade, gênero e interesse do público) recebe uma curva de saturação verdadeira, ancorada nos próprios dados: a propensão-base p0(X) vem de uma regressão nas conversões reais, e vira o teto Vmax do segmento. O custo de saturar, k, varia de R$ 35 a R$ 480 por segmento.

conversões esperadas(X, dose) = Vmax(X) · (1 - e-dose / k(X))   →  retornos decrescentes: cada real rende menos que o anterior

🌍 Cenário observacional

A "plataforma" investe proporcionalmente ao potencial do segmento, com ruído: dose ∝ Vmax^1,1 × ruído. Resultado: correlação de 0,71 entre dose e potencial, o confundimento clássico.

🎲 Cenário RCT

As mesmas doses, permutadas ao acaso entre os anúncios: mesma distribuição de gasto, correlação 0,02 com o potencial. É o "sortear níveis de verba por célula" de um teste de orçamento real.

🎯 Desfecho

Conversões semanais sorteadas de uma Poisson com a média da curva verdadeira. Orçamento total: R$ 70.259/semana, dose mediana de R$ 36 por anúncio.

O confundimento, fotografado

Cada ponto é um anúncio (amostra de 500): dose recebida (escala log) contra propensão-base do público. No observacional, quem tem público bom recebe verba alta; no RCT, o sorteio quebra o vínculo.

0,300,400,500,60131030100300700dose observada (R$, escala log)observacional: corr = 0,71RCT (doses permutadas): corr = 0,02propensão-base p0(X)

É esta foto que condena a curva ingênua: nas doses altas só vivem públicos fortes. Qualquer média por faixa de dose herda essa mistura.

03 · O viés em ação

A mesma análise, dois mundos, duas curvas

A "análise ingênua" é a mais comum do mercado: média de conversões por faixa de gasto. Aplicada ao mundo observacional, ela entorta; aplicada ao RCT, ela acerta. O método é idêntico, quem muda é o dado.

Curva ingênua: enviesada no observacional, correta no RCT

Linha preta: verdade (conhecida por construção). A área sombreada marca doses além do suporte observado (p98 ≈ R$ 356), onde nenhum método tem dados.

verdadecurva ingênua (observacional)curva ingênua no RCT
0510150200400600dose (R$ por anúncio, por semana)além do suporte observadoingênua (obs.)verdadeingênua no RCT

A curva vermelha subestima no trecho barato e explode no trecho caro (RMSE 5,67 contra a verdade): nas doses altas ela só enxerga os públicos fortes e atribui ao dinheiro o mérito do público. A mesma receita no RCT (tracejada azul) cola na verdade com RMSE 0,54: randomizou, o método bobo virou método certo.

Leitura de negócio do viés: a curva vermelha promete retorno marginal alto em doses grandes (inclinação exagerada no topo). Um gestor que a siga vai escalar verba exatamente onde o ganho real já saturou. O viés não é um detalhe estatístico: é uma recomendação de investimento errada, com assinatura e carimbo.
04 · A correção sem experimento

Ajustar pelo que confunde: g-computation e GPS

Quando o RCT ainda não existe, o caminho é ajustar pelas covariáveis que geram o confundimento. Dois métodos clássicos, dois resultados bem diferentes.

🧮 G-computation (padronização)

Ajusta um modelo flexível de conversões ~ (dose, X) (gradient boosting com o escore prognóstico p0 como feature, o truque de Hansen 2008) e depois pergunta ao modelo: "e se todo mundo recebesse dose d?", varrendo o grid e tirando a média. É a g-fórmula de Robins aplicada a dose contínua.

⚖️ GPS (Hirano-Imbens, 2004)

Modela a dose dada as covariáveis (propensity score generalizado), inclui essa densidade no modelo de desfecho e integra. É o análogo contínuo do propensity score; aqui, com a forma paramétrica clássica.

Quem recupera a verdade usando só o observacional?

Mesmos dados confundidos da seção anterior; agora com ajuste por covariáveis.

verdadeg-computationGPS (Hirano-Imbens)
0510150200400600dose (R$ por anúncio, por semana)além do suporte observadoGPSverdadeg-computation

O g-computation reduz o erro de 5,67 para 1,17 (79% a menos) e acompanha a verdade em todo o suporte. O GPS clássico fica em 4,58: a forma paramétrica rígida sofre com a heterogeneidade forte das curvas. Lição honesta: "usar um método causal" não basta, a especificação importa, e só foi possível saber qual funcionou porque o gabarito existe.

5,67
curva ingênua · RMSE vs verdade no suporte. O ponto de partida do viés
1,17
g-computation · flexível + escore prognóstico. O ajuste que funcionou
4,58
GPS paramétrico · o método certo com forma errada quase empata com o ingênuo
As duas hipóteses que sustentam qualquer correção observacional: (1) não-confundimento: tudo que afeta dose e conversão ao mesmo tempo está medido em X (aqui vale por construção; na vida real é hipótese forte); (2) positividade/suporte: cada perfil precisa aparecer em várias doses. Por isso a página inteira corta as curvas no p98 das doses e a política da seção seguinte proíbe recomendar dose além de 1,3x o que cada segmento já praticou. Extrapolar fora do suporte não é inferência, é ficção.
05 · Da curva à decisão

Igualar o retorno marginal: onde a curva vira dinheiro

A curva não é o fim, é o meio. A regra ótima de alocação é clássica: distribuir o orçamento até que o retorno marginal (conversões do próximo real) seja o mesmo em todos os segmentos. Quem usa a curva errada iguala marginais errados.

Saturação verdadeira por grupo de custo

Curvas verdadeiras médias por tercil de k (custo de saturação). O grupo barato (k≈R$ 71) satura cedo; o caro (k≈R$ 211) continua rendendo em doses altas. É essa diferença de curvatura que a alocação explora.

barato (satura rápido)médiocaro (satura devagar)
02.557.5100200400600dose (R$ por anúncio, por semana)caro (k≈211)medio (k≈143)barato (k≈71)

Retornos decrescentes em todo lugar, mas em ritmos diferentes: a decisão de orçamento é inteiramente sobre curvatura, não sobre nível.

Cinco políticas, o mesmo orçamento de R$ 70.259/semana

Conversões semanais esperadas (avaliadas pela verdade) ao realocar a verba em 3 macro-segmentos de potencial previsto. Corte de suporte: nenhuma política recomenda dose além de 1,3x o p95 já praticado no segmento.

Curva ingênuadose única para todos (não enxerga X)
3.908 (-6,7%)
Status quoalocação da "plataforma" simulada
4.187 (referência)
Política causalg-comp por segmento + suporte
4.604 (+9,9%)
Oráculo da classeverdade, mesma política por segmento
4.604 (+10,0%)
Oráculo por anúnciopersonalização perfeita (teto teórico)
4.968 (+18,6%)

Três leituras: a política da curva ingênua destrói 6,7% das conversões (espalha verba uniforme porque sua curva não distingue públicos); a política causal entrega +9,9% e fica a 0,002% do ótimo teórico da sua classe de decisão (4.603,7 vs 4.603,8); e ainda restam +8% na mesa para quem personalizar dose por anúncio, o que exige experimentação contínua, não só modelo.

Para onde cada política manda o dinheiro

Participação de cada tercil de potencial no orçamento. O erro da ingênua fica visível: ela financia o segmento fraco como se fosse igual aos outros.

Curva ingênua
Status quo (plataforma)
Política causal (g-comp)
Oráculo por anúncio

A política causal corta quase todo o segmento de baixo potencial (que satura com pouquíssimo) e realoca no alto, indo além do que a plataforma já fazia. O oráculo por anúncio devolve um pouco de verba ao segmento baixo: dentro dele existem anúncios individuais que valem a pena, nuance que só a personalização captura.

06 · Lições

O que este laboratório ensina

Seis conclusões que sobrevivem fora da simulação.

  1. "Quanto gastar" é dose-resposta, não uplift binário.

    Orçamento é um tratamento contínuo; a resposta certa é uma curva (e sua derivada), não um sim/não. A decisão ótima iguala retornos marginais entre segmentos, a regra mais antiga da economia aplicada a mídia.

  2. A plataforma é um confundidor profissional.

    Algoritmos de leilão existem para gastar mais onde converte melhor. Toda curva de gasto vs resultado tirada do histórico herda esse vínculo (aqui, correlação 0,71), e por isso superestima o retorno do dinheiro.

  3. Sem gabarito, método causal é ato de fé.

    O g-computation venceu (RMSE 1,17) e o GPS clássico quase empatou com o ingênuo (4,58 vs 5,67). Só deu para saber disso porque a verdade era conhecida. É o argumento definitivo para validar métodos em benchmarks semi-sintéticos antes de confiar neles em produção.

  4. Positividade não é nota de rodapé, é a regra do jogo.

    Onde o segmento nunca recebeu dose alta, nenhum modelo sabe o que acontece. As curvas desta página param no suporte observado e a política proíbe recomendar dose além de 1,3x o praticado. Extrapolação vestida de inferência é como os projetos quebram em produção.

  5. A curva errada não é neutra: destrói valor.

    A política da curva ingênua rendeu -6,7% contra o status quo: pior do que não fazer nada. Análise enviesada não é "melhor que nada", pode ser ativamente pior que a heurística da plataforma.

  6. O experimento continua sendo o padrão-ouro, e é barato mirado.

    A mesma curva ingênua que mente no observacional acerta no RCT (RMSE 0,54). Na prática: testes de orçamento por célula/geo (2-3 níveis de verba sorteados) validam a curva onde ela mais importa, perto da dose atual, e destravam os +8% finais da personalização por anúncio.

Reproduza em casa: python src/analysis.py gera o mundo, os dois cenários, as quatro curvas e a alocação (~30 segundos, CPU); python src/build_charts.py --splice regenera os gráficos desta página. Referências no repositório: g-fórmula de Robins (1986), GPS de Hirano & Imbens (2004), escore prognóstico de Hansen (2008) e os benchmarks de dose contínua de Schwab et al. (2020) e Bica et al. (2020).