首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R中的滞后时间序列

R中的滞后时间序列
EN

Stack Overflow用户
提问于 2017-07-04 17:09:27
回答 1查看 55关注 0票数 1

我有一列"y1“,我试图取日志差异,然后查找滞后1、2、3和4。

代码语言:javascript
复制
> # Data Import 
> dat <- read.csv("book1.csv", header=TRUE, sep=",")
> dat
   year Month     y1
1 2000   Feb 125.25
2 2000   Mar 145.23
3 2000   Apr 588.23
4 2000   May 244.12
5 2000   Jun 100.25
6 2000   Jul 585.00
7 2000   Aug 782.25
8 2000   Sep  12.25
> y1 <- dat[,3]       # y1 column
> y1
[1] 125.25 145.23 588.23 244.12 100.25 585.00 782.25  12.25
> dy1 <- c(diff(log(y1))) 
> y11 <- lag(dy1, 1)  # Lag-1
> y12 <- lag(dy1, 2)  #Lag-2
> y13 <- lag(dy1, 3)  #Lag-3
> y14 <- lag(dy1, 4)  #lag-4
> 
> y <- cbind(dy1,y11,y12,y13,y14)
> y
        dy1        y11        y12        y13        y14
 [1,]  0.1480070  0.1480070  0.1480070  0.1480070  0.1480070
 [2,]  1.3987993  1.3987993  1.3987993  1.3987993  1.3987993
 [3,] -0.8794581 -0.8794581 -0.8794581 -0.8794581 -0.8794581
 [4,] -0.8899928 -0.8899928 -0.8899928 -0.8899928 -0.8899928
 [5,]  1.7639448  1.7639448  1.7639448  1.7639448  1.7639448
 [6,]  0.2905625  0.2905625  0.2905625  0.2905625  0.2905625
 [7,] -4.1566484 -4.1566484 -4.1566484 -4.1566484 -4.1566484

我原以为,一旦我取了日志差,第一个值就会丢失,代之以"NA“。此外,我还以为,当我对系列赛采取滞后-1时,前两个值将是"NA“,以此类推。任何帮助都将不胜感激。提前谢谢你。

EN

回答 1

Stack Overflow用户

发布于 2017-07-04 18:57:02

为了正确使用lag,您需要将时间数据附加到值中。然后,转移将在时间序列的时间分量中完成,而值保持不变。下面是一个例子。

代码语言:javascript
复制
myTs <- ts(dat$y1, start = c(2000, 2), frequency = 12)

myTs
#         Feb    Mar    Apr    May    Jun    Jul    Aug    Sep
# 2000 125.25 145.23 588.23 244.12 100.25 585.00 782.25  12.25

lag(myTs, 1)
#         Jan    Feb    Mar    Apr    May    Jun    Jul    Aug
# 2000 125.25 145.23 588.23 244.12 100.25 585.00 782.25  12.25

lag(myTs, -3)
#         May    Jun    Jul    Aug    Sep    Oct    Nov    Dec
# 2000 125.25 145.23 588.23 244.12 100.25 585.00 782.25  12.25

lag也是为(numeric)向量定义的,但其行为有些不同。这个移位被保存为一个属性(start/end/stepsize),但是结果以后很难使用(至少对我来说是这样)。

代码语言:javascript
复制
y1 <- dat$y1

y1
# [1] 125.25 145.23 588.23 244.12 100.25 585.00 782.25  12.25

lag(y1, 1)
# [1] 125.25 145.23 588.23 244.12 100.25 585.00 782.25  12.25
# attr(,"tsp")
# [1] 0 7 1

lag(y1, -3)
# [1] 125.25 145.23 588.23 244.12 100.25 585.00 782.25  12.25
# attr(,"tsp")
# [1]  4 11  1
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44911220

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档