WAIAF (ITA) 2019 · Machine Learning: Taxonomia. 35. Machine Learning: Feature Engineering: 14...
Transcript of WAIAF (ITA) 2019 · Machine Learning: Taxonomia. 35. Machine Learning: Feature Engineering: 14...
Machine learning applied to accounting variables yields the risk-return metrics of
private company portfolios
WAIAF (ITA) 2019
16/05/2019
www.slq.com.br
Flavio Abdenur (SLQ)Elias Cavalcante (FEA-USP)Rodrigo de Losso (FEA-USP)
{Roteiro
2
• A Fronteira Eficiente e a Carteira Ótima
• O Caso de Empresas Abertas
• O Caso de Empresas Fechadas: Métodos Tradicionais
• O Caso de Empresas Fechadas: Machine Learning
• Resultados
• Possíveis Aplicações
{Roteiro
3
• A Fronteira Eficiente e a Carteira Ótima
• O Caso de Empresas Abertas
• O Caso de Empresas Fechadas: Métodos Tradicionais
• O Caso de Empresas Fechadas: Machine Learning
• Resultados
• Possíveis AplicaçõesTrabalho em conjunto com Elias Cavalcante (FEA-USP) e Rodrigo de Losso(FEA-USP)
{Machine Learning: Taxonomia
4
A Fronteira Eficiente e a Carteira Ótima
Figura por Elias Cavalcante
{Machine Learning: Taxonomia
5
A Fronteira Eficiente e a Carteira Ótima
Carteira Ótima
Figura por Elias Cavalcante
{Machine Learning: Taxonomia
6
O Caso de Empresas Abertas:Dada uma cesta CA = {A1, ..., An} de empresas abertas, como obter a carteira ótima?
{Machine Learning: Taxonomia
7
O Caso de Empresas Abertas:Dada uma cesta CA = {A1, ..., An} de empresas abertas, como obter a carteira ótima?
• Temos séries de preços (diários) publicamente disponíveis, logo obtemos
diretamente volatilidade, retorno (em excesso) e covariâncias
{Machine Learning: Taxonomia
8
O Caso de Empresas Abertas:Dada uma cesta CA = {A1, ..., An} de empresas abertas, como obter a carteira ótima?
• Temos séries de preços (diários) publicamente disponíveis, logo obtemos
diretamente volatilidade, retorno (em excesso) e covariâncias
• Teoria de Markowitz permite construção de fronteira eficiente e portanto da
carteira ótima lançando mão de retornos, volatilidades e covariâncias das ações
{Machine Learning: Taxonomia
9
O Caso de Empresas Abertas:Dada uma cesta CA = {A1, ..., An} de empresas abertas, como obter a carteira ótima?
• Temos séries de preços (diários) publicamente disponíveis, logo obtemos
diretamente volatilidade, retorno (em excesso) e covariâncias
• Teoria de Markowitz permite construção de fronteira eficiente e portanto da
carteira ótima lançando mão de retornos, volatilidades e covariâncias das ações
• Obs: “desempenho passado não garante desempenho futuro”
{Machine Learning: Taxonomia
10
O Caso de Empresas Abertas:Dada uma cesta CA = {A1, ..., An} de empresas abertas, como obter a carteira ótima?
• Temos séries de preços (diários) publicamente disponíveis, logo obtemos
diretamente volatilidade, retorno (em excesso) e covariâncias
• Teoria de Markowitz permite construção de fronteira eficiente e portanto da
carteira ótima lançando mão de retornos, volatilidades e covariâncias das ações
• Obs: “desempenho passado não garante desempenho futuro”... mas tudo bem
{Machine Learning: Taxonomia
11
O Caso de Empresas Fechadas:
Dada uma cesta CF = {F1, ..., Fn} de empresas fechadas, como obter a carteira
ótima?
{Machine Learning: Taxonomia
12
O Caso de Empresas Fechadas:
Dada uma cesta CF = {F1, ..., Fn} de empresas fechadas, como obter a carteira
ótima? – não há preços diários!
{Machine Learning: Taxonomia
13
O Caso de Empresas Fechadas:
Dada uma cesta CF = {F1, ..., Fn} de empresas fechadas, como obter a carteira
ótima? – não há preços diários!
Problema se reduz a: como obter retornos, vols, covs para gerar carteira ótima?
{Machine Learning: Taxonomia
14
O Caso de Empresas Fechadas:
Dada uma cesta CF = {F1, ..., Fn} de empresas fechadas, como obter a carteira
ótima? – não há preços diários!
Problema se reduz a: como obter retornos, vols, covs para gerar carteira ótima?
• Métodos “artesanais” de valuation geram estimativas de valor
{Machine Learning: Taxonomia
15
O Caso de Empresas Fechadas:
Dada uma cesta CF = {F1, ..., Fn} de empresas fechadas, como obter a carteira
ótima? – não há preços diários!
Problema se reduz a: como obter retornos, vols, covs para gerar carteira ótima?
• Métodos “artesanais” de valuation geram estimativas de valor, mas não séries
diárias
{Machine Learning: Taxonomia
16
O Caso de Empresas Fechadas:
Dada uma cesta CF = {F1, ..., Fn} de empresas fechadas, como obter a carteira
ótima? – não há preços diários!
Problema se reduz a: como obter retornos, vols, covs para gerar carteira ótima?
• Métodos “artesanais” de valuation geram estimativas de valor, mas não séries
diárias
• Escolha de peers / “empresas comparáveis” gera as estatísticas
{Machine Learning: Taxonomia
17
O Caso de Empresas Fechadas:
Dada uma cesta CF = {F1, ..., Fn} de empresas fechadas, como obter a carteira
ótima? – não há preços diários!
Problema se reduz a: como obter retornos, vols, covs para gerar carteira ótima?
• Métodos “artesanais” de valuation geram estimativas de valor, mas não séries
diárias
• Escolha de peers / “empresas comparáveis” gera as estatísticas, mas é muito
subjetiva
{Machine Learning: Taxonomia
18
O Caso de Empresas Fechadas:
Dada uma cesta CF = {F1, ..., Fn} de empresas fechadas, como obter a carteira
ótima? – não há preços diários!
Problema se reduz a: como obter retornos, vols, covs para gerar carteira ótima?
• Métodos “artesanais” de valuation geram estimativas de valor, mas não séries
diárias
• Escolha de peers / “empresas comparáveis” gera as estatísticas, mas é muito
subjetiva
• “Controle sintético” é elegante
{Machine Learning: Taxonomia
19
O Caso de Empresas Fechadas:
Dada uma cesta CF = {F1, ..., Fn} de empresas fechadas, como obter a carteira
ótima? – não há preços diários!
Problema se reduz a: como obter retornos, vols, covs para gerar carteira ótima?
• Métodos “artesanais” de valuation geram estimativas de valor, mas não séries
diárias
• Escolha de peers / “empresas comparáveis” gera as estatísticas, mas é muito
subjetiva
• “Controle sintético” é elegante, mas manipulável
{Machine Learning: Taxonomia
20
O Caso de Empresas Fechadas:
Dada uma cesta CF = {F1, ..., Fn} de empresas fechadas, como obter a carteira
ótima? – não há preços diários!
Problema se reduz a: como obter retornos, vols, covs para gerar carteira ótima?
• Métodos “artesanais” de valuation geram estimativas de valor, mas não séries
diárias
• Escolha de peers / “empresas comparáveis” gera as estatísticas, mas é muito
subjetiva
• “Controle sintético” é elegante, mas manipulável (vide Ferman-Cristine-Possebom
2018)
{Machine Learning: Taxonomia
21
Machine Learning:
Abordagem via ML, usando companhias abertas como “proxies” de fechadas:
{Machine Learning: Taxonomia
22
Machine Learning:
Abordagem via ML, usando companhias abertas como “proxies” de fechadas:
• Base de ≈ 1000 empresas abertas de diversos setores, cerca de 77% nos EUA e
23% no BR
{Machine Learning: Taxonomia
23
Machine Learning:
Abordagem via ML, usando companhias abertas como “proxies” de fechadas:
• Base de ≈ 1000 empresas abertas de diversos setores, cerca de 77% nos EUA e
23% no BR (obs: small- e large-caps foram purgadas)
{Machine Learning: Taxonomia
24
Machine Learning:
Abordagem via ML, usando companhias abertas como “proxies” de fechadas:
• Base de ≈ 1000 empresas abertas de diversos setores, cerca de 77% nos EUA e
23% no BR (obs: small- e large-caps foram purgadas)
• Séries trimestrais de ≈ 55 características e variáveis contábeis de cada empresa
entre 2005 e 2016, via Economática
{Machine Learning: Taxonomia
25
Machine Learning:
Abordagem via ML, usando companhias abertas como “proxies” de fechadas:
• Base de ≈ 1000 empresas abertas de diversos setores, cerca de 77% nos EUA e
23% no BR (obs: small- e large-caps foram purgadas)
• Séries trimestrais de ≈ 55 características e variáveis contábeis de cada empresa
entre 2005 e 2016, via Economática
• Preços (e portanto vols, rets e corrs) e juros, via Bloomberg / Nefin
{Machine Learning: Taxonomia
26
Variáveis incluem:• País• Setor• EBIDTA• Alavancagem financeira• ROI• etc etc
{Machine Learning: Taxonomia
27
Machine Learning:
Abordagem via ML, usando companhias abertas como “proxies” de fechadas:
• Para cada uma das variáveis v ∈ {ret, vol, corr}, meta é obter função
fv({variáveis contábeis}) ℝ ☃
{Machine Learning: Taxonomia
28
Machine Learning:
Abordagem via ML, usando companhias abertas como “proxies” de fechadas:
• Para cada uma das variáveis v ∈ {ret, vol, corr}, meta é obter função
fv({variáveis contábeis}) ℝ ☃
Train / test split e tuning:
• Split 70% train / 30% test, balanceado por classes (país e setor)
• Tuning via 5-fold CV (no training set)
{Machine Learning: Taxonomia
29
Machine Learning:
Feature Engineering:
14 transformações (e.g., desvio padrão, taxa de crescimento, etc) foram aplicadas a
cada uma das variáveis:
{Machine Learning: Taxonomia
30
Machine Learning:
Feature Engineering:
14 transformações (e.g., desvio padrão, taxa de crescimento, etc) foram aplicadas a
cada uma das variáveis:
• Por um lado, isso “achatou” as séries em 1 observação por empresa
{Machine Learning: Taxonomia
31
Machine Learning:
Feature Engineering:
14 transformações (e.g., desvio padrão, taxa de crescimento, etc) foram aplicadas a
cada uma das variáveis:
• Por um lado, isso “achatou” as séries em 1 observação por empresa
• Por outro, gerou algo da ordem de 14 x 50 = 700 features...
{Machine Learning: Taxonomia
32
Machine Learning:
Feature Engineering:
14 transformações (e.g., desvio padrão, taxa de crescimento, etc) foram aplicadas a
cada uma das variáveis:
• Por um lado, isso “achatou” as séries em 1 observação por empresa
• Por outro, gerou algo da ordem de 14 x 50 = 700 features...
o que traz a necessidade de:
{Machine Learning: Taxonomia
33
Machine Learning:
Feature Engineering:
14 transformações (e.g., desvio padrão, taxa de crescimento, etc) foram aplicadas a
cada uma das variáveis:
• Por um lado, isso “achatou” as séries em 1 observação por empresa
• Por outro, gerou algo da ordem de 14 x 50 = 700 features...
o que traz a necessidade de:
Feature Selection:
{Machine Learning: Taxonomia
34
Machine Learning:
Feature Engineering:
14 transformações (e.g., desvio padrão, taxa de crescimento, etc) foram aplicadas a
cada uma das variáveis:
• Por um lado, isso “achatou” as séries em 1 observação por empresa
• Por outro, gerou algo da ordem de 14 x 50 = 700 features...
o que traz a necessidade de:
Feature Selection:
• LASSO para lineares e semi-lineares
{Machine Learning: Taxonomia
35
Machine Learning:
Feature Engineering:
14 transformações (e.g., desvio padrão, taxa de crescimento, etc) foram aplicadas a
cada uma das variáveis:
• Por um lado, isso “achatou” as séries em 1 observação por empresa
• Por outro, gerou algo da ordem de 14 x 50 = 700 features...
o que traz a necessidade de:
Feature Selection:
• LASSO para lineares e semi-lineares
• Boruta para baseados-em-árvores (e.g, random forest e GBM)
{Machine Learning: Taxonomia
36
Machine Learning:
Modelos testados:
• SVMs, LASSO, Ridge, elastic net (= LASSO + Ridge), RF, GBM
{Machine Learning: Taxonomia
37
Machine Learning:
Modelos testados:
• SVMs, LASSO, Ridge, elastic net (= LASSO + Ridge), RF, GBM
• No final, ensembling (nos folds)
{Machine Learning: Taxonomia
38
Machine Learning:
Modelos testados:
• SVMs, LASSO, Ridge, elastic net (= LASSO + Ridge), RF, GBM
• No final, ensembling (nos folds)
• Usamos OLS como benchmark
{Machine Learning: Taxonomia
39
Machine Learning:
Modelos testados:
• SVMs, LASSO, Ridge, elastic net (= LASSO + Ridge), RF, GBM
• No final, ensembling (nos folds)
• Usamos OLS como benchmark
Obs:
• Hipótese implícita: há comportamento semelhante de empresas abertas e
fechadas
{Machine Learning: Taxonomia
40
Machine Learning:
Modelos testados:
• SVMs, LASSO, Ridge, elastic net (= LASSO + Ridge), RF, GBM
• No final, ensembling (nos folds)
• Usamos OLS como benchmark
Obs:
• Hipótese implícita: há comportamento semelhante de empresas abertas e
fechadas
• Não é forecasting; está mais para backcasting
{Machine Learning: Taxonomia
41
Machine Learning:
Modelos testados:
• SVMs, LASSO, Ridge, elastic net (= LASSO + Ridge), RF, GBM
• No final, ensembling (nos folds)
• Usamos OLS como benchmark
Obs:
• Hipótese implícita: há comportamento semelhante de empresas abertas e
fechadas
• Não é forecasting; está mais para backcasting
• Moralmente, combina “empresas comparáveis” com “controle sintético”
{Machine Learning: Taxonomia
42
Resultados
• Vencedor foi RF (random forest)
{Machine Learning: Taxonomia
43
Resultados
• Vencedor foi RF (random forest)
(A rigor foi ensemble de RF com GBM, mas pouco incremento de desempenho e
muito aumento de custo computacional...)
{Machine Learning: Taxonomia
44
Resultados
• Vencedor foi RF (random forest)
(A rigor foi ensemble de RF com GBM, mas pouco incremento de desempenho e
muito aumento de custo computacional...)
• RF (resp., OLS) teve seguintes R2s:
- vol:
- ret:
- corr:
{Machine Learning: Taxonomia
45
Resultados
• Vencedor foi RF (random forest)
(A rigor foi ensemble de RF com GBM, mas pouco incremento de desempenho e
muito aumento de custo computacional...)
• RF (resp., OLS) teve seguintes R2s:
- vol: 50%
- ret:
- corr:
{Machine Learning: Taxonomia
46
Resultados
• Vencedor foi RF (random forest)
(A rigor foi ensemble de RF com GBM, mas pouco incremento de desempenho e
muito aumento de custo computacional...)
• RF (resp., OLS) teve seguintes R2s:
- vol: 50% (15%)
- ret:
- corr:
{Machine Learning: Taxonomia
47
Resultados
• Vencedor foi RF (random forest)
(A rigor foi ensemble de RF com GBM, mas pouco incremento de desempenho e
muito aumento de custo computacional...)
• RF (resp., OLS) teve seguintes R2s:
- vol: 50% (15%)
- ret: 40%
- corr:
{Machine Learning: Taxonomia
48
Resultados
• Vencedor foi RF (random forest)
(A rigor foi ensemble de RF com GBM, mas pouco incremento de desempenho e
muito aumento de custo computacional...)
• RF (resp., OLS) teve seguintes R2s:
- vol: 50% (15%)
- ret: 40% (5%)
- corr:
{Machine Learning: Taxonomia
49
Resultados
• Vencedor foi RF (random forest)
(A rigor foi ensemble de RF com GBM, mas pouco incremento de desempenho e
muito aumento de custo computacional...)
• RF (resp., OLS) teve seguintes R2s:
- vol: 50% (15%)
- ret: 40% (5%)
- corr: 45%
{Machine Learning: Taxonomia
50
Resultados
• Vencedor foi RF (random forest)
(A rigor foi ensemble de RF com GBM, mas pouco incremento de desempenho e
muito aumento de custo computacional...)
• RF (resp., OLS) teve seguintes R2s:
- vol: 50% (15%)
- ret: 40% (5%)
- corr: 45% (5%)
{Machine Learning: Taxonomia
51
Resultados
{Machine Learning: Taxonomia
52
Machine Learning:
Importância das features varia muito com o modelo:
{Machine Learning: Taxonomia
53
Aplicações
{Machine Learning: Taxonomia
54
Aplicações
- Auxílio de tomada de decisões (de venda e aquisição de empresas fechadas)
{Machine Learning: Taxonomia
55
Aplicações
- Auxílio de tomada de decisões (de venda e aquisição de empresas fechadas)
- Forecasting (ao invés de backcasting)?
{Machine Learning: Taxonomia
56
Aplicações
- Auxílio de tomada de decisões (de venda e aquisição de empresas fechadas)
- Forecasting (ao invés de backcasting)?
- Private equity?
{Machine Learning: Taxonomia
57
Aplicações
- Auxílio de tomada de decisões (de venda e aquisição de empresas fechadas)
- Forecasting (ao invés de backcasting)?
- Private equity? (neste caso variável-alvo natural seria valuation)