R语言时间序列之数据平滑及预测

本文介绍了使用R语言进行时间序列分析,包括移动平均的简单和二次应用,以及指数平滑的简单和Holt_Winters方法。通过实际案例展示了数据平滑和预测过程,揭示长期趋势并进行预测。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数据及代码参考书目:赵华老师的《时间序列数据分析》

一 移动平均

   移动平均能消除数据中的季节变动和不规则变动。若序列中存在周期变动,则通常以周期为移动平均项数。移动平均法可以通过数据显示出数据长期趋势的变动规律。
   R可用filter()函数做移动平均。用法:filter(data,filter,sides)

参数 含义
data 时间序列
filter 通常为一个向量,表示移动平均模型里的系数。如若为3项移动平均,则为c(1/3.1/3,1/3)
sides 取1或者2,“1”表示单边卷积,“2”表示双边卷积

1、简单移动平均

  简单移动平均就是将n个观测值的平均数作为第(n+1)/2个的拟合值。当n为偶数时,需进行二次移动平均。简单移动平均假设序列长期趋势的斜率不变。
   以我国1992到2014年的季度GDP数据为例。

data<-read.csv("gdpq.csv")
tdata<-ts(data,start=1992,freq=4)
m1<-filter(tdata,filter=c(rep(1/4,4)))
plot(tdata,xlab="时间",ylab="gdp")
lines(m1,col="red",cex=1.5)

这里写图片描述

   代码运行结果如上图,红色表示拟合值,黑色表示真实值。

2、二次移动平均

   二次移动平均即在一次移动平均的基础上再进行一次移动平均。一般两次移动平均的项数是一致的。二次移动平均假设序列长期趋势的斜率是随时间的变化而变化的。
   二次移动平均长期趋势的拟合公式为:at=2M1tM2t,其中M1t 表示第一次移动平均的拟合值,M2t

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值