【问题标题】:Daily change with zoo动物园的日常变化
【发布时间】:2015-06-28 15:59:12
【问题描述】:

我正在尝试比较两个时间序列的波动性,例如:

  • A 系列与 B 系列的平均每日变化
  • A 系列与 B 系列的最大每日变化
  • sd 的每日变化是 A 系列 vs. B
  • A系列和B系列最大的区别

我是 R 新手,但似乎每个人都推荐 zoo 用于时间序列。我搜索了一遍又一遍,没有一个关于如何查找日复一日的教程......

现在我有这个:

series<-c("A","B")  
dateStart="01-jan-15"
DateEnd=format(Sys.Date(),format="%d-%b-%y")
dfa=getMyData(series[1],dateStart,DateEnd)
dfb=getMyData(series[2],dateStart,DateEnd)
df <-merge(dfa,dfb,by="date")  
df$date<-as.Date(df$date)
df=rename(df, c("price.x"="A"))
df=rename(df, c("price.y"="B"))
df=df[ , !names(df) %in% c("series.x","series.y")]  
df$Difference=df$A-df$B
abc <- read.zoo(df)
summary(abc)

我错过了一些非常简单的东西吗?当然,为时间序列分析而制作的软件包应该有一个添加每日变化的单一功能解决方案?

【问题讨论】:

    标签: r time-series zoo


    【解决方案1】:

    让我们首先创建数据

    z.index = as.Date(12550:12554)
    z1 = zoo(seq(1,3,6,4,3), order.by = z.index)
    z2 = zoo(seq(2,7,4,8,3), order.by = z.index)
    

    A 系列与 B 系列的平均每日变化 - 两者之间的差异

    mean(diff(z1)) - mean(diff(z2))
    

    A 系列与 B 的最大每日变化 - 每个系列中最大的

    max(diff(z1)); max(diff(z2))
    

    每日变化的标准差是A系列与B系列

    sd(diff(z1)); sd(diff(z2))
    

    A 系列和 B 系列之间的最大差异 - 如果您指的是绝对差异

    max(abs(z1 - z2)); 
    

    【讨论】:

      猜你喜欢
      • 2013-11-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-13
      • 2019-08-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多