Skip to content

22.3–22.4 Campo e RCTs

22.3 Experimentos de Campo

22.3.1 A taxonomia de Harrison e List

O laboratório é confortável, mas tem um problema incômodo: o mundo real não vem com instruções padronizadas nem com estudantes obedientes sentados em fileiras. Será que o que funciona numa sala climatizada da universidade sobrevive ao caos de um mercado de rua em Nairóbi ou à fila de uma creche em Haifa? Para responder, os economistas precisaram sair do laboratório — e levar o método científico na mochila. Glenn Harrison e John List (2004) propuseram uma taxonomia influente que classifica os experimentos econômicos em um espectro contínuo entre laboratório puro e campo puro. A classificação organiza-se ao longo de seis dimensões: (i) natureza da amostra de participantes, (ii) natureza da informação disponível, (iii) natureza do bem transacionado, (iv) natureza das regras e da tarefa, (v) natureza do ambiente de decisão, e (vi) natureza das apostas (stakes).

Com base nessas dimensões, Harrison e List distinguem quatro tipos:

  1. Experimento de laboratório convencional (conventional lab experiment): amostra de estudantes, tarefa abstrata, ambiente artificial.

  2. Experimento de laboratório artefactual (artefactual field experiment): usa participantes do campo (e.g., comerciantes de rua, agricultores), mas mantém a tarefa abstrata e o ambiente controlado.

  3. Experimento de campo emoldurado (framed field experiment): usa participantes do campo, informação e bens do contexto real, mas o pesquisador ainda controla a aleatorização e a coleta de dados.

  4. Experimento de campo natural (natural field experiment): os participantes não sabem que estão em um experimento; o ambiente é totalmente natural. Exemplo: um empregador que aleatoriza anúncios de emprego para medir discriminação.

Tipo Amostra Tarefa Ambiente Sabe que é experimento?
Lab convencional Estudantes Abstrata Laboratório Sim
Lab artefactual Campo Abstrata Laboratório Sim
Campo emoldurado Campo Contextualizada Real Sim
Campo natural Campo Natural Real Não

22.3.2 Vantagens dos experimentos de campo

Os experimentos de campo combinam duas virtudes: o controle da aleatorização (que garante validade interna) com o realismo do contexto natural (que aumenta a validade externa). Isso resolve parcialmente o trade-off central da economia experimental.

As principais vantagens são:

  • Apostas reais em escala real: as decisões envolvem valores significativos (emprego, renda, saúde) que podem afetar substancialmente a vida dos participantes — eliminando a crítica de que "com R$ 10 em jogo, as pessoas não levam a sério".

  • Contexto natural: as decisões ocorrem no ambiente em que normalmente seriam tomadas (mercado, escola, hospital), preservando as normas sociais, informações e restrições que afetam o comportamento real.

  • Amostra representativa: os participantes são pessoas reais afetadas pela questão em estudo — não estudantes de economia decidindo sobre cenários abstratos.

  • Ausência de efeito de demanda: quando os participantes não sabem que estão em um experimento (campo natural), não podem alterar seu comportamento em resposta à observação.

22.3.3 Exemplo clássico: Gneezy e Rustichini (2000)

Uri Gneezy e Aldo Rustichini conduziram um dos mais famosos experimentos de campo em economia, publicado no Journal of Legal Studies em 2000. O contexto era uma creche em Haifa, Israel, que enfrentava o problema de pais que chegavam atrasados para buscar os filhos — obrigando os funcionários a fazer hora extra.

Desenho: Os pesquisadores introduziram uma multa monetária para pais que chegassem mais de 10 minutos atrasados. A previsão do modelo econômico padrão (Capítulo 4, restrição orçamentária: atraso ficou mais caro, logo a demanda por atraso deveria cair) era clara: a multa deveria reduzir os atrasos.

Resultado: Os atrasos aumentaram — e significativamente. Após a introdução da multa, o número de pais atrasados quase dobrou. Pior: quando a multa foi removida semanas depois, os atrasos não retornaram ao nível original — permaneceram elevados.

Interpretação: O resultado desafia a visão puramente econômica dos incentivos e conecta diretamente com o Capítulo 8 (Economia Comportamental). A explicação mais aceita é que a multa transformou uma obrigação moral (norma social: "não é correto atrasar e incomodar os funcionários") em uma transação de mercado ("estou pagando pelo direito de atrasar"). Ao monetizar o atraso, a creche substituiu o incentivo moral pelo incentivo financeiro — e o incentivo financeiro, sendo relativamente baixo, resultou em mais atrasos, não menos. O efeito foi irreversível: uma vez que a norma social foi destruída pela introdução do preço, sua remoção não restaurou a norma.

Intuição Econômica

Em uma frase: Incentivos monetários podem destruir motivações intrínsecas — e o efeito pode ser irreversível.

Pense assim: Você doa sangue por altruísmo. Um dia, o hospital passa a pagar R$ 50 por doação. Você pode pensar: "Agora tenho mais motivo para doar!" Mas para muitas pessoas, o pagamento reduz a motivação: "Se estão me pagando, não é mais um ato de solidariedade — é um serviço." O pior cenário: se o pagamento for removido, você não volta a doar por altruísmo, porque a transação comercializou o ato.

Por que isso importa: Esse resultado tem implicações profundas para o desenho de políticas públicas. Programas que "pagam" por comportamentos socialmente desejáveis (frequência escolar, vacinação, reciclagem) podem ser eficazes — mas também podem minar as motivações intrínsecas que sustentam esses comportamentos a longo prazo. O desenho do incentivo importa tanto quanto o incentivo em si.

Box Brasil 22.1 — Bolsa Família e avaliação experimental

Contexto: O Programa Bolsa Família (PBF), criado em 2003 pela fusão de programas anteriores, é o maior programa de transferência condicionada de renda do mundo, alcançando mais de 21 milhões de famílias (cerca de 85 milhões de pessoas) em 2024. As famílias recebem transferências monetárias condicionadas à matrícula escolar dos filhos e ao cumprimento de exigências de saúde (vacinação, pré-natal).

Dados: Diversas avaliações com métodos experimentais e quase-experimentais documentaram os efeitos do PBF. Usando dados de painéis e regressão descontínua (explorando os limiares de elegibilidade), pesquisadores encontraram: (i) aumento de 3–5 pontos percentuais na frequência escolar; (ii) redução de 10–15% no trabalho infantil; (iii) aumento de 2–4 pontos percentuais na taxa de vacinação; (iv) efeitos modestos mas positivos sobre nutrição e saúde materno-infantil. Estudos de longo prazo (De Brauw et al., 2015; Barbosa e Corseuil, 2014) mostram que a primeira geração de beneficiários do PBF tem maiores taxas de conclusão do ensino médio e de ingresso no mercado formal.

Análise: A avaliação do Bolsa Família ilustra tanto o poder quanto os limites dos métodos experimentais em políticas públicas brasileiras. A escala do programa (universal para famílias elegíveis) impede um RCT clássico (não se pode negar o benefício aleatoriamente a famílias elegíveis por razões éticas e políticas). Os pesquisadores recorreram a métodos quase-experimentais — regressão descontínua nos limiares de renda, diferenças-em-diferenças explorando a expansão gradual do programa, e variáveis instrumentais — que combinam a lógica experimental com dados observacionais. Os resultados são consistentes: o PBF reduz a pobreza imediata e tem efeitos positivos de longo prazo sobre capital humano, com custo fiscal relativamente baixo (menos de 0,5% do PIB).

Fonte: Soares, F. V.; Ribas, R. P.; Osório, R. G. 2010. Evaluating the Impact of Brazil's Bolsa Família. Latin American Research Review, 45(2), 173–190.


22.4 Ensaios Controlados Randomizados (RCTs)

22.4.1 A lógica da randomização

Imagine que alguém lhe apresente um novo programa social e garanta: "Funciona maravilhosamente!" Sua resposta deveria ser: "Comparado a quê?" Essa pergunta — irritante, mas essencial — é a alma do ensaio controlado randomizado. O ensaio controlado randomizado (RCT — randomized controlled trial) é a aplicação em larga escala da lógica experimental à avaliação de políticas públicas. O princípio é o mesmo que faz um laboratório farmacêutico dividir pacientes em dois grupos antes de declarar que um remédio funciona: separar aleatoriamente uma população em grupo de tratamento (que recebe a intervenção) e grupo de controle (que não recebe), e comparar os resultados.

Formalmente, queremos estimar o efeito médio do tratamento (Average Treatment Effect, ATE):

\[ \text{ATE} = E[Y_i(1) - Y_i(0)] \label{eq:22.5} \tag{22.5} \]

onde \(Y_i(1)\) é o resultado do indivíduo \(i\) se tratado e \(Y_i(0)\) é o resultado se não tratado. O problema fundamental da inferência causal é que nunca observamos ambos os resultados potenciais para o mesmo indivíduo — o chamado problema do contrafactual. A randomização resolve esse problema garantindo que:

\[ E[Y_i(0) \mid \text{Tratado}] = E[Y_i(0) \mid \text{Controle}] \label{eq:22.6} \tag{22.6} \]

isto é, o resultado contrafactual médio do grupo tratado (o que teria acontecido se não tivessem sido tratados) é igual ao resultado observado do grupo de controle. A diferença de médias entre os grupos identifica o ATE:

\[ \hat{\text{ATE}} = \bar{Y}_{\text{tratado}} - \bar{Y}_{\text{controle}} \label{eq:22.7} \tag{22.7} \]

22.4.2 Estratificação, atrito e complicações práticas

Na prática, a randomização pura pode ser insuficiente, e vários problemas técnicos surgem:

Estratificação (stratification). Quando a amostra é heterogênea (rurais e urbanos, ricos e pobres), a randomização simples pode, por azar, gerar grupos desbalanceados. A estratificação resolve isso: primeiro divide-se a amostra em subgrupos (estratos) homogêneos, depois aleatoriza-se dentro de cada estrato. Isso garante que cada estrato tenha proporção semelhante de tratados e controles.

Atrito (attrition). Participantes podem abandonar o estudo — por mudança de endereço, desinteresse ou por escolha estratégica. Se o atrito é diferencial (mais tratados abandonam do que controles, ou vice-versa), a aleatorização é comprometida e o efeito estimado é enviesado. Pesquisadores monitoram taxas de atrito e realizam análises de robustez para verificar se o atrito é aleatório com respeito ao tratamento.

ITT versus TOT. Nem todos os tratados efetivamente recebem o tratamento (não-adesão: non-compliance). A estimativa baseada na atribuição aleatória — independentemente de quem efetivamente aderiu — é a intenção de tratar (Intention-to-Treat, ITT). Para estimar o efeito sobre quem efetivamente foi tratado — o efeito do tratamento sobre os tratados (Treatment on the Treated, TOT) — usa-se a atribuição aleatória como variável instrumental para a adesão efetiva:

\[ \text{TOT} = \frac{\text{ITT}}{\text{taxa de adesão}} \label{eq:22.8} \tag{22.8} \]

Este é o estimador de Wald, que conecta RCTs com a econometria de variáveis instrumentais (Seção 22.5).

Cálculos de poder (power calculations). Antes de conduzir um RCT, o pesquisador calcula o tamanho mínimo da amostra necessário para detectar um efeito de magnitude plausível com probabilidade razoável (tipicamente 80%). A fórmula básica para um teste de diferença de médias é:

\[ n = \frac{2(z_{\alpha/2} + z_{\beta})^2 \sigma^2}{\delta^2} \label{eq:22.9} \tag{22.9} \]

onde \(n\) é o tamanho da amostra por grupo, \(z_{\alpha/2}\) é o valor crítico para o nível de significância \(\alpha\), \(z_{\beta}\) é o valor crítico para o poder \(1 - \beta\), \(\sigma^2\) é a variância do resultado, e \(\delta\) é o efeito mínimo detectável (minimum detectable effect, MDE). Quanto menor o efeito que se deseja detectar, maior a amostra necessária.

Componentes de um RCT

Componente Descrição
Randomização Atribuição aleatória de indivíduos (ou clusters) ao tratamento
Grupo de controle Grupo que não recebe a intervenção — fornece o contrafactual
Estratificação Divisão prévia em subgrupos para garantir balanceamento
ITT Efeito estimado pela atribuição aleatória original (intenção de tratar)
TOT Efeito estimado sobre quem efetivamente recebeu o tratamento
Poder estatístico Probabilidade de detectar um efeito verdadeiro (tipicamente 80%)
Atrito Perda de participantes ao longo do estudo
Efeito de transbordamento (spillover) O tratamento afeta o grupo de controle indiretamente

22.4.3 O Nobel de 2019: Banerjee, Duflo e Kremer

O Nobel de 2019 reconheceu a transformação que os RCTs trouxeram para a economia do desenvolvimento. O trabalho pioneiro de Michael Kremer começou no Quênia na década de 1990. Kremer e colegas testaram diversas intervenções educacionais: distribuição de livros didáticos, redução do tamanho das turmas, tratamento de vermes intestinais (deworming), e incentivos financeiros para professores. Os resultados revelaram que nem todas as intervenções "óbvias" funcionam:

  • Livros didáticos: sem efeito significativo sobre o desempenho médio dos alunos — beneficiaram apenas os melhores alunos, pois os livros estavam em inglês e muitos alunos não tinham proficiência suficiente.
  • Desparasitação (deworming): tratamento barato (US$ 0,50/criança/ano) com efeitos enormes — redução de 25% no absenteísmo escolar e aumento de renda de 20% na vida adulta (acompanhamento de 10+ anos).
  • Incentivos para professores: programas que vinculavam parte do salário ao desempenho dos alunos aumentaram significativamente as notas — mas programas que simplesmente contratavam mais professores sem alterar incentivos tiveram efeito limitado.

Abhijit Banerjee e Esther Duflo expandiram essa abordagem para dezenas de temas: microcrédito, vacinação, participação política, poupança, saúde preventiva e empreendedorismo. Seu livro Poor Economics (2011) sintetiza os achados em uma narrativa acessível: a pobreza não resulta de uma única causa macro, mas de uma multiplicidade de armadilhas (poverty traps) que podem ser identificadas e quebradas por intervenções micro bem desenhadas.

Exercício Resolvido 22.2 — Cálculo de poder de um RCT

Enunciado. Um pesquisador quer avaliar se a distribuição de mosquiteiros reduz a incidência de malária em uma região rural da África. A taxa base de malária é de 40% (sem tratamento). O pesquisador acredita que o mosquiteiro pode reduzir a incidência para 30% (efeito de 10 pontos percentuais). Deseja detectar esse efeito com nível de significância \(\alpha = 0{,}05\) e poder de 80% (\(\beta = 0{,}20\)).

(a) Calcule a variância do resultado (variável binária).

(b) Calcule o tamanho mínimo da amostra por grupo.

(c) Se o custo por participante é de US$ 15 (tratamento + monitoramento), qual é o custo total mínimo do estudo?


Solução.

(a) Variância.

Para uma variável binária com probabilidade \(p\), a variância é \(\sigma^2 = p(1-p)\). Usando a média das proporções dos dois grupos:

\[ \bar{p} = \frac{0{,}40 + 0{,}30}{2} = 0{,}35 \]
\[ \sigma^2 = \bar{p}(1 - \bar{p}) = 0{,}35 \times 0{,}65 = 0{,}2275 \]

(b) Tamanho da amostra.

Com \(\alpha = 0{,}05\): \(z_{\alpha/2} = 1{,}96\). Com poder = 80%: \(z_{\beta} = 0{,}84\).

\[ n = \frac{2(1{,}96 + 0{,}84)^2 \times 0{,}2275}{(0{,}10)^2} = \frac{2 \times (2{,}80)^2 \times 0{,}2275}{0{,}01} \]
\[ n = \frac{2 \times 7{,}84 \times 0{,}2275}{0{,}01} = \frac{3{,}567}{0{,}01} \approx 357 \]

São necessários pelo menos 357 participantes por grupo, ou 714 no total.

(c) Custo total.

\[ \text{Custo} = 714 \times 15 = \text{US\$ } 10.710 \]

Na prática, deve-se adicionar 15–20% para compensar atrito esperado: \(714 / 0{,}85 \approx 840\) participantes, custo de US$ 12.600. Este é um RCT relativamente barato — o estudo original de desparasitação de Kremer custou menos de US$ 50.000 e influenciou políticas que alcançaram milhões de crianças.


Mini-Lab Computacional — Diferenças-em-Diferenças com Dados Simulados

Objetivo: Implementar o estimador de diferenças-em-diferenças (DiD) em Python, simular um painel com efeito de tratamento conhecido e verificar que o estimador recupera o efeito verdadeiro. O aluno também testa as consequências da violação da hipótese de tendências paralelas.

Pré-requisitos: Python 3, NumPy, Pandas, Matplotlib, statsmodels.

Tempo estimado: 45–60 minutos.


Parte 1 — O cenário

Considere dois grupos de municípios brasileiros — tratados (que receberam um programa de transferência de renda em \(t = 1\)) e controles (que não receberam). A variável de resultado é a taxa de frequência escolar (%). Você observa os dois grupos em dois períodos: \(t = 0\) (antes) e \(t = 1\) (depois).

O modelo de dados é:

\[ Y_{it} = \alpha + \beta \cdot \text{Tratado}_i + \gamma \cdot \text{Pos}_t + \delta \cdot (\text{Tratado}_i \times \text{Pos}_t) + \varepsilon_{it} \]

onde \(\delta\) é o efeito causal do tratamento (o parâmetro DiD).


Parte 2 — Código Python

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import statsmodels.formula.api as smf

np.random.seed(42)

# ── Parâmetros da simulação ─────────────────────────────
N = 200            # municípios por grupo
alpha = 75.0       # intercepto (frequência base, %)
beta = -5.0        # diferença de nível entre grupos (tratados partem de menos)
gamma = 3.0        # tendência temporal comum
delta_true = 8.0   # efeito causal verdadeiro do programa
sigma = 4.0        # desvio-padrão do erro

# ── Gerar painel ────────────────────────────────────────
tratado = np.repeat([0, 1], N)
pos = np.tile([0, 1], N)
# Expandir para painel completo: cada município aparece 2 vezes
municipio = np.repeat(np.arange(2 * N), 1)

# Na verdade, precisamos de painel: cada município em t=0 e t=1
ids = np.arange(2 * N)
tratado_i = np.where(ids < N, 0, 1)  # primeiros N = controle

rows = []
for i in ids:
    for t in [0, 1]:
        y = (alpha
             + beta * tratado_i[i]
             + gamma * t
             + delta_true * tratado_i[i] * t
             + np.random.normal(0, sigma))
        rows.append({
            'municipio': i,
            'tratado': tratado_i[i],
            'pos': t,
            'frequencia': y
        })

df = pd.DataFrame(rows)
df['tratado_pos'] = df['tratado'] * df['pos']

print("Primeiras linhas do painel:")
print(df.head(10))
print(f"\nDimensões: {df.shape[0]} observações, {len(ids)} municípios, 2 períodos")

# ── Estimação DiD por regressão ─────────────────────────
modelo = smf.ols('frequencia ~ tratado + pos + tratado_pos', data=df).fit()
print("\n" + "═" * 60)
print("ESTIMAÇÃO DIFERENÇAS-EM-DIFERENÇAS")
print("═" * 60)
print(modelo.summary().tables[1])
print(f"\n  δ estimado = {modelo.params['tratado_pos']:.3f}")
print(f"  δ verdadeiro = {delta_true:.3f}")
print(f"  Erro = {abs(modelo.params['tratado_pos'] - delta_true):.3f}")

# ── Verificação manual ──────────────────────────────────
medias = df.groupby(['tratado', 'pos'])['frequencia'].mean().unstack()
print("\n  Tabela de médias:")
print(medias.round(2))
did_manual = ((medias.loc[1, 1] - medias.loc[1, 0])
              - (medias.loc[0, 1] - medias.loc[0, 0]))
print(f"\n  DiD manual = {did_manual:.3f}")

# ── Gráfico clássico DiD ───────────────────────────────
fig, ax = plt.subplots(figsize=(8, 5))

for g, label, cor in [(0, 'Controle', '#2196F3'), (1, 'Tratado', '#F44336')]:
    sub = medias.loc[g]
    ax.plot([0, 1], [sub[0], sub[1]], 'o-', color=cor,
            linewidth=2.5, markersize=10, label=label)

# Contrafactual
cf = medias.loc[1, 0] + (medias.loc[0, 1] - medias.loc[0, 0])
ax.plot([0, 1], [medias.loc[1, 0], cf], 's--', color='#F44336',
        alpha=0.4, linewidth=2, markersize=8, label='Contrafactual (tratado)')

# Seta mostrando o efeito
ax.annotate('', xy=(1.05, medias.loc[1, 1]), xytext=(1.05, cf),
            arrowprops=dict(arrowstyle='<->', color='green', lw=2))
ax.text(1.1, (medias.loc[1, 1] + cf) / 2, f'δ = {did_manual:.1f}',
        fontsize=12, color='green', fontweight='bold', va='center')

ax.set_xticks([0, 1])
ax.set_xticklabels(['Antes (t=0)', 'Depois (t=1)'])
ax.set_ylabel('Frequência escolar (%)')
ax.set_title('Diferenças-em-Diferenças: Efeito do Programa')
ax.legend(loc='upper left')
ax.grid(True, alpha=0.3)
plt.tight_layout()
plt.savefig('did_resultado.png', dpi=150, bbox_inches='tight')
plt.show()

# ═══════════════════════════════════════════════════════
# PARTE 3 — VIOLAÇÃO DE TENDÊNCIAS PARALELAS
# ═══════════════════════════════════════════════════════

print(f"\n{'═' * 60}")
print("VIOLAÇÃO DE TENDÊNCIAS PARALELAS")
print("═" * 60)

# Agora o grupo tratado tem tendência pré-tratamento diferente
gamma_controle = 3.0
gamma_tratado = 6.0  # tratados já estavam melhorando mais rápido

rows_v = []
for i in ids:
    for t in [0, 1]:
        g_i = gamma_tratado if tratado_i[i] == 1 else gamma_controle
        y = (alpha
             + beta * tratado_i[i]
             + g_i * t
             + delta_true * tratado_i[i] * t
             + np.random.normal(0, sigma))
        rows_v.append({
            'municipio': i, 'tratado': tratado_i[i],
            'pos': t, 'frequencia': y
        })

df_v = pd.DataFrame(rows_v)
df_v['tratado_pos'] = df_v['tratado'] * df_v['pos']

modelo_v = smf.ols('frequencia ~ tratado + pos + tratado_pos', data=df_v).fit()
delta_viesado = modelo_v.params['tratado_pos']

print(f"  δ estimado (com violação) = {delta_viesado:.3f}")
print(f"  δ verdadeiro              = {delta_true:.3f}")
print(f"  Viés                      = {delta_viesado - delta_true:.3f}")
print(f"\n  ⚠️  O DiD SUPERESTIMA o efeito porque o grupo tratado")
print(f"     já tinha tendência ascendente mais forte ANTES do programa.")
print(f"     Viés = γ_tratado - γ_controle = {gamma_tratado - gamma_controle:.1f}")

Parte 3 — Perguntas para o relatório

  1. Interpretação dos coeficientes: No modelo \(Y = \alpha + \beta \cdot T + \gamma \cdot P + \delta \cdot (T \times P) + \varepsilon\), interprete cada coeficiente em termos da tabela 2×2 de médias.

  2. Tendências paralelas: Por que a violação de tendências paralelas gera viés positivo no exemplo acima? Em que direção seria o viés se \(\gamma_{\text{tratado}} < \gamma_{\text{controle}}\)?

  3. Teste placebo: Modifique o código para criar um "tratamento falso" em \(t = 0\) (antes do programa real) usando dados de três períodos (\(t = -1, 0, 1\)). Se o DiD no período pré-tratamento for significativo, o que isso sugere sobre a validade da identificação?

  4. Clusters: Na prática, municípios dentro de um mesmo estado podem ter erros correlacionados. Reestime o modelo com erros clusterizados por estado (crie uma variável estado que agrupe municípios) e compare os erros-padrão.

  5. Conexão com RCTs: Explique por que, se o programa fosse atribuído por RCT (aleatorização pura), a hipótese de tendências paralelas seria automaticamente satisfeita. Em que situações o DiD é necessário em vez de um RCT?


Conexão com o capítulo: Este exercício implementa o estimador DiD discutido na Seção 22.5 (Experimentos Naturais) e conecta com a lógica de resultados potenciais da Seção 22.4 (RCTs). A violação de tendências paralelas ilustra por que métodos quase-experimentais exigem hipóteses de identificação que os RCTs dispensam — o trade-off entre validade interna e viabilidade prática discutido ao longo de todo o capítulo.