这可能是也可能不是一个非常简单的问题。但我试图改变R中产生的acf情节并且没有运气。我想改变acf看起来的方式,即改变基本情节。该图显示左侧R产生的正常acf和右侧的acf,有没有办法改变这个?
我尝试在各种搜索引擎中键入'将acf plot更改为R',但找不到合适的解决方案。到目前为止,我已经存储了acf输出:
a <- acf(blah)
xyplot(acf~lag,data=a,type = "l")
这将返回acf的线图,但不保留95%置信区间。有没有人有任何建议?
答案 0 :(得分: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()
通过查看文档here,您可以熟悉ggplot2
。这将有助于您进一步自定义绘图。
acf
函数不会导出置信区间 - 此计算在plot.acf
函数内完成。因此,当使用ggplot绘制ACF时,您需要自己计算CI边界。
答案 1 :(得分:1)
Coda包生成一个很好的自相关图: