gpt4 book ai didi

R - 将频率为 20 分钟的时间序列放入函数 STL()

转载 作者:行者123 更新时间:2023-12-02 15:35:57 27 4
gpt4 key购买 nike

我正在尝试使用 R 中的函数 STL() 来平滑存储来自传感器的时间与温度的数据集。主要目标是从函数中去除噪声,以便找到环境温度(基线曲线)。我已经以时间序列格式加载了我的数据,当我尝试使用 STL() 时,它给了我这个错误:

Error in stl(timeseries[[1]]) : 
series is not periodic or has less than two periods

这是我的数据:

> head(stations[[1]])
Date Unit Temp
1 0013-06-30 10:00:01 C 32.5
2 0013-06-30 10:20:01 C 32.5
3 0013-06-30 10:40:01 C 33.5
4 0013-06-30 11:00:01 C 34.5
5 0013-06-30 11:20:01 C 37.0
6 0013-06-30 11:40:01 C 35.5

我已将其转换为时间序列类:

timeseries[[1]] = as.ts(stations[[1]]$Temp,freq=26280)

注意:频率很高,因为每 20 分钟采集一次数据

STL() 的错误是由于频率不一致造成的吗?我有一种感觉,我在将数据设为时间序列时可能做错了什么,这导致无法计算序列的周期

我确实需要所有这些数据,因为整个集合只涵盖了 4 天的数据(因此频率很高)

感谢您的帮助!

最佳答案

错误消息告诉您,为了估计时间序列的季节性组成部分,您至少需要两个季节的数据。如果您有 4 天的温度数据,您可能希望季节性成分以天为单位。因此,您应该相应地设置您的时间序列。您每天有 24*3 个观察值,所以这应该是频率。

timeseries[[1]] <- ts(stations[[1]]$Temp, frequency=24*3)

然后 STL(timeseries[[1]], "periodic") 应该可以工作,虽然我无法测试它,因为它需要至少 2 天的数据,即 2 小时是不够的.

关于R - 将频率为 20 分钟的时间序列放入函数 STL(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17738746/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com