gpt4 book ai didi

r - 将置信区间添加到 ggplot2 中绘制的 ACF

转载 作者:行者123 更新时间:2023-12-05 04:11:25 29 4
gpt4 key购买 nike

我计划为模拟时间序列构建自定义的 ACFPACF

ts <- arima.sim(n=5300,list(order=c(2,0,1), ar=c(0.4,0.3), ma=-0.2))

下面是我通过 ggplot2 编写的代码:

library(gridExtra)    
theme_setting <- theme(
panel.background = element_blank(),
panel.grid.major.y = element_line(color="grey90", size=0.5),
panel.grid.major.x = element_blank(),
panel.border = element_rect(fill=NA, color="grey20"),
axis.text = element_text(family="Times"),
axis.title = element_text(family="Times"),
plot.title = element_text(size=10, hjust=0.5, family="Times"))

acf_ver_conf <- acf(ts, plot=FALSE)$acf %>%
as_tibble() %>% mutate(lags = 1:n()) %>%
ggplot(aes(x=lags, y = V1)) + scale_x_continuous(breaks=seq(0,41,4)) +
labs(y="Autocorrelations", x="Lag", title= "Time Series, ACF") +
geom_segment(aes(xend=lags, yend=0)) +geom_point() + theme_setting

pacf_ver_conf <- pacf(ts, main=NULL,plot=FALSE)$acf %>%
as_tibble() %>% mutate(lags = 1:n()) %>%
ggplot(aes(x=lags, y = V1)) +
geom_segment(aes(xend=lags, yend=0)) +geom_point() + theme_setting +
scale_x_continuous(breaks=seq(0,41,4))+
labs(y="Partial Autocorrelations", x="Lag", title= "Time Series, PACF")

grid.arrange(acf_ver_conf, pacf_ver_conf, ncol=2)

Example ACF and PACF plot

虽然这正是我想要的,但我不确定如何在 acf(ts)pacf(ts) 中生成置信区间:

ACF TS

所以,我的问题分为两部分:

  • 如何统计得出 R 中自相关函数和偏自相关的置信区间的上限和下限?
  • 您如何将其绘制到第一张图上?我在考虑 geom_ribbon 但如果有任何其他想法,我们将不胜感激!

最佳答案

这可能有效(置信限度的公式取自此处 https://stats.stackexchange.com/questions/211628/how-is-the-confidence-interval-calculated-for-the-acf-function ,可能需要一些调整):

ts.acf <- acf(ts, plot=TRUE)

enter image description here

alpha <- 0.95
conf.lims <- c(-1,1)*qnorm((1 + alpha)/2)/sqrt(ts.acf$n.used)

ts.acf$acf %>%
as_tibble() %>% mutate(lags = 1:n()) %>%
ggplot(aes(x=lags, y = V1)) + scale_x_continuous(breaks=seq(0,41,4)) +
geom_hline(yintercept=conf.lims, lty=2, col='blue') +
labs(y="Autocorrelations", x="Lag", title= "Time Series, ACF") +
geom_segment(aes(xend=lags, yend=0)) +geom_point() + theme_setting

enter image description here

ts.pacf <- pacf(ts, main=NULL,plot=TRUE)

enter image description here

alpha <- 0.95
conf.lims <- c(-1,1)*qnorm((1 + alpha)/2)/sqrt(ts.pacf$n.used)

ts.pacf$acf %>%
as_tibble() %>% mutate(lags = 1:n()) %>%
ggplot(aes(x=lags, y = V1)) +
geom_segment(aes(xend=lags, yend=0)) +geom_point() + theme_setting +
scale_x_continuous(breaks=seq(0,41,4))+
geom_hline(yintercept=conf.lims, lty=2, col='blue') +
labs(y="Partial Autocorrelations", x="Lag", title= "Time Series, PACF")

enter image description here

关于r - 将置信区间添加到 ggplot2 中绘制的 ACF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42753017/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com