【问题标题】:Analyzing a time series with R用 R 分析时间序列
【发布时间】:2013-09-08 01:03:23
【问题描述】:

我是 R 的新手,阅读了 Walter Zucchini 的 R 时间序列分析 PDF。我有一些来自传感器的数据,特别是我可以每分钟或每 5 秒获得一次数据。 然后我想使用ts() 命令来制作这些值的时间序列。所以语法应该是data1mints <- ts(data1min ,freq = 525600),其中 525600 是常规年份的分钟数。
之后,我尝试使用此命令进行绘图 plot(stl(log(data1min), s.window = "periodic")) 但 R 告诉我

序列不是周期性的或少于两个周期

更准确地说,我有 3 月 20 日到 3 月 28 日的数据,所以我没有完整的年份数据,但我认为这段时间足以分析每分钟发生的事情。

我错了吗?

【问题讨论】:

    标签: r time-series


    【解决方案1】:

    错误消息告诉您出了什么问题 - 您的句号少于 2 个。

    例如,

    # this works since there are 3 periods
    freq <- 100
    ny <- 3 # no of years, i.e. periods
    n <- ny * freq
    set.seed(13)
    tt <- ts(rnorm(n), freq = freq)
    s <- stl(tt, "periodic")
    
    # this issues error since there are less than 2 periods. (We have changed ny to 1.)
    freq <- 100
    ny <- 1 ##
    n <- ny * freq
    set.seed(13)
    tt <- ts(rnorm(n), freq = freq)
    s <- stl(tt, "periodic")
    

    【讨论】:

    • 对不起,为什么你使用freq=100,这是什么意思?
    • 这只是为了使示例更小。如果你愿意,你可以使用freq &lt;- 525600,它不会改变第一个有效而第二个出错的事实。
    • 好的,谢谢:)。另外,我不明白上面写的我的数据数组(data1min)必须插入到您的示例中的位置,以及如果我想将分钟作为周期(即我 8 天的所有分钟?),我必须使用什么时间段? /跨度>
    • 该示例是自包含的,如第一句所述,旨在说明错误消息,该消息指出您必须提供至少两个时期的数据。你不必插入任何东西。要运行它,只需将其复制并粘贴到 R 中。
    • 频率是一个周期内的数据点数,因此如果您将频率设置为一个周期为一天,那么 8 天您有 8 个周期,这两个周期以上,所以您没问题。如果频率是一周是一个时期,一个月是一个时期,或者一年是一个时期,那么显然你没有两个时期,所以你不好。
    猜你喜欢
    • 1970-01-01
    • 2016-08-12
    • 2016-02-16
    • 2011-12-26
    • 2018-03-06
    • 2022-01-14
    • 2017-05-02
    • 1970-01-01
    • 2020-01-09
    相关资源
    最近更新 更多