Quero criar um código para plotagem do ACF e PACF a partir de dados de séries temporais. Assim como esse gráfico gerado no minitab (abaixo).
Eu tentei pesquisar a fórmula, mas ainda não a entendo bem. Você se importaria de me dizer a fórmula e como usá-la, por favor? Qual é a linha vermelha horizontal no gráfico ACF e PACF acima? Qual é a fórmula?
Obrigado,
correlation
data-visualization
autocorrelation
partial-correlation
Surya Dewangga
fonte
fonte
Respostas:
Autocorrelações
A correlação entre duas variáveisy1,y2 é definida como:
onde E é o operador de expectativa,μ1 e μ2 são as médias respectivamente para y1 e e são seus desvios padrão.y2 σ1,σ2
No contexto de uma única variável, ou seja, correlação automática , é a série original e é uma versão atrasada dela. Após a definição acima, autocorrelações amostra de ordem k = 0 , 1 , 2 , . . . pode ser obtido utilizando a seguinte expressão, com a série observada y t , t = 1 , 2 , . . . , n :y1 y2 k=0,1,2,... yt t=1,2,...,n
ondey¯ é a média da amostra dos dados.
Autocorrelações parciais
Autocorrelações parciais medem a dependência linear de uma variável após remover o efeito de outras variáveis que afetam as duas variáveis. Por exemplo, a autocorrelação parcial de ordem mede o efeito (dependência linear) deyt−2 em yt após remover o efeito de yt−1 em yt e yt−2 .
Cada autocorrelação parcial pode ser obtida como uma série de regressões da forma:
ondey~t é a série original menos a média da amostra, yt−y¯ . A estimativa de ϕ22 fornecerá o valor da autocorrelação parcial da ordem 2. Estendendo a regressão com k atrasos adicionais, a estimativa do último termo fornecerá a autocorrelação parcial da ordem k .
Uma maneira alternativa de calcular as autocorrelações parciais da amostra é resolver o seguinte sistema para cada ordemk :
ondeρ(⋅) são as autocorrelações da amostra. Esse mapeamento entre as autocorrelações da amostra e as autocorrelações parciais é conhecido como
recursão de Durbin-Levinson . Essa abordagem é relativamente fácil de implementar para ilustração. Por exemplo, no software R, podemos obter a autocorrelação parcial da ordem 5 da seguinte maneira:
Faixas de confiança
As faixas de confiança podem ser calculadas como o valor das autocorrelações da amostra±z1−α/2n√ , ondez1−α/2 é o quantil1−α/2 na distribuição gaussiana, por exemplo, 1,96 para faixas de confiança de 95%.
Às vezes, são usadas faixas de confiança que aumentam à medida que a ordem aumenta. Nesse caso, as bandas podem ser definidas como±z1−α/21n(1+2∑ki=1ρ(i)2)−−−−−−−−−−−−−−−−√ .
fonte
Embora o OP seja um pouco vago, ele pode ser mais direcionado a uma formulação de codificação no estilo "receita" do que a uma formulação de modelo de álgebra linear.
Exemplo:
Vamos inventar uma série temporal com um padrão senoidal cíclico sobreposto a uma linha de tendência e ruído, e traçar o ACF gerado por R. Eu peguei este exemplo em um post online de Christoph Scherber e apenas adicionei o ruído a ele:
Normalmente, teríamos que testar os dados quanto à estacionariedade (ou apenas olhar para o gráfico acima), mas sabemos que há uma tendência, então vamos pular esta parte e ir diretamente para a etapa de descendência:
Agora, estamos prontos para resolver essa série cronológica, primeiro gerando o ACF com a
acf()
função em R e comparando os resultados com o loop improvisado que montei:And finally plotting again side-by-side, R-generated and manual calculations:
That the idea is correct, beside probable computational issues, can be seen comparing
PACF
topacf(st.y, plot = F)
.code here.
fonte
Well, in the practise we found error (noise) which is represented byet the confidence bands help you to figure out if a level can be considerate as only noise (because about the 95% times will be into the bands).
fonte
Here is a python code to compute ACF:
fonte