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:
-
Experimento de laboratório convencional (conventional lab experiment): amostra de estudantes, tarefa abstrata, ambiente artificial.
-
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.
-
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.
-
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):
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:
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:
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:
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 é:
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:
(b) Tamanho da amostra.
Com \(\alpha = 0{,}05\): \(z_{\alpha/2} = 1{,}96\). Com poder = 80%: \(z_{\beta} = 0{,}84\).
São necessários pelo menos 357 participantes por grupo, ou 714 no total.
(c) Custo total.
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 é:
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
-
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.
-
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}}\)?
-
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?
-
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
estadoque agrupe municípios) e compare os erros-padrão. -
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.