Uma aplicação de Ciência de Dados em fundos quantitativos: a estimação da matriz de covariância
Por Hully Rolemberg e Paulo Hermanny
Com a sistematização dos processos e o uso de métodos científicos, os fundos quant conseguem diversificar de forma mais eficiente suas carteiras. Em função disso, o universo de investimentos disponível acaba sendo bem maior que o de fundos tradicionais, tornando a construção do portfólio um processo não trivial. Nos últimos anos, com a maior disponibilidade de dados e o avanço de campos como Machine Learning e Ciência de Dados, o uso de técnicas quantitativas de investimento tem crescido substancialmente entre os agentes do mercado.
Nesse contexto inserem-se os fundos quantitativos. Caracterizados pelo uso de algoritmos de negociação e estratégias sistemáticas, os fundos quantitativos processam diariamente uma enorme quantidade de dados que são usados como insumos de modelos matemáticos e estatísticos para determinar a composição do portfólio.
Ao contrário do que prevê o senso comum, a automatização de processos utilizando “robôs” é apenas uma das partes relevantes de um fundo quantitativo. Coletar, filtrar, armazenar, modelar e testar os dados são problemas ainda mais complexos enfrentados por esse tipo de negócio. Além disso, a ideia de que num fundo quantitativo prevalece o aprendizado de máquina não supervisionado e o uso de dados alternativos também é equivocada. Na verdade, boa parte dos modelos é supervisionada, baseada em relações teóricas, e os dados utilizados são em sua maioria dados públicos, como preço, volume, fluxo de ordens e balanço, por exemplo.
Todos os dias, milhares (ou milhões, dependendo da frequência) de novos dados são gerados no mercado e precisam ser coletados, armazenados e processados para serem utilizados nos modelos. Para ter uma dimensão do volume de dados processados num fundo quant, pense no seguinte: atualmente, existem quase 500 empresas listadas na B3, cada uma com diferentes variações de ativos (ações ON e PN, units, BDRs e derivativos), isso sem contar os diversos índices de mercado cotados em bolsa, os vários vencimentos de contratos futuros, entre muitos outros ativos…
O caminho dos dados até se transformarem em ordens de negociação passa por 3 etapas principais: Arquitetura, Processamento e Análise. Inicialmente, na etapa de Arquitetura, os dados são coletados, filtrados e armazenados para serem utilizados como insumos nos algoritmos. Nesta etapa, é necessário garantir que os números estão (i) refletindo corretamente a informação relevante e (ii) sendo armazenados de maneira eficiente. Na etapa de Processamento, os algoritmos buscam padrões nos dados que possam ser resumidos e traduzidos na forma de um sinal. Os dados processados, por sua vez, são usados como insumos de modelos matemáticos, estatísticos e econométricos na etapa de Análise. Só depois disso, os resultados se transformam em ordens de negociação: quando e quanto comprar ou vender de cada ativo.
O uso de algoritmos nos permite escalar de forma substancial o processamento de dados, isto é, conseguimos cobrir simultaneamente uma quantidade enorme de ativos em todo o mundo – algo praticamente impossível se fosse feito apenas por seres humanos. Além disso, por conta da automatização e sistematização dos processos, a Ciência de Dados sob o viés quantitativo é aplicada de uma forma um pouco diferente do convencional: menos descritiva (relatórios, gráficos e tabelas) e mais “inferível” (estimação e testes estatísticos).
A Matriz de Covariância
Um problema central em finanças é a construção do portfólio: nosso objetivo é obter o portfólio que minimiza o risco para um dado retorno esperado. Dito isso, considere o vetor dos retornos diários de 𝑛 ativos, {rt , t=1…T} o problema de otimização do portfólio é dado por
onde é g é um vetor 1xn com 1 em todas as suas entradas. A solução do sistema acima é dada por
Markowitz foi o primeiro a formalizar o problema de otimização de portfólio nos anos 50. É um belíssimo resultado teórico, que lhe rendeu o prêmio Nobel, mas de difícil implementação empírica. A maior dificuldade empírica é a matriz de covariância.
Para um dado retorno esperado, se a verdadeira matriz de covariância é conhecida e não singular a solução do problema é trivial. Todavia, a matriz de covariância é uma variável latente e que precisa, portanto, ser estimada. Logo, na prática, o problema de construção de portfólio é um problema de estimação da matriz de covariância empírica. A solução empírica do sistema acima é dada por
onde “H chapéu” é um estimador da verdadeira matriz de covariância.
No geral, a estimação da matriz de covariância possui bastante ruído e esse problema aumenta à medida que o universo de ativos cresce, chamamos esse problema de curse of dimensionality. Além disso, é um fato empírico que a matriz de covariância condicionada1 varia bastante ao longo do tempo, o que torna a tarefa de estimá-la ainda mais complexa.
Considere um universo de investimento com 2 ativos: A e B. Nesse caso, é necessário calcular três entradas distintas da matriz de covariância: a covariância entre A e B, a variância de A e a variância de B. Generalizando para n ativos, o número de entradas distintas a serem calculadas é igual a n(n+1)/2. É fácil ver que, à medida que n cresce, o número de parâmetros cresce exponencialmente, tornando o cálculo da matriz de covariância uma tarefa complexa.
Adicionalmente, erro da estimação de “H chapéu” cresce com sua dimensão. A rigor, os autovalores de “H chapéu” convergem para os de H quando n/T converge para zero, mas quanto mais correlacionado o portfólio, pior será o efeito do erro de estimação (qualquer que seja n/T) na solução do problema, chamamos isso de Markowitz’s curse. É um problema sério, porém comum em finanças.
O Markowitz’s curse ocorre quando a correlação entre os ativos se aproxima dos extremos (1 e -1) e, então, a estimação dos pesos dos ativos se torna instável, já que os valores do inverso da matriz de covariância explodem. Para ilustrar esse fato, considere a matriz de correlação C dos ativos A e B:
A matriz C pode ser diagonalizada como
onde
O determinante de C é dado por
Observe que o determinante alcança o seu máximo quando
ou seja, quando a correlação entre os ativos é igual a zero. Por outro lado, o determinante alcança seu mínimo quando
ou seja, no ponto em que os ativos são perfeitamente correlacionados, |ρ|=1 . O inverso da matriz de correlação C é dado por
É fácil ver que quanto mais ρ se afasta de zero, maior fica um autovalor em relação ao outro, fazendo com que |C| se aproxime de zero e os valores de C explodam – independentemente, da razão n/T. Ou seja, justamente quando os ativos são mais correlacionados – e quando a diversificação é mais necessária – a estimação dos pesos é instável.
Como, geralmente, nós estamos interessados em uma medida de associação entre os ativos ao longo do tempo e por um intervalo de tempo determinado, nosso objetivo final é estimar a matriz de covariância condicionada. Suponha novamente que {rt , t=1…T} seja vetor dos retornos diários de 𝑛 ativos, definido como rt = ut , onde é ut um vetor de erros nx1. A matriz de covariância condicional populacional Ht é dada por:
É consenso na literatura que a matriz de covariância condicionada dos retornos é bastante persistente e, por isso, bem modelada por especificações do tipo autorregressivas, isto é, aquelas que assumem que as covariâncias de hoje dependem dos das covariâncias passadas.
Levando isso em conta, a forma mais simples de aproximar a matriz de covariância condicionada verdadeira é calculando as covariâncias amostrais sobre uma janela móvel no tempo: 60, 180, 360 dias, por exemplo. A matriz de covariância amostral de t dias pode ser escrita como:
Observe que com 5 meses de retorno diários e 100 ativos temos n/T=1, e então a matriz de covariância amostral St de um portfólio razoavelmente correlacionado (ρ=0.5, por exemplo) tem autovalores bem diferentes da verdadeira matriz de covariância. Na prática, usar St como estimador da matriz de covariância geralmente leva a resultados fora da amostra piores do que dentro da amostra.
Usando resultados de Random Matrix Theory, é possível mostrar que o risco predito do portfólio de Markowitz (dentro da amostra) subestima o risco realizado do portfólio (fora da amostra) por um fator igual a 1-n/T. Ou seja, quanto mais próximo n de T maior será a subestimação do risco dentro da amostra. A matriz de covariância amostral, apesar de ser um estimador não viesado, é um estimador ingênuo e com resultados insatisfatórios. Nós conseguimos obter estimativas superiores usando modelos multivariados um pouco mais elaborados.
Os modelos do tipo GARCH, introduzidos por Bollerslev (1986), são comumente utilizados na sua forma univariada para modelar a volatilidade de retornos financeiros (i.e. variância condicional) e suas versões multivariadas, em particular o modelo DCC (Dynamic Conditional Correlations) proposto por Engle (2002), são bastante úteis para lidar com comovimentos de volatilidade e estimar a matriz de covariância dos ativos. Nesse caso, a matriz de covariância condicionada é dada por
onde Dt é uma matriz diagonal com GARCH univariados e Rt é a matriz de correlação dos resíduos. A vantagem do modelo DCC é que ele assume que as correlações variam no tempo sem perder a simplicidade na estimação. Alternativamente aos modelos da família GARCH, nós podemos usar a dinâmica intradiária dos retornos para estimar a covariância a partir de modelos que consideram “medidas realizadas”2 (inglês: realized measures) em suas especificações, como é feito no modelo VHAR-RV proposto por Cubadda, Guardabascio e Hecq (2015).
O modelo VHAR-RV é uma generalização multivariada do modelo HAR-RV, introduzido por Corsi (2009), que usa como regressores a Matriz de Covariância Realizada calculada em diferentes janelas de tempo. O cálculo das Covariâncias Realizadas considera os retornos quadráticos intradiários, por isso, acaba produzindo estimativas mais precisas da verdadeira matriz de covariância quando utilizado em uma especificação autorregressiva conforme o modelo abaixo:
onde d, w, e m denominam as frequências diária, semanal e mensal, respectivamente, ηt é um termo de erro, e “vech” significa half-vectorization.
Por fim, modelos de fatores também podem ser usados para aproximar a matriz de covariância dos ativos a partir de fatores de risco (CAPM, por exemplo) ou fatores estatísticos (“componentes principais”) – nesse caso, com mais flexibilidade e menos viés, porém com mais erro de estimação. Nesse tipo de abordagem, a matriz de covariância é decomposta em dois componentes: (i) a matriz de covariância dos fatores ponderados por uma matriz de pesos e (ii) uma matriz de covariância residual. Veja a equação a seguir:
A vantagem dessa metodologia é que, no geral, o número de fatores é menor que o número de ativos, então a estimação da matriz de covariância decomposta acaba sendo mais fácil do que a da matriz de covariância original. Todavia, isso tem um custo: os estimadores são mal especificados e viesados.
Independentemente do tipo de modelagem escolhida, à medida que incluímos mais ativos na carteira e mais defasagens na especificação do modelo, o número de variáveis cresce e temos que estimar uma matriz de covariância de alta dimensão (curse of dimensionality). Métodos de regressão convencionais, como Ordinary Least Squares (OLS), estão fadados ao overfitting e, consequentemente, a estimativas enganosas das relações de dependência entre os ativos.
Considere a o modelo de regressão linear simplificado abaixo e sua respectiva função perda de OLS:
O erro de previsão é dado por
Existe um trade-off entre viés e variância: para reduzir o erro de previsão nós tentamos diminuir o viés aumentando o número de regressores, mas isso acaba aumentando a variância das estimativas e, consequentemente, o erro de estimação fora da amostra. Ou seja, a abordagem tradicional não lida bem como o excesso de regressores e nós devemos, portanto, usar uma metodologia de que controle esse problema.
Além disso, no processo de construção portfólio, é necessário controlar relação entre quantidade de ativos, n, e tamanho da amostra, T. Observe que, em finanças, T é limitado: muitas empresas não têm mais de uma década de dados. Mesmo ativos com longo histórico como títulos do tesouro americano não têm muito mais de 50 anos de dados de qualidade.
No Brasil, o problema é ainda mais grave: 20 anos de dados é um luxo. Mas, nem sempre aumentar a frequência é desejável. Em geral, usamos dados diários ou semanais para o problema de construção de portfólio, pois queremos que a estimação leve em conta diversos ciclos de negócios e condições de mercado.
Um conceito bastante conhecido no campo da estatística e agora difundido entre os amantes de Data Science é ideia de shrinkage, introduzida pelo professor Charles Stein da Universidade de Stanford em 1956 e refinado por James e Stein (1961). Resumidamente, a técnica de shrinkage faz algum tipo de regularização no modelo de interesse para controlar problemas de superparametrização e diminuir o erro de estimação fora da amostra.
Dois métodos de shrinkage bastante conhecidos entre os cientistas de dados são as regressões de Ridge e LASSO (Least Absolute Shrinkage and Selection Operator). As duas técnicas são modificações da regressão linear convencional, mas com especificações mais robustas na presença de variáveis potencialmente correlacionadas, que é o que acontece quando temos muitos regressores.
A regressão de LASSO faz uma regularização do tipo L1 que além de reduzir o problema de overfitting também atua como um mecanismo de seleção, pois atribui coeficiente zero para os regressores menos relevantes. Por isso, essa técnica é especialmente útil para estimação da matriz de covariância. O modelo de regressão, nesse caso, é dado por:
Além das técnicas mais conhecidas, existem outras abordagens de shrinkage na literatura que também são bastante úteis no contexto e estimação da matriz de covariância. Um exemplo é o shrinkage dos extremos em direção ao centro que estima a matriz de covariância a partir de uma média ponderada entre dois estimadores, a matriz de covariância amostral e um estimador “estruturado” obtido a partir de um modelo de fatores.
Uma outra metodologia bastante popular entre os Cientistas de Dados e que também pode ser utilizada para contornar o problema de alta dimensão e instabilidade da matriz de covariância, é a ideia de Clusterização. Nesse caso, ao invés de estimar a matriz de covariância de n ativos, nós podemos clusterizá-los em k clusters, tal que k<n, e estimar a matriz de covariância dos clusters, reduzindo assim a dimensão e a correlação do portfólio e garantindo mais estabilidade à solução de Markowitz.
Neste artigo, nós te mostramos que uso de Data Science em fundos quantitativos vai muito além da identificação e visualização de padrões nos dados. Depois de coletados e armazenados, os dados são processados e então analisados. Nosso papel é garantir que os algoritmos recebam insumos representativos da informação de mercado, que o processamento seja feito de forma adequada, e que os modelos sejam robustos e produzam resultados estatisticamente significantes.
Um problema de Ciência de Dados particularmente importante em um fundo quant é a estimação da matriz de covariância, já que as decisões de alocação dependem fundamentalmente del. Todavia, essa certamente não é uma tarefa trivial. Quanto maior o número de ativos e quanto mais correlacionados eles forem, mais complexo é o cálculo. Com o uso de técnicas de estatística, econometria e álgebra linear, nós conseguimos implementar soluções bastante eficientes para contornar esse problema e construir um portfólio otimizado, diversificado e robusto.
Notas:
1: A matriz de covariância condicional leva em conta um conjunto de informação que varia ao longo do tempo e, portanto, suas estimativas variam ao longo do tempo. Já a matriz de covariância não condicional é calculada utilizando toda a informação disponível (veja o nosso artigo sobre Volatilidade para entender melhor esse conceito).
2: Não confunda “medidas realizadas” com a realização histórica de um dado estimador. Neste texto, chamamos uma determinada métrica de “realizada” quando ela for computada usando dados intradiários.
Entenda também sobre Modelos de Fatores para comparar fundos