Pesquisa aplicada · Markowitz Bayesiano

Black-Litterman (1992)

Implementação do modelo de Black & Litterman (1992, FAJ) — “Global Portfolio Optimization”. Trabalho original desenvolvido na Goldman Sachs Fixed Income Research. A ideia é conserta o Markowitz clássico fazendo duas coisas: (1) usar como prior não a média amostral μ̂, mas a vetor de retornos implícitos pelo equilíbrio de mercado Π = δΣw_mkt (o μ que tornaria a carteira de mercado ótima na média-variância); (2) misturar essa prior com as views do gestor — opiniões bayesianas com grau de confiança explícito.

Resolve diretamente os problemas levantados em /ingenuo (DGU 2009 — μ̂ amostral é instável) e em /kahneman (Kahneman — μ̂ amostral confunde sorte com skill). Sem views ⇒ μ_BL = Π, a tangência é a própria carteira de mercado — “quando você não tem opinião, fique com o índice”. Com views ⇒ o posterior tilta suavemente proporcional à confiança declarada.

Equações — Black-Litterman (1992)

O ponto de partida não é a média histórica μ̂, é o retorno implícito pelo equilíbrio: dado o vetor de pesos da carteira de mercado wmkt (no nosso caso, os pesos do IBOV) e a covariância Σ, qual μ tornaria essa carteira a tangência de Markowitz? É a reversão do CAPM:

O parâmetro δ é a aversão a risco do mercado representativo: 2,5 no textbook He-Litterman (1999), ≈ 1 quando reverte-engenheirado da Sharpe histórica do IBOV. As views são K previsões lineares com confiança calibrada por uma matriz de incertezaΩ:

P é a matriz K×N das views (cada linha define a carteira sobre a qual a view incide), Q é o vetor de retornos esperados declarados, Ω é diagonal com Ωkk = τ · Pk Σ Pk · (1−c)/c, onde c ∈ (0, 1] é a confiança. c = 0,5 é o default He-Litterman; c → 1 ⇒ Ω → 0 ⇒ a view vira igualdade dura. Sob a prior bayesiana de Black-Litterman, μ verdadeiro tem distribuição:

O posterior resulta da combinação bayesiana entre essa prior e as views. A forma fechada — talvez a fórmula mais icônica da gestão quantitativa de carteiras pós-1990 — é:

Sem views (matriz P vazia), o segundo termo do produto desaparece e os dois (τΣ)−1 se cancelam: μBL = Π exatamente. Esse é o ponto teórico mais importante do modelo — sem opinião, o investidor recebe a recomendação “hold the index”.

A covariância posterior usada no otimizador final incorpora a incerteza adicional sobre μ:

Interpretação: M é a covariância posterior do próprio vetor μ. Sem views, M = τΣ ⇒ ΣBL= (1 + τ)Σ — uma inflação modesta. Com views, M é menor na direção das views (a Bayes “aprendeu”) e maior perpendicularmente. Esse termo é o que mata a concentração de 80% num só ticker que caracteriza o Markowitz puro — o otimizador é matematicamente honesto sobre não saber μ exatamente.

Configuração do modelo

Σ̂ estimado por Ledoit-Wolf na janela; μ_amostral usa o pipeline do tab Markowitz (Jensen + Jorion + macro-anchor). w_mkt = pesos IBOV restritos ao universo (renormalizados).

15 ativos · janela 2021-06-152026-07-15 · T = 1260d · rf = +12,90% a.a.
Views (opiniões bayesianas)

Adicione views absolutas sobre tickers individuais. “Espero que VALE3renda 18% a.a. com confiança 70%”. Sem views ⇒ μ_BL = Π (carteira de mercado é a ótima).

Nenhuma view. O posterior é igual ao prior (μ_BL = Π).
O que estes números significam

Os 5 ativos com maior peso no IBOV (após auto-redução), decompostos em três retornos esperados anuais e duas leituras de gap. δ = 2,50 · τ = 0,050 · sem views ⇒ μ_BL = Π

tickerpeso IBOVΠ equilíbrioμ̂ amostralμ_BL posteriorμ̂ − Πμ_BL − Π
VALE317,2%+7,21% a.a.+15,47% a.a.+7,21% a.a.+8,26% a.a.0,00% a.a.
PETR412,8%+8,63% a.a.+24,04% a.a.+8,63% a.a.+15,42% a.a.0,00% a.a.
ITUB412,7%+8,16% a.a.+18,12% a.a.+8,16% a.a.+9,96% a.a.0,00% a.a.
PETR37,4%+8,86% a.a.+24,53% a.a.+8,86% a.a.+15,67% a.a.0,00% a.a.
BBAS36,7%+8,06% a.a.+17,14% a.a.+8,06% a.a.+9,08% a.a.0,00% a.a.

Como interpretar: Π equilíbrio é o retorno que o mercado está precificando para cada ticker, dado seu peso no IBOV e sua covariância — não tem nenhuma média histórica. μ̂ amostral é o retorno médio observado na janela, após o pipeline de shrinkage do tab Markowitz. μ_BL posterior é a média ponderada bayesiana das duas — ancorada em Π, ajustada pelas suas views.

μ̂ − Π > 0: a janela “favoreceu” esse ticker. Markowitz puro vai super-alocar; BL vai resistir. μ̂ − Π < 0: a janela “castigou” esse ticker. Markowitz vai zerar; BL vai manter próximo do peso de mercado.

No seu universo agora: o ativo mais “sortudo” é SBSP3 (μ̂ excede Π por +16,26% a.a.) — é onde o Markowitz vai concentrar peso de forma frágil. O mais “azarado” é RENT3 (μ̂ menor que Π por +2,88% a.a.) — onde Markowitz vai subponderar mas o mercado precifica retorno positivo.

Retornos esperados (a.a.)

Equilíbrio (Π) = δ Σ w_mkt — o μ implícito pelo IBOV ser a carteira ótima. Amostral = média amostral histórica com shrinkage (igual ao tab Markowitz). Posterior (μ_BL) = Bayes(Π, views). Sem views ⇒ Posterior = Equilíbrio.

Carteiras tangência (max-Sharpe long-only)

Mercado = pesos IBOV (referência). Markowitz = tangência sob μ̂ amostral encolhido + Σ̂ Ledoit-Wolf — igual ao tab Markowitz. BL = tangência sob μ_BL + Σ_BL = Σ + M. Sem views, BL ≈ Mercado; com views, BL desvia do Mercado na direção da view.

Mercado (IBOV)
retorno+18,95% a.a.vol17,84%Sharpe0,34
Markowitz
retorno+22,94% a.a.vol21,69%Sharpe0,46
Black-Litterman
retorno+5,78% a.a.vol16,82%Sharpe-0,42
Como os pesos se deslocam vs IBOV · Markowitz vs BL

Para cada ativo, quanto cada otimizador se desviou do peso de mercado. Markowitz tende a apostas extremas em poucos ativos (μ̂ chasing); BL, com τ = 0,050 e nenhuma view, se ancora muito mais próximo do IBOV.

Distância total ao IBOV (norma L1 ÷ 2)

Markowitz: 72,1% da carteira difere do IBOV. Black-Litterman: 63,2%. Razão MV/BL = 1,1×. Markowitz zera 11 de 15 ativos (peso < 0,5%); BL zera apenas 9. Sem views, BL recupera essencialmente a carteira de mercado — é o ponto teórico mais importante do modelo.

As 8 maiores apostas do Markowitz (vs IBOV)

Ordenado por |w_MV − w_mkt| decrescente. Quando MV-Δ é positivo, Markowitz sobreponderou o ativo (acreditou no μ̂ alto); quando negativo, subponderou ou zerou. BL-Δ na mesma linha mostra o quanto BL concorda — quase sempre uma fração de MV-Δ.

tickerpeso IBOVpeso MVpeso BLMV − IBOVBL − IBOV
SBSP33,5%43,9%2,0%+40,4pp-1,5pp
VALE317,2%0,0%15,2%-17,2pp-2,0pp
PETR37,4%22,5%0,0%+15,1pp-7,4pp
ITUB412,7%0,0%0,0%-12,7pp-12,7pp
ITSA44,3%13,0%0,0%+8,7pp-4,3pp
PETR412,8%20,6%5,6%+7,9pp-7,2pp
BBAS36,7%0,0%0,0%-6,7pp-6,7pp
B3SA36,1%0,0%0,0%-6,1pp-6,1pp

Como interpretar uma linha: se MV-Δ = +15pp e BL-Δ = +2pp para um ticker, Markowitz aposta 15 pontos percentuais a mais que o IBOV nesse ativo (acreditando que μ̂ está certo); BL adiciona apenas 2pp (a maior parte do sinal foi absorvido pela prior bayesiana via Π). A razão MV/BL ≈ 1 é uma medida de quanto BL protege contra erro de estimativa em μ.

Como ler — em profundidade

Por que Π existe? — reversão do problema de otimização

Markowitz resolve w*(μ, Σ, δ). Black-Litterman inverte: dado um w observado (o IBOV) e Σ, qual é o μ que faria w ser a solução ótima de média-variância? Resposta: Π = δ Σ w. Se você acredita que o IBOV de hoje reflete o consenso agregado de todos os investidores otimizando MV (CAPM em equilíbrio), então Π é a melhor estimativa livre de amostra dos retornos esperados — não tem nenhuma média histórica nele.

Comparando Π com μ̂ amostral — onde estão os erros

Onde o gráfico de barras mostra Amostral > Equilíbrio, esse ticker teve sorte na janela escolhida — μ̂ pegou o pico do ciclo. Markowitz vai sobreponderá-lo (porque μ̂ está artificialmente alto), e a Sharpe ex-post vai desabar. Onde Equilíbrio > Amostral, o ticker apanhou na janela — Markowitz vai subponderá-lo (ou zerá-lo), e o ativo pode performar bem no futuro reverter à média. Π neutraliza ambos os erros.

O papel de τ — quanta atenção dar às views

τ é a variância da prior em unidades de Σ. τ pequeno (0,01-0,05): a prior é “quase certa” — você precisa de muita confiança e/ou views com retorno bem diferente de Π·P para mover μ_BL. τ grande: a prior é frouxa — a primeira view já domina o posterior. O canônico Black-Litterman (1992) usa τ ≈ 0.05; Idzorek (2005) e He-Litterman (1999) também ficam nessa faixa. τ → ∞ faz BL colapsar para Markowitz puro com μ = média ponderada das views por confiança (sem ancoragem ao equilíbrio).

O papel de δ — aversão a risco

δ controla a magnitude de Π. δ = 2,5 é o default textbook. Pode ser reverte-engenheirado da Sharpe histórica do índice: δ ≈ (E[r_mkt] − rf) / σ²_mkt. Para o IBOV, com prêmio de risco ≈ 6% a.a. e σ_mkt ≈ 25% a.a., isso dá δ ≈ 0,06 / 0,0625 ≈ 0,96. Use 2,5 para reproduzir os papers; use ≈1 para refletir a realidade brasileira.

Σ_BL = Σ + M — o anti-otimismo

Mesmo a Σ estimada é uma estimativa — μ é ainda mais incerto. Black-Litterman incorpora essa incerteza inflando a covariância usada no otimizador final: Σ_BL = Σ + Monde M é a covariância do próprio μ. Sem views, M = τΣ ⇒ Σ_BL = (1+τ)Σ. Com views, M é menor (a Bayes “aprendeu” algo), e o otimizador é menos conservador na direção dessas views. É o que mata a concentração 80%-em-um-ticker do Markowitz puro.

Sem views — BL recupera o “hold the market”

Quando a lista de views está vazia, μ_BL = Π exatamente. E como Π é construído justamente para fazer w_mkt ser ótimo, a tangência max-Sharpe sob μ_BL é aproximadamente w_mkt (com pequenas diferenças devido a Σ_BL = (1+τ)Σ). Isso é o ponto. BL sem views é a versão matemática do conselho “se você não tem opinião, fique com o índice” — Malkiel (1973), Bogle (1976), Fama (Nobel 2013).

Notas metodológicas detalhadas
  • Σ — Ledoit-Wolf (2004): covariância shrinked toward constant correlation, estimada nos últimos 1260 dias úteis. Mesmo Σ usado em /markowitz — coerência total entre tabs.
  • w_mkt — pesos IBOVdos constituintes que sobraram após a auto-redução por histórico curto, renormalizados para somar 1. Não é exatamente a carteira de mercado “true” (mercado completo inclui privadas, renda fixa, imobiliário, ouro), mas é o melhor proxy disponível para o universo brasileiro de ações.
  • Π — reversão CAPM: Π = δ Σ w_mkt. Sob o CAPM de Sharpe (1964, Nobel 1990), a tangência é a carteira de mercado — invertendo essa equação, Π é o μ que faz isso ser verdade. Não tem média histórica aqui — Π depende apenas de δ, Σ e w_mkt.
  • Ω — calibragem de incerteza das views: Ω é diagonal com Ω_kk = τ · P_k Σ P_kᵀ · (1−c)/c onde c ∈ (0,1] é a confiança da view. c = 0,5 é o canônico He-Litterman (1999) — Ω_kk = τ P_k Σ P_kᵀ. c → 1 ⇒ Ω → 0 ⇒ a view é tratada como igualdade dura. c → 0 ⇒ Ω → ∞ ⇒ a view é completamente ignorada. O método de Idzorek (2005) permite calibrar c a partir de uma confiança percentual explícita — equivalente conceitual ao que fazemos aqui.
  • μ_BL — forma fechada: μ_BL = [(τΣ)⁻¹ + Pᵀ Ω⁻¹ P]⁻¹ · [(τΣ)⁻¹ Π + Pᵀ Ω⁻¹ Q]. Não há iteração nem simulação — todo o cálculo é uma única inversão de matriz K×K (K = número de views) e uma N×N. O custo cresce com K (não com N de forma significativa).
  • Σ_BL = Σ + M, onde M = [(τΣ)⁻¹ + Pᵀ Ω⁻¹ P]⁻¹. Sem views, M = τΣ. Com views, M é menor na direção das views (a Bayes aprendeu) e maior nas direções perpendiculares.
  • μ̂ amostral exibido para comparação é o μ pós-pipeline do tab Markowitz: Jensen + ×252 + Jorion shrink + macro-anchor. Sem o macro-anchor, o gap entre μ̂ e Π seria ainda mais dramático (μ̂ raw alcança 60-100% a.a. para alguns tickers com janelas curtas).
  • Views absolutas vs relativas: esta página expõe apenas views absolutas (“ativo X renderá Y%”). A biblioteca lib/blacklitterman.ts suporta também views relativas (“A supera B por Z%”) — basta passar coeffs: [+1, -1] no objeto View. Adicionar UI para views relativas é uma extensão natural se houver interesse.