Primeiro, anlisamos os conceitos que serão aborados nesse trabalho. Em seguida, importamos nossa base de dados contendo os retornos do ativo (VALE3) e dos fatores de risco (Mercado, SMB, HML, WML). Nossa intenção é analisar 3 modelos de regressão bastante comuns na teoria de precificação de ativos: o CAPM (1964), o modelo de 3 fatores de Fama & French (1992) e o modelo de 4 fatores de Cahart (1997).
Ademais, é válido apresentar a origem dos dados: a série histórica de retornos da VALE3 foi retirada da plataforma Economática e os dados para os fatores de risco da Nefin. Os dados iniciam em 04/01/2010 e terminam em 05/01/2021.
O Capital Asset Pricing Model (CAPM), é um modelo monofator. Nele, o autor define que o retorno esperado de uma carteira diversificada é fruto da exposição ao fator beta de mercado, ou seja, retornos maiores são possíveis apenas com uma exposição maior ao risco de mercado. Segundo Berkin & Swedroe1, esse modelo é capaz explicar 66% das diferenças de retorno entre portfólios diversificados. Assim,
\[ R_i - R_f = \hat\alpha + \hat\beta_1 (R_m - R_f) + \epsilon_i \]
Em que,
\(\hat\alpha\) é o alfa de Jensen;
\(\hat\beta_1\) é uma medida de sensibilidade do ativo com o mercado;
\((R_m - R_f)\) é o prêmio de risco do mercado em relação à taxa livre de risco (Swap de 30 dias DI).
Fama & French expandiram o poder do modelo de Sharpe ao adicionarem os fatores size (tendência de empresas com baixo valor de mercado de outperformarem empresas com alto valor de mercado) e value (tendência de empresas com BtM alto outperformarem empresas com BtM baixo). Segundo Berkin & Swedroe, esse modelo é capaz explicar 90% das diferenças de retorno entre portfólios diversificados. Assim,
\[ R_i - R_f = \hat\alpha + \hat\beta_1(R_m - R_f) + \hat\beta_2(SMB) + \hat\beta_3(HML) \] Em que, os outros termos já foram explicados e,
SMB (Small Minus Big) é o prêmio do fator tamanho;
HML (High Minus Low) é o prêmio do fator valor.
Em 1997, Mark Carhart, no paper “On Persistence in Mutual Fund Performance”, adicionou ao modelo de três fatores de Fama & French o fator momentum, descoberto por Jegadeesh & Titman em 1993. Após essa adição, segundo Berkin & Swedroe, o modelo passou a ser capaz de explicar 95% das diferenças de retornos entre portifólios diversificados. Assim,
\[ R_i - R_f = \hat\alpha + \hat\beta_1(R_m - R_f) + \hat\beta_2(SMB) + \hat\beta_3(HML) + \hat\beta_4(WML) \] Em que, os outros termos foram explicados e,
WML (Winners Minus Losers) é o prêmio de risco do fator momento.
Tendo explicado os conceitos subjacentes à análise pretendida, iniciamos a resolução das tarefas. Entretanto, é válido lembrar que, como dito por Berkin & Swedroe, os modelos de precificação supracitados são capazes de explicar as diferenças de retornos entre portfólios diversificados. Como estaremos trabalhando com um regressando que não é um portfólio diversificado e sim um ativo único, temos de reconhecer as limitações do modelo nessa situação. Uma alternativa seria regredir o retorno de fundos de investimento2 contra os fatores de risco.
Tendo isso em mente, importamos nossa base de dados.
dados <- read_excel("Atividade 3.xlsx")
Além disso, para podermos utilizar o pacote PerformanceAnalytics, criamos outra variável contendo os retornos, mas agora como time series.
dado <- xts(dados[,2:9], dados$Data)
## Market HML SMB WML Risk_free
## 2010-01-04 0.021436099 3.450252e-03 -0.005440697 -0.006401938 0.0003289012
## 2010-01-05 0.001325278 4.966243e-03 -0.004109487 -0.006738381 0.0003296319
## 2010-01-06 0.005868470 4.730778e-03 0.014379350 0.006240680 0.0003289012
## 2010-01-07 -0.002947552 5.325752e-03 0.009837301 0.003671778 0.0003285358
## 2010-01-08 -0.001844245 -2.922956e-05 0.009612584 -0.002937499 0.0003285358
## 2010-01-11 0.001473806 1.233440e-02 0.010028080 0.005448685 0.0003292666
## VALE3 Size1 BM1
## 2010-01-04 0.040102663 1.490097e-02 0.0138250291
## 2010-01-05 0.009253547 5.378635e-05 -0.0033816309
## 2010-01-06 0.021088020 1.866400e-02 0.0105036264
## 2010-01-07 0.004190362 7.087667e-03 0.0008718180
## 2010-01-08 0.009836066 8.570855e-03 0.0044580046
## 2010-01-11 -0.002951594 1.041323e-02 0.0009114553
capm1 <- lm(I(VALE3 - Risk_free) ~ Market)
##
## Call:
## lm(formula = I(VALE3 - Risk_free) ~ Market)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.228209 -0.010489 -0.000388 0.010256 0.119028
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.0003088 0.0004082 0.757 0.449
## Market 1.1296982 0.0288118 39.210 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.0213 on 2721 degrees of freedom
## Multiple R-squared: 0.361, Adjusted R-squared: 0.3608
## F-statistic: 1537 on 1 and 2721 DF, p-value: < 2.2e-16
ffrench <- update(capm1, formula=.~.+ SMB + HML)
##
## Call:
## lm(formula = I(VALE3 - Risk_free) ~ Market + SMB + HML)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.230339 -0.010460 -0.000362 0.009916 0.133130
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.0002566 0.0003928 0.653 0.514
## Market 0.9987656 0.0290854 34.339 < 2e-16 ***
## SMB -0.4128445 0.0500822 -8.243 2.57e-16 ***
## HML 0.7874732 0.0544349 14.466 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.02049 on 2719 degrees of freedom
## Multiple R-squared: 0.4091, Adjusted R-squared: 0.4084
## F-statistic: 627.4 on 3 and 2719 DF, p-value: < 2.2e-16
ffcahart <- update(ffrench, formula = .~. + WML)
##
## Call:
## lm(formula = I(VALE3 - Risk_free) ~ Market + SMB + HML + WML)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.233016 -0.010495 -0.000181 0.009986 0.135808
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.0004050 0.0003924 1.032 0.302
## Market 1.0009575 0.0289731 34.548 < 2e-16 ***
## SMB -0.4310215 0.0500275 -8.616 < 2e-16 ***
## HML 0.7040690 0.0569609 12.361 < 2e-16 ***
## WML -0.2075237 0.0434521 -4.776 1.88e-06 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.02041 on 2718 degrees of freedom
## Multiple R-squared: 0.414, Adjusted R-squared: 0.4131
## F-statistic: 480 on 4 and 2718 DF, p-value: < 2.2e-16
Realizamos, agora, o teste F do modelo irrestrito ffcahart contra o modelo restrito ffrench e, em seguida, do modelo irrestrito ffrench contra o modelo restrito capm1. Pelo que foi analisado na introdução do presente trabalho, esperamos que, no primeiro teste, o modelo ffrench não seja válido e que, no segundo teste, o modelo capm1 não seja válido. Além disso, podemos esperar que a estatística F, que indica a superioridade explicativa de um modelo frente a outro, no primeiro caso seja menor que no segundo, dado a magnitude das variações de poder explicativo ditas por Berkin & Swedroe (90% para 95% e 66% para 90%). Após os resultados do teste F, voltaremos para verificar a validade dessas hipóteses.
anova(ffrench, ffcahart)
## Analysis of Variance Table
##
## Model 1: I(VALE3 - Risk_free) ~ Market + SMB + HML
## Model 2: I(VALE3 - Risk_free) ~ Market + SMB + HML + WML
## Res.Df RSS Df Sum of Sq F Pr(>F)
## 1 2719 1.1417
## 2 2718 1.1322 1 0.0095013 22.809 1.884e-06 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
anova(capm1, ffrench)
## Analysis of Variance Table
##
## Model 1: I(VALE3 - Risk_free) ~ Market
## Model 2: I(VALE3 - Risk_free) ~ Market + SMB + HML
## Res.Df RSS Df Sum of Sq F Pr(>F)
## 1 2721 1.2345
## 2 2719 1.1417 2 0.092821 110.53 < 2.2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Como esperado, temos que o modelo de Cahart é preferível ao modelo de Fama & French, enquanto o modelo de Fama & French é preferível ao CAPM. Assim, por transitividade, temos que, entre os modelos, o modelo de 4 fatores de Cahart é preferível. A preferência foi determinada da seguinte forma: se o valor-p do teste F fosse menor que 5%, rejeitariamos a validade do modelo restrito.
fiv_ffrench <- vif(ffrench)
## Market SMB HML
## 1.101128 1.141282 1.221283
Como o fator de infação da variância é baixo, não precisamos nos preocupar com problemas relacionados a multicolinearidade nesse caso.
Algo válido de notar é que o fator de inflação da variância nada mais é que \(\frac{1}{1-R^2}\) em que \(R^2\) é o R quadrado múltiplo de uma regressão de um determinado regressor (mercado, por exemplo) contra os demais regressores (HML e SMB, no caso). Isso pode ser comprovado através das seguintes etapas:
R2_Mercado_SMB.HML <- (fiv_ffrench[1] -1)/fiv_ffrench[1]
## Market
## 0.09184073
Mercado_SMB.HML <- summary(lm(Market ~ SMB + HML))
Mercado_SMB.HML
##
## Call:
## lm(formula = Market ~ SMB + HML)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.162952 -0.006367 0.000182 0.006737 0.134231
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 4.755e-05 2.589e-04 0.184 0.854
## SMB -2.705e-01 3.261e-02 -8.295 <2e-16 ***
## HML 5.570e-01 3.426e-02 16.257 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.01351 on 2720 degrees of freedom
## Multiple R-squared: 0.09184, Adjusted R-squared: 0.09117
## F-statistic: 137.5 on 2 and 2720 DF, p-value: < 2.2e-16
Como pode ser observado, o \(R^2\) múltiplo dessa regressão é idêntico ao valor encontrado através da VIF.
Além disso, algo mais interessante ainda de analisar é se existiria multicolinearidade se estivéssemos trabalhando com portfólios long only - como sabemos, os portfólios de fatores de risco são long and short. Ou seja, iremos regredir os retornos da Vale contra as pontas longas dos fatores (High e Small).
ffrench_long_only <- lm(I(VALE3 - Risk_free) ~ Market + BM1 + Size1 )
vif(ffrench_long_only)
## Market BM1 Size1
## 5.487078 7.491594 4.712682
Nesse caso, diferentemente da regressão com os portfólios L&S, há indícios fortes de multicolinearidade. Isso se deve ao fato de, agora, os fatores estarem beta loaded. Ou seja, estão mais sensíveis às variações do mercado (risco sistêmico).
resettest(capm1, power=c(2,3,4), type="regressor")
##
## RESET test
##
## data: capm1
## RESET = 8.4165, df1 = 3, df2 = 2718, p-value = 1.445e-05
resettest(ffrench, power=c(2,3,4), type="regressor")
##
## RESET test
##
## data: ffrench
## RESET = 6.9326, df1 = 9, df2 = 2710, p-value = 6.117e-10
resettest(ffcahart, power=c(2,3,4), type="regressor")
##
## RESET test
##
## data: ffcahart
## RESET = 5.0938, df1 = 12, df2 = 2706, p-value = 1.787e-08
Como podemos observar, a estatística F é bastante grande em todos os casos. Ou seja, os modelos restritos capm1, ffrench e ffcahart não são válidos. Assim, o analista econômico/financeiro teria motivos suficientes para investigar se não existe uma relação não linear entre as variáveis. Dessa forma,
ffcahart_potencias <- lm(I(VALE3 - Risk_free) ~ Market + I(Market^2) + I(Market^3) + I(Market^4) +
SMB + I(SMB^2) + I(SMB^3) + I(SMB^4) +
HML + I(HML^2) + I(HML^3) + I(HML^4) +
WML + I(WML^2) + I(WML^3) + I(WML^4))
##
## Call:
## lm(formula = I(VALE3 - Risk_free) ~ Market + I(Market^2) + I(Market^3) +
## I(Market^4) + SMB + I(SMB^2) + I(SMB^3) + I(SMB^4) + HML +
## I(HML^2) + I(HML^3) + I(HML^4) + WML + I(WML^2) + I(WML^3) +
## I(WML^4))
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.232896 -0.010261 -0.000331 0.009961 0.128760
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 5.642e-04 5.217e-04 1.081 0.279611
## Market 9.408e-01 3.507e-02 26.828 < 2e-16 ***
## I(Market^2) 1.048e+00 1.281e+00 0.818 0.413437
## I(Market^3) 2.993e+01 5.760e+00 5.196 2.19e-07 ***
## I(Market^4) 6.857e+01 7.761e+01 0.883 0.377069
## SMB -3.952e-01 6.308e-02 -6.265 4.33e-10 ***
## I(SMB^2) 1.063e+00 4.232e+00 0.251 0.801618
## I(SMB^3) -4.733e+01 9.836e+01 -0.481 0.630440
## I(SMB^4) -5.104e+02 1.760e+03 -0.290 0.771856
## HML 8.288e-01 6.639e-02 12.483 < 2e-16 ***
## I(HML^2) -9.723e+00 4.941e+00 -1.968 0.049210 *
## I(HML^3) -1.993e+02 8.773e+01 -2.271 0.023212 *
## I(HML^4) 1.047e+04 2.711e+03 3.860 0.000116 ***
## WML -1.630e-01 5.156e-02 -3.162 0.001585 **
## I(WML^2) -7.033e-01 2.966e+00 -0.237 0.812610
## I(WML^3) -5.514e+01 4.139e+01 -1.332 0.182914
## I(WML^4) -4.851e+02 7.321e+02 -0.663 0.507626
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.02023 on 2706 degrees of freedom
## Multiple R-squared: 0.4269, Adjusted R-squared: 0.4235
## F-statistic: 126 on 16 and 2706 DF, p-value: < 2.2e-16
Eliminando as potências não estatisticamente significativas,
ffcahart_potencias_fitted <- lm(I(VALE3 - Risk_free) ~ Market + I(Market^3) +
SMB +
HML + I(HML^4) +
WML)
##
## Call:
## lm(formula = I(VALE3 - Risk_free) ~ Market + I(Market^3) + SMB +
## HML + I(HML^4) + WML)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.233640 -0.010393 -0.000169 0.010014 0.134059
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 2.557e-04 3.925e-04 0.652 0.515
## Market 9.377e-01 3.453e-02 27.154 < 2e-16 ***
## I(Market^3) 2.246e+01 4.980e+00 4.510 6.76e-06 ***
## SMB -4.499e-01 5.064e-02 -8.885 < 2e-16 ***
## HML 7.566e-01 5.792e-02 13.062 < 2e-16 ***
## I(HML^4) 7.567e+03 1.521e+03 4.975 6.93e-07 ***
## WML -2.008e-01 4.422e-02 -4.541 5.85e-06 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.02028 on 2716 degrees of freedom
## Multiple R-squared: 0.4216, Adjusted R-squared: 0.4203
## F-statistic: 329.9 on 6 and 2716 DF, p-value: < 2.2e-16
Dessa forma todos os coeficientes são estatiscamente significativos. Vale afirmar que “eliminar as potências não estatisticamente significativas” pode ser bastante problemático, dado que podemos estar incorrendo no erro obrigar o modelo a se ajustar aos nossos dados, o que é uma prática condenável.
chow_capm1 <- Fstats(I(VALE3 - Risk_free) ~ Market, from = 0.1, to = 0.9)
##
## supF test
##
## data: chow_capm1
## sup.F = 59.811, p-value = 4.544e-12
chow_ffrench <- Fstats(I(VALE3 - Risk_free) ~ Market + SMB + HML, from = 0.1, to = 0.9)
##
## supF test
##
## data: chow_ffrench
## sup.F = 49.543, p-value = 1.533e-08
chow_ffcahart <- Fstats(I(VALE3 - Risk_free) ~ Market + SMB + HML + WML, from = 0.1, to = 0.9)
##
## supF test
##
## data: chow_ffcahart
## sup.F = 56.587, p-value = 1.126e-09
Fica visível pelos gráficos que temos um problema de não estabilidade dos parâmetros. Ou seja, para diferentes partições da amostra, temos valores estatisticamente diferentes para as estimativas dos parâmteros.
O modelo mais recomendado para tomada de decisões, nesse caso, é o de 4 fatores de Cahart. Uma análise mais aprofundada adicionaria o modelo de 5 fatores de Fama & French (2015), o modelo de 6 fatores de Fama & French (2017) e o q-factor model entre as possibilidades.
Pela análise acima, o único ajuste que o analista deveria fazer envolve melhorar a estabilidade dos parâmetros. Segundo Oliveira & Chunha (2017)3, “[…]quebras estruturais são relevantes na maioria dos modelos para grande parte dos setores da economia.” Visando aumentar a robustez estatística do beta, os autores recomendam “a inclusão de variáveis binárias que capturem desvios significativos”. Ainda segundo os autores, “a incorporação desta informação acarreta em estimativas mais significativas, trazendo uma melhoria para esta medida de risco.”
Assim, nossa conclusão final é que o modelo de 4 fatores de Cahart deveria ser utilizado para tomada de decisões (seguido pelo modelo de 3 fatores de Fama & French) e que variáveis dummy deveriam ser introduzidas para lidar com o problema de não estabilidade dos parâmetros.
Andrew L. Berkin, L. E. S. Your Complete Guide to Factor-Based Investing Buckingham, 2016↩
Os dados históricos para as cotas de fundos brasileiros podem ser encontrados, gratuitamente, no site infofundos.com.↩
“Estimando Betas de Mercado com Quebras Estruturais”; Rev. Bras. Finanças (Online), Rio de Janeiro, Vol. 15, No. 2, June 2017, pp. 251-286 ISSN 1679-0731, ISSN online 1984-5146.↩