R 寓言包中的不规则时间序列

R 寓言包中的不规则时间序列,r,tsibble,fable,tidyverts,R,Tsibble,Fable,Tidyverts,在tsibble软件包和fable软件包中,我想我在哪里读到过,我们可以处理不规则的时间序列。 我找不到任何关于如何做的例子。我有几个问题: 在建模之前,我是否必须将不规则的时间序列转换为规则的时间序列? (到目前为止,我所知道的是,我们需要将不规则时间序列转换为规则时间序列。如果不是这样,请告诉我。如果不是,那么哪些模型不需要规则时间序列?) tidyverts/tsibble/fable/fabletools中有哪些工具和模型可以处理不规则的时间序列 是否有任何问题/链接可供我查看工作示例?

在tsibble软件包和fable软件包中,我想我在哪里读到过,我们可以处理不规则的时间序列。 我找不到任何关于如何做的例子。我有几个问题:

  • 在建模之前,我是否必须将不规则的时间序列转换为规则的时间序列? (到目前为止,我所知道的是,我们需要将不规则时间序列转换为规则时间序列。如果不是这样,请告诉我。如果不是,那么哪些模型不需要规则时间序列?)
  • tidyverts/tsibble/fable/fabletools中有哪些工具和模型可以处理不规则的时间序列
  • 是否有任何问题/链接可供我查看工作示例? e、 g

    我在zoo/xts中看到了一些与之相关的功能,这些功能总是很好的,但我在fable上旋转我的轮子,并试图让它工作

    对于示例数据集,我们可以使用

        DF <- structure(list(station = c(1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 
    2L), Time = structure(c(1L, 2L, 3L, 5L, 7L, 1L, 2L, 4L, 6L, 8L
    ), .Label = c("01-01-1974", "01-02-1974", "01-03-1974", "01-04-1974", 
    "01-05-1974", "01-06-1974", "01-07-1974", "01-08-1974"), class = "factor"), 
        WaterTemp = c(5, 5, 8.6000004, 8.1333332, 12.7999999, 5, 
        5, 8.6000004, 8.1333332, 12.7999999)), .Names = c("station", 
    "Time", "WaterTemp"), class = "data.frame", row.names = c(NA, 
    -10L))
    

    DF在
    {fable}
    中提供的大多数模型要求观察结果是规则的,并且许多模型也要求数据中没有空白。支持不规则数据的示例模型是
    fable::TSLM()

    上述示例数据通常被视为“常规”数据,但存在缺口。这是因为数据的公共间隔为
    1个月
    ,但数据中缺少一些月。以下是如何生成此数据的TSIBLE:

    DF站时间水温
    #>1 1974年1月1日5.000000
    #>2 1 1974年2月5日000000
    #>311974年3月8日600000
    #>411974年5月8日133333
    #>511974年7月12日800000
    #>621974年1月500万
    #>7.2 1974年2月500万
    #>821974年4月8.600000
    #>921974年6月8日133333
    #>1021974年8月12日800000
    #创建“常规”TSIBLE(带间隙)
    如图所示(DF,key=“station”,index=“Time”)
    #>#一个气泡:10 x 3[1M]
    #>#键:站[2]
    #>站时水温
    #>               
    #>1 1974年1月5日
    #>2 1 1974年2月5日
    #>3.1 1974年3月8日60
    #>411974年5月8日13
    #>5.1 1974年7月12.8日
    #>6.2 1974年1月5日
    #>7.2 1974年2月5日
    #>821974年4月8日60
    #>9.2 1974年6月8.13日
    #>1021974年8月12日8
    
    要填补此数据集的空白(类似于中所示),可以使用
    tsibble::fill_gaps()
    函数。这使得数据与支持缺失值但不支持数据间隙的模型兼容,例如
    fable::ARIMA()

    #创建一个“常规”tsible(带间隙),然后完成间隙
    如图所示(DF,key=“station”,index=“Time”)%>%
    填补空白()
    #>#一个气泡:15 x 3[1M]
    #>#键:站[2]
    #>站时水温
    #>               
    #>1 1974年1月5日
    #>2 1 1974年2月5日
    #>3.1 1974年3月8日60
    #>1974年4月4日
    #>511974年5月8日13
    #>6.1 1974年6月娜
    #>7.1 1974年7月12.8日
    #>8.2 1974年1月5日
    #>9.2 1974年2月5日
    #>1974年3月10日至2日
    #>11 2 1974年4月8日60
    #>12.2 1974年5月26日
    #>13.2 1974年6月8.13日
    #>14.2 1974年7月NA
    #>15.2 1974年8月12.8日
    
    可以使用
    regular=FALSE
    创建不规则时间序列。如果正在处理事件数据,这通常很有用。在这种情况下,您很少希望填补空白,因为有太多的空白

    #创建一个“不规则”的TSIBLE(没有间隙的概念)
    as_tsible(DF,key=“station”,index=“Time”,regular=FALSE)
    #>#一个气泡:10 x 3[!]
    #>#键:站[2]
    #>站时水温
    #>               
    #>1 1974年1月5日
    #>2 1 1974年2月5日
    #>3.1 1974年3月8日60
    #>411974年5月8日13
    #>5.1 1974年7月12.8日
    #>6.2 1974年1月5日
    #>7.2 1974年2月5日
    #>821974年4月8日60
    #>9.2 1974年6月8.13日
    #>1021974年8月12日8
    

    由(v0.3.0)于2021-02-09创建。

    感谢您提供到目前为止的信息。我的数据是不规则的,传感器在一天中的不同时间以不规则的间隔读取数据。我无法发布这些数据,也没有找到一个好的示例数据集发布在这里。我确实使用了
    regular=FALSE
    ,但是没有一个模型有效。。你是对的,除了每天读几本书之外,你每小时都在填补这篇文章的空白。我浏览了你的博客,真的很有帮助。非常感谢你的出色工作。请您添加一些示例,说明如何优雅地将预测合并回原始数据集。绘制它们很好,但也需要它们作为表格。通过使用
    hilo
    将我的fbl\u ts转换为
    tbl\u ts
    ,我可以得到它,因为
    dplyr::select
    fbl\u ts
    上没有按预期工作。但我相信有一种优雅的方法可以做到。对于不规则的传感器数据,设置
    regular=FALSE
    是合适的。然而,这限制了适用于此类数据的模型。目前,
    fable::TSLM()
    是唯一可以处理不规则数据的fable模型。您还可以考虑一些方法来适当地使数据正常化(聚合、更一致的数据收集、近似等)来使用其他时间序列模型。您的第二条评论听起来像是一个不同的问题,您可以为此打开一个新的堆栈溢出问题。