季节效应序列分析

一、导入数据

analy <- read.csv("D:\\季节效应.csv",header = T,row.names = 1,encoding = "UTF-8")
analy

二、时序图

analy1 <- ts(analy,start = c(1963,1),end = c(1976,12),frequency = 12)
plot(analy1)

在这里插入图片描述
根据时序图,该序列存在长期向上的趋势、季节性变化和随机波动的影响。随着趋势的递增,序列呈现出和季节变化相关的稳定周期性波动,应采用乘法模型。

三、趋势效应与季节效应的提取

Result1=decompose(analy1,type = "multiplicative")  #乘法模型
plot(Result1)

在这里插入图片描述

# 提取趋势效应
plot(Result1$trend)
abline(lm(Result1$trend~time(analy1)),col="2")   #选择2号颜色为趋势线标线

在这里插入图片描述
结论:总体递增

# 提取季节效应
sea=as.vector(Result1$seasonal)
sea=sea[1:12]
plot(sea,type = 'l')

在这里插入图片描述
结论:如图所示,2月份为最低点,6、7、8月份达到高峰值,存在明显季节性。
因此指数平滑模型选择Holt-Winters三参数指数平滑。

四、Holt-Winters三参数指数平滑

(加法模型)

H=HoltWinters(analy1,seasonal = "additive")  #seasonal = "additive"可省略,默认加法模型
H

在这里插入图片描述
结论:Xt+k=875.583001+1.971655k+Sj,k>=1

#手动预测:
xx1977.1=875.583001+1.971655*1-53.694536
xx1977.2=875.583001+1.971655*2-116.436891
xx1977.3=875.583001+1.971655*3-105.404840
xx1977.1
xx1977.2
xx1977.3
#系统预测
fore_H=forecast(H1, h=36)
fore_H

在这里插入图片描述

(乘法模型)

H1=HoltWinters(analy1,seasonal =  "multiplicative")  #乘法模型
H1

在这里插入图片描述
结论:xt+k=(875.5123349+1.9568538k)Sj

#手动预测
x1977.1=(875.5123349+1.9568538*1)*0.9301067
x1977.2=(875.5123349+1.9568538*2)*0.8613974
x1977.3=(875.5123349+1.9568538*3)*0.8741871
x1977.1
x1977.2
x1977.3
#系统预测
fore_H1=forecast(H1, h=36)
fore_H1

在这里插入图片描述
结论:乘法模型的预测效果优于加法模型。

plot(fore_H1)
lines(fore_H1$fitted,col=3)

在这里插入图片描述

五、ARIMA模型

5.1差分平稳化:

因原序列存在季节性和趋势性,对原序列做差分平稳化,使其转为平稳性模型。

Difference1=diff(analy1)   #一阶差分
plot(Difference1)

在这里插入图片描述
对原序列做1阶差分后,消除了递增的趋势。

D=diff(diff(analy1),12)    #一阶十二步差分
plot(D)

在这里插入图片描述
然后对1阶差分后的序列进行12步差分,消除了季节趋势。

5.2对差分后序列作平稳性检验

adf.test(D,nlag=3)

在这里插入图片描述
结论:p=0.01<a,拒绝原假设,为平稳序列

5.3对差分后序列作白噪声检验

lag = c()  
Q.value = c()  
p.value = c()  
for(i in 1:12){  
  test = Box.test(D,lag=i,type="Ljung-Box")  
  lag[i] = i  
  Q.value[i] = test$statistic  
  p.value[i] = test$p.value  
}  
data.frame(lag=lag,Q.value=Q.value,p.value=p.value)

在这里插入图片描述
结论:差分后的序列为平稳非白噪声序列。

5.4模型识别

acf(D,lag.max=60)
pacf(D,lag.max=60)

在这里插入图片描述在这里插入图片描述
结论:acf拖尾,pacf拖尾,12阶以内的ACF和PACF均不截尾,

故用ARMA(1,1)模型提取差分后序列的短期自相关信息

自相关系数1阶截尾,故用 ARMA(0,1)12 拟合季节自相关信息

偏自相关系数1阶截尾,故用 ARMA(1,0)12 拟合季节自相关信息

故模型识别为:ARIMA(1,1,1)X(0,1,1)12 和 ARIMA(1,1,1)X(1,1,0)12 或者ARIMA(0,1,6)X(0,1,1)12

5.5模型拟合与检验

(1)拟合ARIMA(1,1,1)X(0,1,1)12

fit_1<-arima(analy1,order=c(1,1,1),seasonal = list(order=c(0,1,1),period=12))
fit_1

在这里插入图片描述

检验模型ARIMA(1,1,1)X(0,1,1)12

ts.diag(fit_1)

在这里插入图片描述

(2)拟合模型ARIMA(1,1,1)X(1,1,0)12

fit_2=arima(analy1,order = c(1,1,1),seasonal=list(order=c(1,1,0),period=12))
fit_2

在这里插入图片描述

检验模型ARIMA(1,1,1)X(1,1,0)12

ts.diag(fit_2)

在这里插入图片描述
结论:两个模型都不通过检验

(3)拟合模型ARIMA(0,1,6)X(0,1,1)12

fit_3=arima(analy1,order = c(0,1,6),seasonal=list(order=c(0,1,1),period=12))
fit_3

在这里插入图片描述
∇ ∇ 12 ∇∇_{12} 12 X t X_t Xt =
(1-0.924B -0.0793 B 2 B^{2} B2 -0.3075 B 3 B^{3} B3 + 0.0590 B 4 B^{4} B4 - 0.0684 B 5 B^{5} B5 + 0.3202 B 6 B^{6} B6) * (1 - 0.4184 B 12 B^{12} B12) e t e_t et

检验模型ARIMA(0,1,6)X(0,1,1)12

ts.diag(fit_3)

在这里插入图片描述

(4)拟合模型ARIMA(0,1,6)X(1,1,0)

fit_4=arima(analy1,order = c(0,1,6),seasonal=list(order=c(1,1,0),period=12))
fit_4

在这里插入图片描述

检验模型ARIMA(0,1,6)X(1,1,0)

ts.diag(fit_4)

在这里插入图片描述

(5)拟合模型ARIMA(3,1,2)X(1,1,0)

x4_fit<-arima(analy1,order=c(3,1,2),seasonal = list(order=c(1,1,0),period=12))
x4_fit

在这里插入图片描述

∇ ∇ 12 ∇∇_{12} 12 X t X_t Xt = 1 − 1.7905 B + 0.7905 B 2 1 − 0.8229 B − 0.0030 B 2 + 0.3107 B 3 \frac{1-1.7905B+0.7905B^2}{1-0.8229B-0.0030B^2+0.3107B^3} 10.8229B0.0030B2+0.3107B311.7905B+0.7905B2*( 1 − 0.4073 B 1-{0.4073B} 10.4073B) e t e_t et

六、评判模型的相对优劣

data.frame(AIC(fit_1), AIC(fit_4), BIC(fit_1), BIC(fit_4))
  • 4
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 对于具有季节性的非平稳时间序列,可以使用季节差分和差分来实现平稳化。季节差分是指将观测值减去同一季节的上一个观测值,而差分是指将观测值减去上一个观测值。在进行差分后,可以使用自相关和偏自相关函数来确定合适的ARIMA模型,以及季节ARIMA模型(SARIMA)。 在进行SARIMA建模时,需要考虑季节性和趋势性。季节性可以通过季节差分来消除,而趋势性可以通过差分来消除。然后可以使用自相关和偏自相关函数来识别ARIMA和SARIMA模型的参数。 在建立模型后,需要进行模型检验,以确保模型的可靠性和准确性。可以使用残差分析来检查模型是否具有自相关性、异方差性和非正态性等问题。如果有这些问题,则需要重新调整模型。 最后,可以使用SARIMA模型进行预测和预测不确定性的估计。可以使用预测误差的标准差来估计预测不确定性。 ### 回答2: SAS软件提供了一种分析非平稳序列季节效应的有效方法。非平稳序列是指在时间上存在趋势、周期或者是其他不规则变动的序列分析这种序列季节效应对于预测、趋势分析和决策制定等方面非常重要。 SAS中的分析方法包括检验序列的平稳性、建立合适的模型和进行预测。首先,可以使用ADF单位根检验或KPSS检验来检验序列的平稳性。如果序列是非平稳的,可以尝试进行差分或者对数变换等方法使之平稳。 接下来,在平稳的序列上可以使用自回归移动平均模型(ARIMA)来建模季节效应。ARIMA模型是一种常用的时间序列建模方法,可以描述序列的趋势、季节和随机性。使用SAS的PROC ARIMA过程,可以根据数据来选择合适的ARIMA模型,并进行参数估计和模型诊断。 最后,可以使用已建立的模型进行预测。SAS提供了PROC FORECAST过程,可以根据已有的模型和历史数据进行未来的预测。预测的结果可以帮助决策者做出合理的决策,例如制定生产计划、库存管理等。 总而言之,SAS软件提供了一套完善的方法来分析非平稳序列季节效应。通过检验序列的平稳性、建立合适的模型和进行预测,可以有效地处理季节效应,并为决策制定提供指导。 ### 回答3: SAS是指统计分析系统(Statistical Analysis System),是一种广泛应用于统计分析和数据管理的软件。在SAS中,分析非平稳序列的有效季节效应可以通过以下步骤进行。 首先,对于非平稳序列,我们需要进行平稳性检验,以确认序列是否是平稳的。常用的平稳性检验方法包括单位根检验(如ADF检验)和KPSS检验。如果序列不是平稳的,我们需要对其进行差分操作,直到得到一个平稳的序列。 接下来,我们可以利用SAS中的时间序列分析工具对平稳的序列进行季节性分解。SAS中提供了PROC UCM(Unobserved Components Models)过程,该过程可以对时间序列数据进行分解,并估计序列中的季节效应。 在PROC UCM过程中,我们需要指定模型类型、观测方程和状态方程。对于季节效应分析,我们可以将模型类型指定为TSAD(Time Series Analysis and Decomposition)模型。观测方程用于描述序列的测量部分,而状态方程则用于描述序列的演化过程。我们可以通过调整模型中的参数,来识别和估计季节效应。 在得到季节效应的估计值之后,我们可以进一步对其进行检验,以评估其是否显著。SAS中提供了针对季节性效应的假设检验工具,比如F检验或t检验。 最后,我们可以根据季节效应的估计结果,对非平稳序列进行季节性调整。这可以通过将估计的季节效应序列中减去或加回来实现。 总之,SAS是一种有效的工具,可用于分析非平稳序列中的季节效应。通过使用SAS中的时间序列分析工具,我们可以对非平稳序列进行季节性分解和调整,从而有效地研究和应对季节效应序列的影响。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值