时间序列2拟合检验和预测#R

一、拟合

1、自动拟合模型

要使用auto.arima( )函数需要先下载zoo和forecast程序包,并用library调用这两个程序包。auto.arima()函数的命令格式如下

auto.arima(x,  max.p=5, max.q=, ic=)

其中:

-x:需要定阶的序列名。

-max.p:自相关系数最高阶数,不特殊指定的话,系统默认值为5。

-max.q:自相关系数最高阶数,不特殊指定的话,系统默认值为5。

-ic:指定信息量准则。ic有三个选项"aicc","aic"和"bic"。

2、人为设定模型

如果不是通过auto.arima()函数自动定阶并自动得到模型的拟合结果,通常我们需要分两步来完成auto.arima()函数自动完成的工作。第一步就是模型定阶,第二步就是参数估计。参数估计通过arima( )函数完成,该函数的命令格式为:

arima(x, order = , include.mean = , method =  )

-x:要进行模型拟合的序列名

-order:指定模型阶数。order =c(p,d,q),p为自回归阶数,d为差分阶数,本章不涉及差分问题,所以d=0,q为移动平均阶数。

-include.mean :要不要常数项。include.mean =T需要拟合常数项,这也是系统默认设置。如果不需要拟合常数项,需要特别指定include.mean =F。

-method :指定参数估计方法,默认的是条件最小二乘与极大似然估计结合的方法method="CSS-ML" ,也可以特别指定为极大似然估计方法method="ML", 或者条件最小二乘估计方法method="CSS"。

二、显著性检验

1、参数的显著性检验

调用t分布P值函数pt( )即可获得该统计量的P值。pt( )函数的命令格式为

pt(t, df=, lower.tail=)

其中:

-t:t统计量的值

-df:自由度

-lower.tail:确定计算概率的方向。如果lower.tail=T,计算Pr(X ≤ x)。反之lower.tail=F,计算Pr(X >x)。对于参数检验,如果参数估计值为正,选择lower.tail=F,如果参数估计值为负,选择lower.tail=F。

2、方程的显著性检验:

白噪声检验

假如残差序列的白噪声检验结果显示,残差为非白噪声序列。这意味着拟合模型对信息的提取不够充分,残差序列里蕴含着值得进一步提取的相关信息。这时可以调用tsdiag( )函数,诊断一下残差序列残存的相关信息特征。tsdiag( )函数的命令格式为:

tsdiag(object)

其中:

-object:拟合信息文件名。例:x.fit

如果:

我们应该重新定阶,重新拟合模型。

三、预测

如果拟合模型通过了白噪声检验,我们可以使用该模型进行序列预测。在下载并调用forecast包之后。我们可以调用forecast( )函数完成预测工作。

forecast( )函数的命令格式为

forecast(object, h = , level=)

其中:

-object:拟合信息文件名

-h:预测期数

-level:置信区间的置信水平。不特殊指定的话,系统会自动给出置信水平分别为80%和95%的双层置信区间。

使用如下命令可以获得图3-21:

                    

时间: 2024-10-21 08:28:05

时间序列2拟合检验和预测#R的相关文章

R语言实现多线性回归模型预测时间序列数据 MLR models in R

<!-- #此文主要针对统计基础比较薄弱(比如博主)利用多个模型言针对时间序列数据做预测用之MLR/多线性回归模型: --><!--定义:人话就是给定一组数据集data={(x1,y1),(x2,y2)....(xn,yn)} 从data中得到一个线性模型来反映 x和y 的关系,f(x)=W1X1+W2x2+w3x3+b->f(x)=Wt*x+b :w=不同的参数 -->通常测量误差用欧式误差距离/最小二乘法: (f(x)-y)^2 ---y是ground truth 也就是

肺炎确诊人数增长趋势拟合和预测(截止1月28日)

截止目前(1月28日),数据都符合简单的指数曲线增长趋势. 所有数据都来自官方公布的确诊人数,取每天中午12点的人数为准.前4天没有拟合,因为数据点太少. 第4天(1月24日) 第6天(1月26日) 第8天(1月28日) 需要声明的是,没有任何证据显示预测人数是准确无误的,本文也不构成任何建议.这里只是简单的做一个数据分析,用的是指数曲线进行拟合,公式已经在图里了. 这几张图只能说明在疫情扩散前期,是符合简单的指数曲线增长规律的.我没有使用复杂的时间序列模型和RNN类模型,因为预测出来的反而会过

肺炎确诊人数增长趋势拟合和预测(截止1月30日)

预测明天(1月31日)确诊感染人数为9000,预计31日12时至24时增长区间为9000-9500. 1月29日预测1月30日确诊感染人数为8000,实际感染人数7736.预计30日12时至24时增长区间为8000-8500. ?1月28日预测1月30日感染确诊人数为6000,实际感染人数5999.预计29日12时至24时增长区间为6000-7000. 截止目前(1月28日),数据都符合简单的指数曲线增长趋势. 所有数据都来自官方公布的确诊人数,取每天中午12点的人数为准.前4天没有拟合,因为数

肺炎确诊人数增长趋势拟合和预测(截止2月1日)

预测2月2日确诊感染人数为14000,增长区间为14000-14500 昨日(1月31日)预测2月1日确诊感染人数为11500,增长区间为11500-12000.目前实际感染人数11800,误差较小. 前日(1月30日)预测1月31日确诊感染人数为9500,目前实际感染人数9723例,增速环比上升,但和模型相比再次放缓.增长区间为9500-10000 更新:昨天预测1月30日确诊感染人数为8500,目前实际感染人数8147例,增速再次放缓 更新:1月29日,预测感染确诊人数6000(中午12时)

时间序列连续多步预测方法

https://machinelearningmastery.com/multi-step-time-series-forecasting/ Direct Multi-step Forecast Strategy. Recursive Multi-step Forecast Strategy. Direct-Recursive Hybrid Multi-step Forecast Strategies. Multiple Output Forecast Strategy. 原文地址:https:

R语言混合时间预测更好的时间序列点估计

混合预测 - 单模型预测的平均值 - 通常用于产生比任何贡献预测模型更好的点估计.我展示了如何为混合预测构建预测区间,这种预测的覆盖范围比最常用的预测区间更准确(即80%的实际观测结果确实在80%置信区间内),在3,003 M3预测中进行了测试竞赛数据集. 预测间隔 预报员的问题是在预测组合中使用的预测间隔.预测间隔是与置信区间相似但不相同的概念.预测间隔是对尚未知但将在未来的某个点观察到的值(或更确切地说,可能值的范围)的估计.而置信区间是对基本上不可观察的参数的可能值范围的估计.预测间隔需要

R语言︱XGBoost极端梯度上升以及forecastxgb(预测)+xgboost(回归)双案例解读

R语言︱XGBoost极端梯度上升以及forecastxgb(预测)+xgboost(回归)双案例解读 XGBoost不仅仅可以用来做分类还可以做时间序列方面的预测,而且已经有人做的很好,可以见最后的案例. 应用一:XGBoost用来做预测 -------------------------------------------------- 一.XGBoost来历 xgboost的全称是eXtreme Gradient Boosting.正如其名,它是Gradient Boosting Mach

腾讯技术工程 | 基于Prophet的时间序列预测

预测未来永远是一件让人兴奋而又神奇的事.为此,人们研究了许多时间序列预测模型.然而,大部分的时间序列模型都因为预测的问题过于复杂而效果不理想.这是因为时间序列预测不光需要大量的统计知识,更重要的是它需要将问题的背景知识融入其中.为此,Prophet充分的将两者融合了起来,提供了一种更简单.灵活的预测方式,并且在预测准确率上达到了与专业分析师相媲美的程度.如果你还在为时间序列预测而苦恼,那就一起走进兴奋而又神奇的Prophet世界吧. 前言 时间序列预测一直是预测问题中的难点,人们很难找到一个适用

时间序列深度学习:状态 LSTM 模型预测太阳黑子

时间序列深度学习:状态 LSTM 模型预测太阳黑子 本文翻译自<Time Series Deep Learning: Forecasting Sunspots With Keras Stateful Lstm In R> 原文链接 由于数据科学机器学习和深度学习的发展,时间序列预测在预测准确性方面取得了显着进展.随着这些 ML/DL 工具的发展,企业和金融机构现在可以通过应用这些新技术来解决旧问题,从而更好地进行预测.在本文中,我们展示了使用称为 LSTM(长短期记忆)的特殊类型深度学习模型,