时间序列分析及其应用-基于R语言实例(原书第4版),时间序列分析r语言答案

  时间序列分析及其应用:基于R语言实例(原书第4版),时间序列分析r语言答案

  原文链接:http://tecdat.cn/p=20953原文来源:微信官方账号前言,拓端数据部落

  本文给出了用于时间序列分析的分布延迟的线性和非线性模型(DLMs和DLNMs)。盖保罗等人[2010]和盖保罗[2011]讨论了数字土地管理系统和数字土地网络管理系统的发展和时间序列数据的实现。本文中描述的示例涵盖了DLNM方法对时间序列数据的大多数标准应用,并认为DLNM包用于指定、编译和描述此类模型。这些例子在空气污染和温度对健康的影响方面有具体的应用,但它们可以很容易地扩展到不同的主题,为分析这些数据集和其他时间序列数据源奠定了基础。

  数据

  利用包含1987-2000年每日观测数据的时间序列数据集,探讨了空气污染与温度和死亡率之间的关系。在会话中加载R之后,让我们看看前三个观察结果。

  星期四1306513-0.2777777831.50002 1987-01-02 198712星期五8712星期二1014 311.555555555 rhum pm 10 o 3195 . 59995929803389.5032.32。

  示例1:简单的DLM

  第一个示例指定了一个简单的DLM,它在调整温度影响的同时评估PM10对死亡率的影响。首先,建立这两个预测值的两个交叉基矩阵,并包含在回归函数的模型表达式中。由于PM10的影响被假定为在预测因素的维度上是线性的,因此从这个角度来看,它可以被定义为一个简单的DLM。甚至回归模型也是温度分布滞后函数的非线性项。首先,运行crossbasis()构建两个基于交集的矩阵,并保存在两个对象中。为了预测两个对象的关系,它们的名称必须不同。代码如下所示。

  CB(pm10,lag=15,argvar=list(fun=Lin ,arglag=list ) fun=poly ,degree=4

  在有时间序列数据的程序中,第一个参数x用于指定向量序列。在这种情况下,假设PM10的影响是线性的(FUN="LIN "),并使用5个自由度的自然三次样条曲线(FUN="NS ",默认选中)来模拟与温度的关系。内部节点(如果未提供)(ns)位于默认的等距位置,边界节点位于温度范围内。关于滞后空间的基数,我在4次多项式函数中指定了PM10 15天的滞后效应(设定次数=4)(最小滞后默认为0)。温度的迟滞效应由两个迟滞层(0和1-3)定义,每层中的效应假设为常数。breaks=1参数定义第二个间隔的底部边界。这些方法函数summary()(基于交集)和二维关联提供了一个摘要。

  cross basics functions services:5114范围:-3.049835到356.1768滞后期336015总df: 5神经金鱼的基础3360 fun:ll 3360 llun:poly degree:4刻度:15截距:真

  现在,您可以在回归模型的模型表达式中包含这两个相交的基础对象。在这种情况下,泊松分布、时间平滑函数、7 df/年(以补偿季节性和长期趋势)和星期几被用作拟合时间序列模型的因子。

  死亡(cb1。PMC B1.temp ns)时间,7 * 14 (Dow,family=准泊松)))).

  通过上述模型预测的PM10和特定死亡率水平之间的估计关系通过函数crosspred()进行总结,并存储在同一类别的对象中。

  Pred(CB1.pm,model 1,at=0:20,bylag=0.2,cumul=TRUE))当这个函数包含用于估计参数的base1.pm和model 1对象的前两个参数的绘制结果时,这个更细的网格会生成更平滑的迟滞曲线。参数cumul(默认为FALSE)意味着还必须包括滞后增量的累积相关性。默认情况下,参考值设置为0,因为cen参数不定义中心。这发生在函数lin()中。这些预测已经保存在pred1.pm中,现在可以用特定的方法绘制。例如:

  Plot(pred1,切片,main= PM10和增加10个单位之间的相关性())(plot) pred1,ylab=累积RR ,main= PM10和增加10个单位之间的累积相关性))

  这些功能包括

  存储了结果的pred1.pm对象,以及参数“切片”定义了我们要绘制的关系图,对应于相关维度中预测器和滞后的具体值。当var=10时,我显示了PM10的迟滞响应,即10 gr/m3。这种相关性是使用0克/立方米的参考值定义的,因此为10个单位的增加提供了预测特定的相关性。我还为第一张图片选择了不同的颜色。PM10的特定值,即10克/立方米。这种关联用0克/立方米的参考值来定义,因此提供了用于添加10个单位的预测变量特定关联。我还为第一张图片选择了不同的颜色。参数cumul指示是否需要绘制先前保存在pred1.pm中的增量累积关联.结果如图1a-1b所示。置信区间被设置为参数ci的默认值“area”。在左侧面板中,其他参数通过ci.arg传递给绘图函数polygon(),阴影线绘制为置信区间。对这些图的解释有两个方面:滞后曲线表示在特定日期PM10增加10 gr/m3后未来每一天的风险增加(正向解释),或在过去一天相同PM10对特定日期风险增加的贡献(反向解释)。图1a-1b中的图表显示,PM10风险的初始增加在很长的滞后时间后逆转。PM10在15天滞后时间内增加10个单位的总累积效应(即,将所有贡献加到最大滞后时间)及其95%置信区间可由pred1.pm中包含的对象allRRfit、allRRhigh和allRRlow提取,并键入:

  pred 1100.9997563 c bind(pred 1 . p[1]0.991687911示例2:季节分析

  第二个例子的目的是说明数据仅限于特定季节的分析。这种分析的独特之处在于,它假定数据是由不同年份的若干等距有序的季节序列组成的,而不是单一的连续序列。在本例中,我使用了与第3节中相同的步骤来评估臭氧浓度和温度分别对5天和10天后死亡率的影响。首先,我创建了一个季节性时间序列数据集,仅取夏季的间隔,并将其保存在数据框ChicagonMaps中:

  类似地,我首先创建交叉基矩阵:

  CB (O3,LAG=5,argvar=list (Fun= THR ,THR=40.3),arglag=list (Fun=整数),group=year)参数组表示定义多个序列的变量。每个序列必须是连续的、完整的和有序的。这里我假设O3的影响在达到40.3 gr/m3之前为零,然后是线性的,应用高阈值参数化(fun=" thr ")。对于温度,我使用双阈值,并假设在15C以下和25C以上,该效应呈线性,在两者之间为零。使用阈值参数thr.value(缩写为thr)进行选择,未指定参数端将第一个交叉引用的默认值设置为“H”,第二个交叉引用的默认值设置为“D”(给定提供两个阈值)。关于滞后维度,我为O3指定了一个无约束函数,对每个滞后应用一个整数(fun=" integer "),最长5天(默认情况下,最小滞后等于0)。对于温度,我定义了三个区间,分别是0-1,2-5和6-10。回归模型包括一天和一年中一天的自然样条,从而分别描述各年的季节性影响和长期趋势。特别是,与前面的分析相比,后者的自由度要小得多,因为它只需要捕捉一个稳定的年度趋势。否则,以同样的方式进行估计和预测。代码是:

  glm(death ~ cb2.o3 cb2.temp ns(doy,4) ns(time,3) dow,family=quasipoisson())

  必须在其中指定要预测的值:在这里,我定义了一个从0到65 gr/m3(关于臭氧分布范围)的整数,加上阈值和50.3 gr/m3的值,这对应于阈值以上增加了10个单位。向量将被自动排序。将自动选择由thr()模拟的参考-响应曲线,并且可以不定义中心参数。我绘制了预测因子O3增加10个单位的具体滞后响应关系,但置信区间为80%,还绘制了总体累积暴露响应关系。

  Plot(pred2.o3,切片,main=滞后响应超过阈值10个单位(80置信区间))plot(pred2.o3,总体,xlab=臭氧,CI= L ,main= 5个滞后的总累积相关)在第一个语句中,main另外,参数ci.level=0.80表示绘制了80%的置信区间。最后,我根据参数类型和pch选择了带有特定符号的点。在第二个语句中,参数type=" total "表示必须画出总体累积相关,置信区间是一条线,ylim定义Y轴的范围,lwd表示线的粗细。与前面的示例类似,置信区间的显示通过ci.arg指定的参数列表得到了改进。在本例中,它被传递给低级函数行()。与上例相似,当臭氧浓度超过阈值(50.3-40.3 gr/m3)10个单位时,我们可以从pred2.o3中提取估计的总累积效应,95%置信区间为:

  pred 2 . O3 $ all rrfit[ 50.3 ]50.31 . 047313

  cbind(allRRlow,allRRhigh)[50.3 ,][1]1.004751.09155353656

  同样的图形和计算可以应用于温度的冷效应和热效应。例如,我们可以描述低阈值或高阈值以上1的风险增加。用户可以重复上述步骤来执行此分析。

  例3: 2D DLNM在前面的例子中,空气污染(分别为PM10和O3)的影响被假设为完全线性或高于阈值的线性。这个假设有助于解释和表达这种关系:从不考虑预测因子的维度,很容易得出10个单位增加的具体或总体累积相关性。相反,在考虑温度的非线性相关性时,我们需要采用二维透视图来显示沿预测变量空间的相关性和滞后的非线性变化。在这个例子中,我指定了一个更复杂的DLNM,其中使用一个平滑的二维非线性函数来估计相关性。虽然关系的复杂程度更高,但我们会看到,指定和拟合模型以及预测结果所需的步骤与我们之前看到的简单模型完全相同,只需要选择不同的图纸。用户可以采取相同的步骤来研究前一个示例中的温度影响,并扩展PM10和O3的图形。在这种情况下,我运行DLNM来研究温度和PM10对死亡率的影响,分别达到了30和1的滞后。首先,我定义了交叉基矩阵。具体而言,温度的交叉基由自然和非自然样条曲线指定,使用软件包的样条曲线中的函数ns()和bs()。代码如下:

  varknots - equalknots(temp,fun=bs ,df=5,degree=2) lagknots - logknots(30,3)

  预测空间的选择基函数是PM10效应的线性函数和具有5个温度自由度的二次B样条(FUN="BS ")。它是由函数equalknots()选择的。默认情况下,节点以相等的间隔放置在预测值空间中。关于滞后空间,我假设PM10的简单滞后是0-1参数化的(即直到单层滞后1,最小滞后默认等于0,保持默认值df=1),而我定义了另一条三次样条曲线,这次温度滞后维数有自然约束(默认为FUN="NS ")。使用logknots()函数,滞后样条曲线的节点以相等的间隔放置在滞后对数刻度中。温度和死亡率之间关系的估计、预测和绘图通过以下方式进行:

  Plot(pred3.temp,xlab= temperature lphi=30,main= 3D Plot of temperature effect )Plot(pred 3 . temp, contour ,xlab= temperature ,plot.title=title (contour plot ,xlab= temperature ,ylab=此步骤需要在此处执行,因为该关系由非线性函数建模,没有明显的参考值。只有参数by=1在crosspred()中用于选择值,它定义预测变量范围内的所有整数值。如图3a所示,第一绘图表达式生成3D绘图,其中通过参数--lphi获得非默认视角选项。第二个绘图表达式指定了图3b中的等高线图,其中标题和轴标签由参数plot.title和key.title选择。图3a-3b中的图表提供了二维曝光-滞后-响应相关性的综合总结,但是它们在滞后的预测值或具体值下提供相关性信息的能力是有限的。此外,由于三维图和等高线图中没有报告估计关联的不确定性,因此它们仅用于推理目的。通过绘制特定预测值和滞后值的响应面“切片”,可以提供更详细的分析。代码是:

  图(pred3.temp, slices ,var=-20,main=不同温度下的滞后曲线,参考21c )用于(i in 1: 3)线(pred3.temp, slices ,var=c (0,27,33) [i]图例

  结果如图4a-4b所示。图4a示出了特定于-20、0、27和33的温和的和极端的冷的和热的温度(参考21)的滞后反应曲线。图4b

  描述了滞后0和滞后5的暴露-反应关系(左栏)以及在-20和33的滞后-反应关系(右栏)。在图3a-3b中,参数var和lag定义了要在效果表面上切割的“切片”的温度和滞后值。第一个表达式中的参数ci="n "表示不能画置信区间。在多面板图4b中,使用列表参数ci.arg来绘制置信区间,并将其用作阴影线来增加灰度对比度,这在这里更加明显。初步解释表明,低温比高温有更长的死亡风险,但不是立竿见影的,滞后于0时表现出“保护”作用。这种分析能力很难用更简单的模型实现,可能会丢失重要的细节。

  示例4:降维DLNM

  在最后一个例子中,我展示了如何使用函数crossreduce()来降低2D DLNM对维基的参数所表示的抽象的拟合度。首先,我指定一个新的交叉基矩阵,运行模型并以通常的方式进行预测。

  指定的温度交叉基由双阈值函数和自然三次样条组成,以10C和25C的分界点作为预测器的维数,以对数标度中间距相等的节点值作为滞后,如前例所示。可以减少三个特定的抽象,即总累积、滞后特定和预测变量特定的相关性。前两个代表暴露-反应关系,三个代表理论滞后于反应关系。代码如下:

  Credu(cb4,model4)分别在滞后5和33时计算两个空间中相关性的降低。“crossreduce”类的三个对象包含相关空间中wiki的修改后的归约参数,这些参数可以与原始模型进行比较:

  长度(coef(pred4))[1] 10长度(coef(redall));length(coef(redlag))[1]2[1]2 length(coef(redvar))

  正如预期的那样,预测变量空间的参数数量减少到2个(与双阈值参数化一致),滞后空间的参数数量减少到5个(与自然三次样条曲线基的维数一致)。然而,原始拟合和简化拟合的预测是相同的,如图5a所示:

  Plot(pred4,总体,xlab=温度,YLAB= RR ,YLIM=C (0.8,1.6),Main=总体累积相关)线条(REDALL,CI=线条,COL=4,LTY=2)图例(

  这个过程也可以通过重构原始wiki和预测给定校正参数的相关性来阐明。作为一个例子,我使用onebasis()为滞后空间再现自然的三次样条曲线,并预测了结果:

  基于与0:30的滞后相对应的整数值来计算样条基。这些节点具有与原始十字基相同的值,并且不居中。截距用作滞后基准的默认值。用修正后的参数计算了33的预测值。原始的、简化的和重建的预测值的相同拟合在图5b中示出,其通过以下公式获得:

  绘图(pred4,“切片”,var=33,main=“特定于33C时预测变量的关联”)图例(“顶部”,C(“原始”,“降维”,“重建”),

  最流行的观点

  1.用lstm和pytorch在python中预测时间序列。

  2.长短期记忆模型lstm用于预测和分析2.python中的时间序列。

  3.用R语言分析时间序列(arima,指数平滑)

  4.r语言多元copula-garch模型时间序列预测

  5.r语言copulas和金融时间序列案例

  6.用R语言随机波动模型sv处理时间序列中的随机波动。

  7.r语言时间序列tar门限自回归模型

  8.r语言k形时间序列聚类方法对股票价格时间序列进行聚类

  9.python3使用arima模型预测时间序列

时间序列分析及其应用-基于R语言实例(原书第4版),时间序列分析r语言答案