Agrupar ativos por como se movem juntos
Uma distância diz quão afastadas duas coisas estão. Para ativos, perto deve significar que se movem juntos, então transformamos uma correlação em distância: . Correlação perfeita dá distância , nenhuma correlação dá e movimento exatamente oposto dá . Ao contrário de , esta fórmula se comporta como uma distância de verdade, então pode ser dada às ferramentas de agrupamento. scipy.spatial.distance.pdist calcula todas as distâncias par a par de uma vez, e squareform converte entre uma tabela completa e a lista compacta que as funções de agrupamento esperam. Para achar os vizinhos mais próximos de um ponto entre muitos, scipy.spatial.cKDTree é muito mais rápido que comparar com cada ponto.
O agrupamento hierárquico começa com cada ativo sozinho e funde repetidamente os dois grupos mais próximos. Como medir a distância entre dois grupos é a regra de ligação. single usa o par mais próximo entre os grupos, complete o par mais distante e average a média de todas as distâncias cruzadas. hierarchy.linkage(distances, method) devolve todo o histórico de fusões, com a altura de cada uma. hierarchy.fcluster(Z, t, 'distance') corta então a árvore na altura para dar rótulos de grupo, ou com 'maxclust' em um número escolhido de grupos. Em finanças, os grupos viram um mapa de diversificação: ativos de um mesmo grupo carregam em grande parte o mesmo risco, então ter cinco deles não são cinco apostas.
- Transforme correlação em distância: vale para gêmeos e para opostos.
- A ligação é uma escolha: ligação simples, completa e média podem dar alturas de fusão diferentes para os mesmos dados.
- Os grupos mapeiam a diversificação: escolha entre grupos, pois ativos de um mesmo grupo compartilham a maior parte de seu risco.
Lab: o que é avaliado
- Da correlação à distância10 pts
- Da distância à correlação10 pts
- Uma altura de ligação média15 pts
- Uma altura de ligação simples10 pts
- Grupos após um corte10 pts
- O que cada rotina faz15 pts
- Grupos e diversificação30 pts