4、非平稳序列的确定性分析

非平稳序列的

确定性分析

时间序列的分解

Wold分解定理

Cramer分级定理

确定性因素分解

传统因素分解

  • 长期趋势
  • 循环波动
  • 季节性波动
  • 随即波动

相互作用模式

  • 加法模型
  • 乘法模型
  • 混合模型

趋势分析

趋势拟合法

  • 线性拟合
  • 非线性拟合
    曲线拟合

平滑法

  • 移动平均法
  • 指数平滑法

季节效应分析

综合分析

4、非平稳序列的确定性分析_第1张图片

#lm(Y~ a+X1+X2+…+Xn,data=)
#Y:响应变量
#a:指定是否需要常数项
#(1)a=1,模型有非零常数项,这是默认设置
#(2)a=0,模型不需要常数项
#X1,X2,…,Xn:自变量
#data:数据框名。如果自变量和响应变量不是独立输入而是共同存在于某个数据框中,则需要指定数据框名。

#4.1
#读入数据
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)

#nls(Y~f(X1,…,Xn),data=,start=)
#Y:响应变量
#X1,…,Xn:自变量
#f:非线性函数
#data:数据框名。如果自变量和响应变量不是独立输入变量而是存在于某个数据框中,则需要指定数据框名。
#start:如果需要利用迭代法计算未知参数,可以指定迭代初始值。

#4.2
#读入数据
a=read.table("E:/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)

y=predict(x.fit2)   #把nls函数得到的拟合值赋值给y
y=ts(y,start=1949)
plot(x,type="p")
lines(y,col=2,lwd=2)

#SMA(x,n=)
#x:需要做简单移动平均的序列名
#n:移动平均期数

#4.4
library(TTR)
a=read.table("E:/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)

#HoltWinters(x,alpha=,beta=,gamma=,seasonal=)
#x:要进行指数平滑的序列名
#alpha:随机波动部分的参数
#gamma:季节部分的参数
#这三个指数联合起来,确定要拟合的指数平滑模型类型
#(1)当alpha不指定,beta=F,gamma=F时,表示拟合简单指数平滑模型
#(2)当alpha和beta不指定,gamma=F时,表示拟合Holt两参数指数平滑模型
#(3)当三个参数都不指定时,表示拟合Holt-Winters三参数指数平滑模型
#seasonal:当既含有季节又含有趋势时,指定季节与趋势的关系
#(1)seasonal="assitive"表示加法关系,这是系统默认选项
#(2)seasonal="multplicative"表示乘法关系

#4.5
#读入序列
a=read.table("E:data/file4.csv",sep=",",header = T)
x=ts(a$output,start=1964)

#进行Holt两参数平滑
x.fit=HoltWinters(x,gamma=F)
x.fit

#绘制Holt两参数指数平滑拟合效果图
plot(x.fit)

#预测序列并绘制预测效果图
x.fore=forecast(x.fit,h=10)
x.fore

plot(x.fore)

#4.6
#读入序列
b=read.table("E:/data/file5.csv",sep=",",header = T)
x=ts(b$milk,start=c(1962,1),frequency = 12)

#进行Holt-Winters三参数指数平滑
x.fit=HoltWinters(x)
x.fit

#绘制Holt-Winters三参数指数平滑拟合效果图
plot(x.fit)

#预测序列并绘制预测效果图
library("forecast")
x.fore=forecast(x.fit,h=24)
plot(x.fore)

#decompose(x,type=)
#x:序列名
#type:指定是加法模型还是乘法模型
#(1)加法模型:type="assitive",这是系统默认设置
#(2)乘法模型:type="multiplicative"。

#4.8
#读入序列,并绘制时序图
c=read.table("E:/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)

你可能感兴趣的:(R,其他)