1

这可能是也可能不是一个非常简单的问题。但是我正在尝试更改 R 中生成的 acf 图并且没有运气。我想改变acf 的外观,即从基本情节改变。图中左边是R生成的正常acf,右边是我想要的acf,有没有办法改变呢?在此处输入图像描述

我曾尝试在各种搜索引擎中输入“更改 R 中的 acf 图”,但找不到合适的解决方案。到目前为止,我已经存储了 acf 输出:

a <- acf(blah)
xyplot(acf~lag,data=a,type = "l")

这将返回 acf 的线图,但不保留 95% 置信区间。有没有人有什么建议?

4

2 回答 2

7

通过使用,我可以获得与您想要的情节类似的东西ggplot2。我在ldeaths这里使用了该表作为示例。关键点可能是将 acf 对象中的值提取到data.frame. 从那里你几乎可以用它来绘制任何你想要的东西。

library(ggplot2)

# compute acf without plotting
acz <- acf(ldeaths, plot=F)

# 95% confidence interval limits
ci <- qnorm((1 + 0.95)/2)/sqrt(sum(!is.na(series)))  

# convert to data frame
acd <- data.frame(lag=acz$lag, acf=acz$acf)

# use data frame for ggplot
ggplot(acd, aes(lag, acf)) + geom_area(fill="grey") +
    geom_hline(yintercept=c(ci, -ci), linetype="dashed") +
    theme_bw()

在此处输入图像描述

您可以ggplot2通过查看此处的文档来熟悉。这将帮助您进一步自定义情节。

函数不导出置信区间acf- 此计算在plot.acf函数内部完成。所以当用 ggplot 绘制 ACF 时,你需要自己计算 CI 边界。

于 2012-12-14T15:21:27.410 回答
1

Coda包生成了一个很好的自相关图:

在此处输入图像描述

于 2012-12-14T16:11:47.020 回答