R语言与时间序列学习笔记.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
R 语言与时间序列学习笔记(1) 继续上一次的参数估计话题。今天分享的是 R 语言中时间序列的模型初步 估计有关内容。主要有:时间序列的创建,ARMA 模型的建立与模型的参数估 计。 一、 时间序列的创建 时间序列的创建函数为:ts().函数的参数列表如下: ts(data = NA, start = 1, end = numeric(), frequency = 1, deltat = 1, ts.eps = getOption(ts.eps), class = , names = ) 参数说明:data:这个必须是一个矩阵,或者向量,再或者数据框 frame Frequency:这个是时间观测频率数,也就是每个时间单位的数 据数目 Start:时间序列开始值,允许第一个个时间单位出现数据缺失 举例:ts(matrix(c(NA,NA,NA,1:31,NA),byrow=T,5,7), frequency=7,names=c(Sun, Mon ,Tue, Wen ,Thu, Fri, Sat)) 运行上面的代码就可以得到一个日历: Sun Mon Tue Wen Thu Fri Sat NA NA NA 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 NA 在 R 语言中本身也有不少数据集,比如统计包中的 sunspots,你可以通 过函数 data(sunspots)来调用它们。 二、 一些时间序列模型 这里主要介绍 AR,MA,随机游走,余弦曲线趋势,季节趋势等 首先介绍一下 AR 模型:AR 模型,即自回归(AutoRegressive, AR)模型,数学表达式为:  AR : y(t)=a1y(t-1)+...any(t-n)+e(t) 其中,e(t)为均值为 0,方差为某值的白噪声信号。 那么产生 AR 模型的数据,我们就有两种方法:1、调用 R 中的函数 filter(线性滤波器)去产生 AR 模型;2、根据 AR 模型的定义自己编写函数 先说第一种方法:调用 R 中的函数 filter(线性滤波器)去产生 AR 模型 介绍函数 filter 的用法如下: filter(x, filter, method = c(convolution, recursive), sides = 2, circular = FALSE, init) 对于 AR(2)模型 x(t)=x(t-1)--0.9x(t-2) +e(t) w-rnorm(550)#我们假定白噪声的分布是正态的。 x-filter(w,filter=c(1,-0.9),recursive) #方法:无论是“卷积”或“递归”(可以缩写)。如果使用移动平均选择 “卷积”:如果“递归”便是选择了自回归。 再说第二种方法:依据定义自己编程产生 AR 模型,还是以 AR(2)模型 x(t)=x(t-1)--0.9x(t-2) +e(t)为例,可编写函数如下: w-rnorm(550) AR-function(w){ x-w x[2]=x[1]+w[1] for(i in 3:550) x[i]=x[i-1]-0.9*x[i-2]+w[i] x } 调用 AR(W)即可得到。如果对相同的随机数,我们可以发现两个产生的 时间序列是一致的。当然对于第二种方法产生的序列需要转换为时间序列格式, 用 as.ts()处理。 类似的,我们给出 MA,随机游走的模拟: MA 模型: w-rnorm(500) v-filter(w,sides=2,rep(1,3)/3) 随机游走: -rnorm(200) -cumsum(w)#累计求和,see example:cumsum(1:!0) -w+0.2 -cumsum(wd) 可以做出相应的图形: 再说一下季节性模型: 最简单的季节模型就是一个分段的周期函数。比如说某地区一年的气温就 是一个季节性模型。利用 TSA 包里给出的数据 tempdub 我们可以发现他就是 这样的模型 给出验证: library(TSA) data(tempdub) month-season(tempdub) model1-lm(tempdub~month) summary(model1) 根据 R 输出的结果: Call: lm(formula = tempdub ~ month) Residuals: Min 1Q Median 3Q Max -8.2750 -2.2479 0.1125 1.8896 9.8250 Coefficients: Estimate Std. Error t value Pr(|t|) (Intercept

文档评论(0)

dashifuniu + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档