R语言SP500时间序列绘图及ACF/PACF分析故障排查求助
问题排查与修正方案
一、核心问题定位
原代码存在两个关键错误:
Date列未转换为日期格式,导致横轴排序混乱、线性回归趋势线无法正确拟合stat="rolling_mean"已被R官方弃用,无法生成移动平均线
以下是修正后的完整代码及分析:
二、数据预处理(修正版)
library(tidyverse) library(zoo) # 用于计算移动平均线 library(forecast) # 用于ACF/PACF分析 # 加载数据并标准化格式 sp500 <- read.csv("SP500.csv") %>% mutate(Date = as.Date(Date, format = "%m/%d/%y")) %>% # 按数据预览的日期格式转换 mutate(Close = as.numeric(Close)) # 确保收盘价为数值型 head(sp500)
三、时间序列图(含均值线、趋势线、3期均线)
# 提前计算3期移动平均线 sp500 <- sp500 %>% mutate(ma3 = rollmean(Close, k = 3, fill = NA, align = "right")) # 绘制完整时间序列图 ggplot(sp500, aes(x = Date, y = Close)) + geom_line(color = "steelblue", linewidth = 0.8) + # 样本均值水平线 geom_hline(yintercept = mean(sp500$Close, na.rm = TRUE), linetype = "dashed", color = "red") + # 简单线性回归趋势线 geom_smooth(method = "lm", se = FALSE, color = "darkgreen", linewidth = 0.8) + # 3期移动平均线 geom_line(aes(y = ma3), linetype = "dotted", color = "orange", linewidth = 0.8) + labs(x = "时间", y = "SP500收盘价") + theme_minimal()
四、ACF图绘制与判断
# 转换为时间序列对象(按年交易日频率252处理) sp_ts <- ts(sp500$Close, frequency = 252) # 绘制ACF图 acf(sp_ts, main = "SP500收盘价ACF图")
特征判断:ACF值缓慢衰减至置信区间内,呈现拖尾特征,说明序列存在长期相关性。
五、PACF图绘制与判断
# 绘制PACF图 pacf(sp_ts, main = "SP500收盘价PACF图")
特征判断:PACF值在滞后1阶后快速落入置信区间,呈现1阶截断特征,说明序列的短期相关性仅集中在滞后1期。
内容的提问来源于stack exchange,提问作者Nina
相关产品推荐
相关产品推荐

