如何使用ggplot2在R中绘制自相关图和偏自相关图?

如何使用ggplot2在R中绘制自相关图和偏自相关图?,r,ggplot2,time-series,R,Ggplot2,Time Series,如何使用ggplot2在R中绘制时间序列的ACF图和PACF图?有很多方法可以做到这一点,如果您花几分钟时间在谷歌上搜索或搜索此网站,您可以找到它们 一种方法是从forecast包中选择ggAcf和ggPacf。它们创建ggplot2对象,然后可以使用ggplot语法和参数进行自定义 series <- rnorm(300) plot <- ggAcf(series) series除了forecast::ggAcf功能外,使用ggplot自己也可以快速完成。唯一令人讨厌的是acf没

如何使用ggplot2在R中绘制时间序列的ACF图和PACF图?

有很多方法可以做到这一点,如果您花几分钟时间在谷歌上搜索或搜索此网站,您可以找到它们

一种方法是从
forecast
包中选择
ggAcf
ggPacf
。它们创建
ggplot2
对象,然后可以使用ggplot语法和参数进行自定义

series <- rnorm(300)
plot <- ggAcf(series)

series除了
forecast::ggAcf
功能外,使用ggplot自己也可以快速完成。唯一令人讨厌的是
acf
没有返回置信区间的界限,因此您必须自己计算它们

使用ggplot绘制ACF,无需其他包
#使用ggplot绘制acf

ggacf你试过了吗?谢谢。实际上,这些功能在早期版本的forecast包中并不存在。
# plot acf with ggplot
ggacf <- function(series) {
  significance_level <- qnorm((1 + 0.95)/2)/sqrt(sum(!is.na(series)))  
  a<-acf(series, plot=F)
  a.2<-with(a, data.frame(lag, acf))
  g<- ggplot(a.2[-1,], aes(x=lag,y=acf)) + 
          geom_bar(stat = "identity", position = "identity") + xlab('Lag') + ylab('ACF') +
          geom_hline(yintercept=c(significance_level,-significance_level), lty=3);

  # fix scale for integer lags
  if (all(a.2$lag%%1 == 0)) {
    g<- g + scale_x_discrete(limits = seq(1, max(a.2$lag)));
  }
  return(g);
}

#example: plot correlogram of an AR(1) process
require('stats');
ggacf(arima.sim(model=list(ar=0.9), n=300));