2015-12-10 2 views
0

Я пытаюсь произвести acf участков, используя ggplot2. Мой код выглядит следующим образом:Ложки участка ACF с использованием ggplot2

library(ggplot2) 
x = lh 
conf.level = 0.95 
ciline = qnorm((1 - conf.level)/2)/sqrt(length(x)) 
bacf = acf(x, plot = FALSE) 
bacfdf = with(bacf, data.frame(lag, acf)) 
ggplot(data=bacfdf, mapping=aes(x=lag, y=acf)) + 
    geom_bar(stat="identity", position = "identity") + 
    ggtitle("Orders") 

С этим я могу произвести ggplot2acf участок автокорреляций с лагами, которые варьируются от нуля до 20.

Как я могу редактировать это иметь ggplot2 участок запаздывает от -10 до 10 вместо этого?

я в основном использовал код из этого источника, чтобы придумать мой код размещен выше: http://ask.programmershare.com/387_17805747/

+0

Зачем вам отрицательные запаздывания? Это автокорреляция серии с собой. Вы получаете только отрицательные запаздывания, когда выполняете кросс-корреляцию между двумя временными рядами. –

ответ

1

Autocorrelation function для лаг = 1 является calculated в

mx <- mean(x) 
sum((x[1:(N-1)] - mx)*(x[2:N] - mx))/sum((x-mx)^2) 

для лаг = -1 единственное, что будет изменен x[1:(N-1)] и x[2:N], если вы его ищите. Это симметричного, поэтому по сравнению с x[t]x[t-h] такого же, как x[t+h] с x[t], потому что идея состоит в том, чтобы сравнить т его значения с другим значения, далекие от ч шагов.

Смежные вопросы