【发布时间】:2020-05-12 21:09:17
【问题描述】:
您好,我正在尝试使用 ggplot 绘制多个 ACF 和 PACF。
我已经走了一点路,但循环的东西仍然给我带来了很多麻烦。所以希望你能帮助我。
我想制作四个 acf 图,AAPL、GE、SPY 和 WMT 各一个。
col_names <- colnames(df)
col_names <- col_names[-c(1,2)]
for (i in col_names){
bacf <- acf(df, plot = FALSE)
bacfdf <- with(bacf, data.frame(lag, acf))
significance_level <- qnorm((1 + 0.95)/2)/sqrt(sum(!is.na(df)))+
q <- ggplot(data = bacfdf, mapping = aes(x = lag, y = acf)) +
geom_segment(mapping = aes(xend = lag, yend = 0))+
geom_hline(yintercept=c(significance_level,-significance_level), lty=3, color="blue") +
ggtitle(i)+theme_minimal()
plot_list[[i]]<-q;
plot_grid(q[[1]],q[[2]],q[[3]],q[[4]])
我的一些数据:
structure(list(Date = structure(c(10960, 10961, 10962, 10963,
10966, 10967, 10968, 10969, 10970, 10974, 10975, 10976, 10977,
10980, 10981, 10982, 10983, 10984, 10987, 10988), class = "Date"),
`AAPL, not cleaned` = c(-8.810021, 1.45281, -9.051401, 4.628075,
-1.774445, -5.25055, -6.181806, 10.40407, 3.74302, 3.425328,
2.48944, 6.309463, -1.948374, -4.652429, 5.493372, -1.852238,
-0.1725783, -7.924, 2.074379, -3.431709), AAPL = c(-8.810021,
1.45281, -9.051401, 4.628075, -1.774445, -5.25055, -6.181806,
10.40407, 3.74302, 3.425328, 2.48944, 6.309463, -1.948374,
-4.652429, 5.493372, -1.852238, -0.1725783, -7.924, 2.074379,
-3.431709), GE = c(-4.08219945, -0.17376199, 1.32681098,
3.7986923, -0.03966156, 0.1651528, 0.32948959, 1.14473858,
-1.80480699, -2.00675631, 0.48530696, -1.88697651, -1.24799082,
-4.25203994, 0.26750549, 2.10052733, 0.21893437, -5.62251427,
0, 1.48150858), SPY = c(-3.989133, 0.1787311, -1.620197,
5.645238, 0.3424661, -1.203798, -0.999791, 1.345214, 1.348592,
-0.7898116, 0.8111037, -1.542447, -0.2161228, -2.875245,
1.129238, -0.7957602, -0.4002674, -3.16912, 2.677718, 0.9804
), WMT = c(-3.813763, -2.360084, 1.391327, 7.280618, -1.841673,
-1.498155, -1.812554, 0.1075352, -0.9720049, 1.630053, -2.314561,
-1.067179, -1.494226, -5.024863, 2.904527, 1.316343, -4.642776,
-7.004438, -0.6916664, 6.949199)), row.names = c(NA, 20L), class = "data.frame")
【问题讨论】:
-
一个简单的问题。你不应该在这里的某个地方将你的 data.frame 转换为 time_series 吗?
标签: r ggplot2 autocorrelation