Introdução ao Cross-Validation
Mariana Boreli
1
Previsão
Considere o seguinte modelo populacional:
1
y i “ x i β ` i .
(1)
De modo geral temos 2 tipos de problemas: (i) inferência; e, (ii) previsão. Em
econometria I, discutimos o problema de inferência, ou seja, estimamos os coeficientes do modelo (β) e depois verificamos se são estatisticamente significantes.
Mas, algumas vezes não estamos interessados na estimativa dos coeficientes, mas
sim no valor predito da nossa variável dependente yˆi . Nesse caso, temos um problema de previsão. Previsões aparecem de diversas formas como no sistema de
recomendação da Netflix, previsão de preços de imóveis e de fraudes. Além
disso, podemos aplicar essa metodologia em cross-sections e séries de tempo.
1.1
Cross Section
Em Econometria I, utilizamos apenas cross-sections, ou seja, bases de dados
com observações de um único período de tempo e as variáveis são indexadas por
determinada unidade (por exemplo indivíduos, firmas, escolas,etc.).
Quando temos uma cross-section o problema de previsão aparece da seguinte
forma. Denote por i o ith indivíduo na nossa base de dados e assuma que o
modelo populacional é dado pela equação (1). Além disso, não observamos y
para o indivíduo j, apenas suas características xj são observadas. Então, vamos
utilizar o modelo estimado e o essas caraterísticas prever o valor da variável
dependente deste indivíduo, yˆj .
1.2
Séries de Tempo
Considere o seguinte modelo populacional:
yt “ µ `
p
ÿ
φi yt´i `
i“1
q
ÿ
θi t´k ` t .
(2)
i“1
Quando dizemos que estamos interessados em fazer uma previsão no contexto
de séries temporais quer dizer que vamos usar todas as informações que temos
disponíveis até determinado período t para fazer alguma previsão para algum
período futuro t ` h, h P Z ` , h ą t.
1
Treinamento e Teste
No problema de previsão queremos prever alguma coisa que ainda não observamos. Então, como podemos saber se as nossas previsões são boas? Para isso
podemos verificar a magnitude do erro de previsão. Mas, não é possível saber o
erro de previsão de uma variável que não é observada. Então, vamos “simular” a
performance do nosso modelo estatístico em uma parte da nossa base de dados.
Assim, vamos dividir a base de dados em duas partes: (i) treinamento, (ii) teste.
Geralmente separa-se a base original de modo que 80-70% seja o treinamento
e 20-30% seja a base de teste. Na base de treino estimamos o modelo e na
base de teste comparamos as previsões feitas a partir do modelo estimado no
treinamento com o valor real. Com isso calculamos alguma medida de erro para
cada observação do teste para quantificar a performance do nosso modelo.
As métricas mais utilizadas quando a variável dependente é contínua são:
o erro quadrático médio (EQM) e o erro absoluto médio (EAM). O EQM é
a média da diferença ao quadrado entre o valor previsto e o observado, já o
EAM considera a média do módulo dessa diferença. Essas métricas podem ser
descritas da seguinte forma:
n
˘2
1 ÿ`
yi ´ yˆi .
(3)
EQM “
n i“1
n
EAM “
1 ÿ
|yi ´ yˆi |
n i“1
(4)
onde n é o número de observações na base de teste, yi é o valor real e yˆi é o
valor predito.
Cross-Validation (CV)
Apenas dividir os dados em treinamento e teste não é suficiente para garantir
que os resultados são generalizáveis. Por isso, utilizamos a validação cruzada.
Basicamente, esse método constrói a partir da base de treinamento original
múltiplas bases de treinamento e teste.
Os modelos são fitados nessas bases de treinamento e sua capacidade preditiva é verificada nas bases de teste. De modo que em cada base de teste os erros
de predição são computados e depois alguma medida de agregação é utilizada.
Assim, o modelo que teve o melhor desempenho em termos de previsão (menor
erro) é selecionado.
Cross section
Existem 2 tipos de CV: (i) Leave One Out Cross Validation (LOOCV), e (ii)
K-Fold Cross Validation (KFCV). No método LOOCV todas as observações da
base de treinamento são utilizadas como teste e usamos as outras m ´ 1 observações como treinamento. Assim, essa metodologia gera m erros de previsão e
podemos fazer EQM desses erros.
2
O KFCV segue o mesmo princípio do LOOCV. A diferença é que o KFCV
divide aleatoriamente a base de treinamento em K partes. Uma das partes é
utilizada como teste e as outras são usadas como treinamento. Assim, o modelo
é fitado nas K ´ 1 bases e previsões para a base de teste são geradas. Este
procedimento para K “ 10 está ilustrado na Figura 11
Figura 1: 10-fold cross-validation
Séries de tempo
Existe algum problema em replicar as metodologias descritas acima quando
temos uma série temporal? O grande problema de usar CV de cross-section
em séries temporais é que vamos quebrar a estrutura de dependência temporal
da série. Como isso é uma característica fundamental das séries temporais, o
método de CV precisa ser reformulado para manter essa estrutura.
O processo de CV para séries de tempo para h períodos a frente ocorre como
descrito abaixo. No exemplo abaixo, vamos utilizar como métrica o EQM.
1. A partir de uma amostra com T observações y1 , ..., yT , selecione um período de tempo k, k ă T . Todas as observações tais que t ď k serão
utilizados como treinamento. As observações tais que t ą k são o conjunto de teste.
2. Estime o modelo utilizando as observações y1 , ..., yk .
3. Com base nessa estimativa faça a previsão para yk`h . Denote essa previsão
por ŷk`h|k
4. Compute o erro de previsão ek “ yk`1 ´ ŷk`h|k .
1 Fonte: http://karlrosaen.com/ml/learning-log/2016-06-20/
3
5. Aumente os dados de treinamento incorporando o valor observado da última previsão, y1 , ..., yk , yk`1 . Novamente estime o mesmo modelo e faça
um nova previsão.
6. Repita 3-6 até fazer a última previsão possível. Assim, teremos o um vetor
de erros de previsão e “ tek , ..., eT ´h u.
7. Compute a média do erros de previsão.
Ambas figuras abaixo ilustram o processo de CV apresentado acima para
h “ 1 e h “ 2 respectivamente.2
Figura 2: Cross-validation com previsão para 1 período a frente
Figura 3: Cross-validation com previsão para 2 períodos a frente
2 https://robjhyndman.com/hyndsight/tscv/
4