欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

时间序列分析:非平稳序列的确定性分析

发布时间:2024/8/1 编程问答 51 豆豆
生活随笔 收集整理的这篇文章主要介绍了 时间序列分析:非平稳序列的确定性分析 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

时间序列分析:非平稳序列的确定性分析

  • 一. 时间序列分解
    • 1.Wold分解定理
    • 2.Gramer分解定理
  • 二. 确定性因素分解
  • 三. 趋势分析
    • 1.趋势拟合法
      • (1)线性拟合
      • (2)曲线拟合
    • 2.平滑法
      • (1)移动平均法
      • (2)指数平滑法
        • A.简单指数平滑
        • B.Holt两参数指数平滑
        • C.Holt-Winters三参数指数平滑
  • 四. 综合分析

一. 时间序列分解

1.Wold分解定理

对于任何离散平稳过程{Xt}它都可以分解为两个不相关的平稳序列之和其中一个为确定性的,另外一个为随机性的。

2.Gramer分解定理

任何一个时间序列都可以分解成两部分的叠加,其中一部分是由多项式决定的确定性趋势成分,另外一部分是平稳的零均指误差成分。

Gramer分解定理说明任何一个时间序列的波动都可以视为同时受到了确定性影响和随机性影响的作用。平稳时间序列要求这两方面影响都是确定的,而非平稳序列产生的机理就在于它所受到的这两方面影响至少有一个方面是不稳定的。

二. 确定性因素分解

通常,由确定性因素导致的非平稳会显示出明显的规律性,比如显著的趋势或固定的周期。我们把这些容易提取的确定性因素提取出来便是确定性因素分解。
常见的四大确定性因素:
(1)长期趋势
(2)循环波动
(3)季节性变化
(4)随机波动

综合以上因素对时序的影响,我们可以建立以下两个模型:
(1)加法模型:

(2)乘法模型:

如果观察期不是特别长,人们将循环因素(Ct)改成了交易日因素(Dt),改进模型如下:
(1)加法模型:


(2)乘法模型:

我们对确定性时序分析的目的有以下两种:
(1)克服其他因素的影响,单纯测度出某一各确定性因素对序列的影响。
(2)推断出各种确定性因素彼此之间的相互作用关系以及他们对序列的综合影响。

三. 趋势分析

1.趋势拟合法

趋势拟合法j就是把时间作为自变量,相应的序列观测值作为因变量,建立序列值随时间变化的回归模型的方法。

(1)线性拟合

R语言使用lm(Y~a+X1+x2+....+Xn,data=) Y:响应变量 a:是否需要常数项,1表示需要 X1:自变量 data:数据框名字

例子:

读入数据: x<-c(8444,9215,8879,8990,8115,9457,8590,9294,8997,9574,9051,9724,9120,10143,9746,10074,9578,10817,10116,10779,9901,11266,10686,10961,10121,11333,10677,11325,10698,11624,11052,11393,10609,12077,11376,11777,11225,12231,11884,12109) #构造时间自变量 t<-c(1:40) #拟合回归模型 x.fit<-lm(x~t) #查看集合模型 summary(x.fit) #绘制拟合效果图 x<-ts(x) plot(x) abline(lm(x~t),col=2)

得到结果如下:

得到拟合模型为:

(2)曲线拟合

如果长期趋势出现非线性特征,我们需要采用曲线模型来拟合它。

非线性回归函数: nls(Y~f(X1,X2,....,Xn),data=,start=) Y:响应变量 X1:自变量 f:非线性函数 start:采用迭代法计算计算未知参数时,所指定的迭代初始值

例子

#导入数据 a<-read.table("E:/R/data/file12.csv",sep=",",header = T) x<-ts(a$output,start=1949)#lm函数拟合 t1<-c(1:60) t2<-t1^2 x.fit1<-lm(x~t1+t2) summary(x.fit1)

结果为:

#nls函数拟合 x.fit2<-nls(x~a+b*t1+c*t1^2,start = list(a=1,b=1,c=1)) summary(x.fit2)

结果为:

可知道,lm和nls函数拟合的结果相同,模型为:

y<-predict(x.fit2) y<-ts(y,start = 1949) plot(x,type = "p") lines(y,col=2,lwd=2)

2.平滑法

平滑法;利用修匀技术,削弱短期随机波动对序列的影响,使序列平滑,从而显示出变化的规律

(1)移动平均法

例题学习:
确定移动平均期数时所要考虑的问题:

需要用到的函数: SMA(x,n=) n:移动平均期数library(TTR) a<-read.table("E:/R/data/file6.csv",",",header = T) x<-ts(a$temp,start = 1949) x.ma<-SMA(x,n=5) plot(x,type = "o") lines(x.ma,col=2,lwd=2)

(2)指数平滑法

A.简单指数平滑

B.Holt两参数指数平滑

C.Holt-Winters三参数指数平滑

例子实现:
所需要用到的函数:

#导入数据 a<-read.table("E:/R/data/file4.csv",sep=",",header = T) x<-ts(a$output,start = 1964) #进行Holt两参数平滑 x.fit<-HoltWinters(x,gamma = F) x.fit #绘制平滑效果图 plot(x.fit) #预测序列并绘制效果图 x.fore<-forecast(x.fit,h=10) x.fore plot(x.fore)



###########################################
三参数指数平滑:

#导入数据 b<-read.table("E:/R/data/file5.csv",sep=",",header = T) x<-ts(b$milk,start = c(1962,1),frequency = 12) #进行三参数指数平滑 x.fit<-HoltWinters(x) x.fit #绘制平滑效果图 plot(x.fit) #绘制平滑拟合效果图 x.fore<-forecast(x.fit,h=24) plot(x.fore)

四. 综合分析

主要研究的是既有趋势起伏变动又有季节效应的复杂时间序列

“季节”效应:凡是出现固定周期性变化的事件,都称它具有季节效应。

#确定性因素分解函数: decompose(x,type) x:序列名字 type: type="additive" 加法模型 type="multiplicative" 乘法模型

例子介绍:

#读入序列,画出时序图 c<-read.table("E:/R/data/file14.csv",sep=",",header = T) x<-ts(c$sales,start = c(1993,1),frequency = 12) plot(x) #确定性因素分解 x.fit<-decompose(x,type="mult") #查看季节指数,并绘制季节指数图 x.fit$figure plot(x.fit$figure,type = "o") #趋势序列拟合图 x.fit$trend plot(x.fit$trend) #随机波动(残差值)残差图 x.fit$random plot(x.fit$random) #因素分解图 x.fit plot(x.fit)



总结

以上是生活随笔为你收集整理的时间序列分析:非平稳序列的确定性分析的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。