如何修复R语言中ACF和PACF图的异常X轴数值问题?
ACF/PACF图X轴异常问题的排查与解决
问题现象
在处理股票市场时间序列数据时,执行价格标准化操作后,生成的ACF和PACF图X轴数值异常显示为0到1e5,而非预期的1到30个滞后项。
触发操作
最初执行的标准化代码如下:
GSPC<-as.xts(apply(GSPC, 2, function(x) x / x[1]))
尝试调整为仅针对收盘价列处理,问题依旧:
GSPC<-as.xts(apply(GSPC$GSPC.Close, 2, function(x) x / x[1]))
解决方法
使用scale()函数替代原标准化方式,代码如下:
scale=GSPC$GSPC.Close[1] GSPC<-scale(GSPC$GSPC.Close,center=FALSE,scale=scale)
执行后,ACF和PACF图的X轴恢复为预期的30个滞后项范围。
完整复现代码
# 加载依赖库 library(quantmod) library(ggplot2) library(forecast) library(tseries) library(rugarch) library(prophet) library(tsfknn) # 清空环境变量 rm(list=ls()) # 获取标普500指数数据 getSymbols("^GSPC",src="yahoo",from="2015-01-01",to = "2020-06-04") # 原标准化代码(注释状态,取消注释可触发问题) #GSPC<-as.xts(apply(GSPC, 2, function(x) x / x[1])) # 提取日期索引 date = index(GSPC) date = as.Date(date) # 查看数据头部 head(GSPC) # 绘制基础行情图 chartSeries(GSPC,TA = NULL) # 绘制带成交量、布林带、MACD的行情图 chartSeries(GSPC,TA=c(addVo(),addBBands(),addMACD())) # 执行ADF平稳性检验 print(adf.test(GSPC$GSPC.Close)) # 绘制ACF和PACF图 par(mfrow = c(1, 2)) acf(GSPC$GSPC.Close) pacf(GSPC$GSPC.Close) par(mfrow = c(1, 1))
内容的提问来源于stack exchange,提问作者Ray Tayek
相关产品推荐
相关产品推荐

