Existem muitos textos que sugerem através de evidências empíricas que o retorno de ações contém componentes que podem ser preditos.
Por exemplo, Keim e Stambaugh (1986) encontraram um modelo estatisticamente significante para prever o preço de ações usando um modelo de previsão com variáveis pré-determinadas.
Fama e French (1987) mostraram que um longo período de retenção de retornos é negativamente correlacionado serialmente, implicando assim que 25% a 40% da variação de um longo período de retornos é previsível com base nos retornos passados.
Esse post, no entanto, tem como objetivo principal apresentar o Teste de Razão de Variâncias proposto por Lo e MacKinlay (1988). Os autores indicam que o modelo de passeio aleatório (ou passeio do bebâdo) é, em geral, inconsistente (para os ativos estudados) com o comportamento estocástico dos retornos semanais, especialmente para as ações com menor capitalização (Small Caps).
Lo e MacKinlay (1988) alertam que estes resultados não implicam necessariamente que o mercado de ações é ineficiente ou que os preços das ações não são avaliações racionais dos seus valores "fundamentais". O teste proposto pelos autores pode ser interpretado como um teste para a rejeição de "algum" modelo econômico de formação eficiente de preços.
Teste de razão de variâncias.
A eficiência do mercado de ações tem sido debatida por pesquisadores e profissionais do mercado financeiro. Uma forma particular de eficiência do mercado de ações é a eficiência informacional.A eficiência informacional se baseia na premissa de que os preços dos ativos refletem as informações relevantes disponíveis instantaneamente aos investidores e ao público em geral. Como a chegada de informações é imprevisível, os preços dos ativos também se tornam imprevisíveis. A hipótese de que a chegada de informações fundamentais ao mercado é aleatória e, portanto, os movimentos dos preços dos ativos também serão aleatórios, é englobada pela teoria do passeio aleatório dos preços dos ativos.
De maneira simplista, a teoria do passeio aleatório indica que uma vez que a chegada de informações é imprevisível, o melhor preditor do preço de um ativo é seu valor atual. Esta ideia simples pode ser facilmente incorporada no modelo de passeio aleatório bem conhecido dos preços dos ativos, que pode ser expresso da seguinte forma: $P_{t}=P_{t-1}+\epsilon$.
$P_{t}$ é o preço atual do ativo em estudo, $P_{t-1}$ é o preço do período anterior, e $\epsilon$ é um termo de erro aleatório. Cada termo de erro aleatório representa a chegada de uma nova informação, o qual se assumido ser imprevisível deve ser independentes uns dos outros. Admitindo sobre a hipótese nula o termo de erro aleatório é independente e identicamente distribuído segundo uma distribuição normal, então a variância do termo de erro aleatório é linear no intervalo de tempo durante o qual os preços são observados. Simplesmente, a variância da variação de preços quinzenais deve ser o dobro da variação de preços semanais. Além do mais, a variância das alterações de preços mensais deve ser quatro vezes superior ao de alterações de preços semanais, e assim por diante.
A relação linear entre o intervalo de tempo observado para os preços do ativo de interesse e a sua variação é a essência da especificação do teste desenvolvido por Lo e MacKinlay (1988). Lo e MacKinlay (1988) desenvolveram distribuições limitantes para os estimadores de razão de variância, com e sem a existência de heterocedasticidade, e mostraram que os preços dos ativos não necessariamente seguem um passeio aleatório. Seus estimadores são definidos como se segue:
A equação (01) representa a média das alterações dos preços em T períodos de tempo:
Já a equação (02) representa um estimador de variância para as alterações dos preços no period de tempo especificado, isso é $t=1,\dots,T$:
Por fim, a equação (03) representa um estimador de variância para as mudanças q-temporais de preços:
e $m=q(T-q+1)(1-\frac{q}{T})$ é um ajuste executado no denominador da variância do estimador q-temporal para acomodar as observações que se sobrepõem, além de ajudar a aumentar a potência do teste de razão de variância.
Especificação do teste.
Assim, o teste da razão de variâncias é definido por:
Para acomodar a possível heterocedasticidade, utiliza-se a estatística do teste padronizado $z$ o qual é assintoticamente distribuído segundo uma normal padrão:
onde
e
Aplicação usando os dados da Bovespa
Utilizando o R, vamos calcular o teste de razão de variâncias de Lo e MacKinlay para as ações PETR4 em um período $q=1$ diário, isso é, com defasagem de um dia.
#Limpa o console rm(list=ls(all=TRUE)) #Habilita o pacote quantmod library(quantmod)
#Início do período de interesse start = as.Date("2011-01-01") #Fim do período de interesse end = as.Date("2011-12-31") #Obtêm os dados da PETR4 getSymbols("PETR4.SA", src="yahoo",from=start,to=end)
A seguir é necessário calcular os log-retornos de duas séries: a série original e a série defasada (nesse caso em um dia):
#Aplica o log-retorno nos preços ret <- as.matrix(c(rep(NA, 0), diff(log(Cl(PETR4.SA)), lag=1))) #Aplica o log-retorno nos preços (Defasagem diária) ret2 <- as.matrix(c(rep(NA, 0), diff(log(Cl(PETR4.SA)), lag=2)))
#Plota a série temporal dos preços de fechamento plot(ret, main="Petr4",type="l", +ylab="Log-return Close price. (Lag 1)",xlab="Time") plot(ret2,main="Petr4",type="l", +ylab="Log-return Close price. (Lag 2)",xlab="Time")Em seguida os parâmetros exigidos para o teste são calculados:
#Calcula muhat muhat <- mean(ret, na.rm=TRUE) nq <- nrow(ret)
#Parâmetros Sigma e Delta sigatop <- (ret - muhat)^2 sigatop1 <- c(NA, sigatop[-length(sigatop)]) deltop <- sigatop * sigatop1 delbot <- sigatop sigctop <- (ret2 - 2*muhat)^2
#Guarda os resultados dados <- data.frame(ret, sigatop, sigatop1, deltop, delbot, sigctop)Fazendo a soma, obtemos os valores desejados:
#Calcula a soma dos valores sigatop <- sum(sigatop, na.rm=TRUE) sigctop <- sum(sigctop, na.rm=TRUE) deltop <- sum(deltop, na.rm=TRUE) delbot <- sum(delbot, na.rm=TRUE)Em seguida o cálculo dos testes é realizado:
nq<-nrow(ret) q<-2 qm1<-q-1 theta<-0 j<-1 m <- q*(nq-q+1)*(1-q/nq) siga <- sigatop/(nq-1) sigc <- sigctop/m varrat2 <- sigc/siga delta <- nq*deltop/(delbot**2)
while(j <= qm1) { theta <- theta + ((2*(q-j)/q)**2)*delta j<-j+1 } z <- sqrt(nq)*(varrat2-1)/sqrt(theta) print(nq, cat("Número de retornos:")) print(varrat2, cat("Razão de variâncias para retronos com Lag=2:")) print(z, cat("Teste Robusto a Heterocedasticidade de Lo-MacKinlay:"))Após realizar a análise obtêm-se:
- Número de retornos:[1] 249
- Razão de variâncias para retronos com Lag=2:[1] 1.081269
- Teste Robusto a Heterocedasticidade de Lo-MacKinlay:[1] 1.052326
Boas, como devem ser escolhidas as lags para os testes de rácio de variância? Nos papers que li geralmente utiliza-se lags q = 2, 4, 8, 16. Isto no caso dos dados semanais faz sentido mas nos dados diários ou mensais já não faz. Existe alguma maneira para escolher estes lags ou deve-se usar o sandard q = 2, 4, 8, 16? (Na minha disserteção estou a pensar usar, para dados diários, q = 2, 5, 10, 20)
ResponderExcluirVocê pode usar todos esses lags, de fato, sobre a hipótese nula de eficiência de mercado, nenhum desses lags apresentará significância estatística para a hipótese alternativa.
ExcluirOlá Pedro, estou começando agora no R, e não entendi os significados dos resultados, pode me explicar melhor por favor!
ResponderExcluirParabéns pelo blog, tá show!
Olá, a ideia é testar se a variância aumenta proporcionalmente com o número de defasagens desejadas. Os resultados mostram que para o ativo estudado e período escolhido há evidências de adequamento a Hipótese de Passeio aleatório pois a variância para a soma de dois períodos é aproximadamente igual a variância para o retorno em um único período. Mais detalhes você pode encontrar em textos de finanças como o livro The Econometrics of Financial Markets escrito por Campbell, Lo e MacKinlay. Grande abraço.
ExcluirEste comentário foi removido pelo autor.
ResponderExcluirOlá Prof. Pedro, Boa tarde! Por gentileza, o senhor poderia me encaminhar os dados usados? Gostaria de realizar minha estimação e comparar com seus resultados, dessa forma poderei saber se estou estimando de forma correta. Desde já, muito obrigado.
ResponderExcluirSaulo Jardim.
A base utilizada consta na programação do texto do post... Usa-se o pacote quantmod e baixa-se os dados de interesse.
ExcluirOlá Prof. Pedro, Boa tarde! Por gentileza, o senhor poderia me encaminhar os dados usados? Gostaria de realizar minha estimação e comparar com seus resultados, dessa forma poderei saber se estou estimando de forma correta. Desde já, muito obrigado.
ResponderExcluirSaulo Jardim.
Olá Prof. Pedro, Boa tarde! Por gentileza, o senhor poderia me encaminhar os dados usados? Gostaria de realizar minha estimação e comparar com seus resultados, dessa forma poderei saber se estou estimando de forma correta. Desde já, muito obrigado.
ResponderExcluirSaulo Jardim.
Não conheço o Eviews mas pelo que você descreveu poderia ser uma maneira de testar a heteroscedasticidade. Agora, autocorrelação é outra coisa... Não poderia usar o teste de variâncias para testar autocorrelação.
ResponderExcluir