Como você faz bootstrap com dados de séries temporais?

33

Recentemente, aprendi sobre o uso de técnicas de inicialização para calcular erros padrão e intervalos de confiança para estimadores. O que eu aprendi foi que, se os dados são IID, você pode tratar os dados da amostra como a população e fazer amostragens com substituição, o que permitirá obter várias simulações de uma estatística de teste.

No caso de séries temporais, você claramente não pode fazer isso porque é provável que exista correlação automática. Eu tenho uma série temporal e gostaria de calcular a média dos dados antes e depois de uma data fixa. Existe uma maneira correta de fazer isso usando uma versão modificada do bootstrapping?

statnub
fonte
16
Termo-chave de pesquisa: Bloquear inicialização.
cardeal

Respostas:

26

Como o @cardinal aponta, variações no 'bloco de inicialização' são uma abordagem natural. Aqui, dependendo do método, você seleciona trechos da série temporal, sobrepostos ou não, e de comprimento fixo ou aleatório, o que pode garantir a estacionariedade nas amostras ( Politis e Romano, 1991 ) e depois as une novamente para criar séries temporais reamostradas. em que você calcula sua estatística. Você também pode tentar criar modelos de dependências temporais, levando aos métodos de Markov, peneiras autoregressivas e outras. Mas o bootstrapping de bloco é provavelmente o mais fácil desses métodos para implementar.

Gonçalves e Politis (2011) é uma revisão muito curta com referências. Um tratamento de livro é Lahiri (2010) .

conjugateprior
fonte
@statnub Se isso estiver relacionado à sua pergunta semanal anterior sobre intervenção de vendas, observe que você inicializaria se não confiasse nas suposições do modelo que estava implantando lá. Usando um modelo de séries temporais justificável em primeiro lugar deve idealmente minimizar o risco de coisas que poderia indicar este tipo de bootstrapping ...
conjugateprior
6
Boa resposta. Deixe-me acrescentar que você pode usar tsbooto bootpacote em R para fazer isso.
MånsT
@ MånsT Nice. Eu não sabia sobre esse pacote.
conjugateprior
5

x1,···,xnx1,x2,···,xn . Uma série temporal é essencialmente uma amostra do tamanho 1 de um processo estocástico. A reamostragem de uma amostra é uma amostra original; portanto, não se aprende nada por reamostragem. Portanto, a reamostragem de uma série temporal requer novas idéias.

A reamostragem baseada em modelo é facilmente adotada para séries temporais. As reamostragens são obtidas simulando o modelo de série temporal. Por exemplo, se o modelo for ARIMA (p, d, q), as novas amostras de um modelo ARIMA (p, q) com MLEs (da série diferenciada) dos coeficientes médios auto-regressivos e móveis e a variação de ruído. As reamostragens são as seqüências de soma parcial do processo simulado ARIMA (p, q).

A reamostragem livre de modelo de séries temporais é realizada por reamostragem de bloco, também chamada de bootstrap de bloco, que pode ser implementada usando a função tsboot no pacote de inicialização do R. A idéia é dividir a série em blocos de comprimento aproximadamente igual de observações consecutivas, reamostrar o bloco com substituição e depois colar os blocos. Por exemplo, se a série temporal for de 200 e se usar 10 blocos de 20, os blocos serão as primeiras 20 observações, as próximas 20 e assim por diante. Uma possível nova amostra é o quarto bloco (observação 61 a 80), depois o último bloco (observação 181 a 200), depois o segundo bloco (observação 21 a 40), depois o quarto bloco novamente e assim por diante até que haja 10 blocos na nova amostra.

economia
fonte
1
Existem outras formas de métodos de inicialização de bloco, incluindo a sobreposição de bloco e a inicialização circular, descritas em detalhes no livro de Lahiri (2003) "Métodos de reamostragem para dados dependentes". Esses métodos são aplicáveis ​​a séries temporais estacionárias.
Michael R. Chernick