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.
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.
Σ̂ 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).
Adicione views absolutas sobre tickers individuais. “Espero que VALE3renda 18% a.a. com confiança 70%”. Sem views ⇒ μ_BL = Π (carteira de mercado é a ótima).
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 = Π
| ticker | peso IBOV | Π equilíbrio | μ̂ amostral | μ_BL posterior | μ̂ − Π | μ_BL − Π |
|---|---|---|---|---|---|---|
| VALE3 | 17,2% | +7,21% a.a. | +15,47% a.a. | +7,21% a.a. | +8,26% a.a. | 0,00% a.a. |
| PETR4 | 12,8% | +8,63% a.a. | +24,04% a.a. | +8,63% a.a. | +15,42% a.a. | 0,00% a.a. |
| ITUB4 | 12,7% | +8,16% a.a. | +18,12% a.a. | +8,16% a.a. | +9,96% a.a. | 0,00% a.a. |
| PETR3 | 7,4% | +8,86% a.a. | +24,53% a.a. | +8,86% a.a. | +15,67% a.a. | 0,00% a.a. |
| BBAS3 | 6,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.
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.
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.
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-Δ.
| ticker | peso IBOV | peso MV | peso BL | MV − IBOV | BL − IBOV |
|---|---|---|---|---|---|
| SBSP3 | 3,5% | 43,9% | 2,0% | +40,4pp | -1,5pp |
| VALE3 | 17,2% | 0,0% | 15,2% | -17,2pp | -2,0pp |
| PETR3 | 7,4% | 22,5% | 0,0% | +15,1pp | -7,4pp |
| ITUB4 | 12,7% | 0,0% | 0,0% | -12,7pp | -12,7pp |
| ITSA4 | 4,3% | 13,0% | 0,0% | +8,7pp | -4,3pp |
| PETR4 | 12,8% | 20,6% | 5,6% | +7,9pp | -7,2pp |
| BBAS3 | 6,7% | 0,0% | 0,0% | -6,7pp | -6,7pp |
| B3SA3 | 6,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 μ.
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).
- • Σ — 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.tssuporta também views relativas (“A supera B por Z%”) — basta passarcoeffs: [+1, -1]no objeto View. Adicionar UI para views relativas é uma extensão natural se houver interesse.