如何将多个站点的时间序列温度数据建模为一个站点数据的函数?

机器算法验证 时间序列 回归 多元分析 时空
2022-04-07 17:00:30

我是时间序列分析的新手,如果有任何关于如何最好地解决以下时间序列回归问题的建议,我将不胜感激:我在三年内对一个站点的大约 20 个位置进行每小时温度测量,以及静态辅助信息(斜率、海拔、坡向、树冠覆盖)。该场地有几公顷的面积,温度记录设备沿着几个样带分布在场地上,间隔约为 20-50 m。大约 1 公里外,我有一个气象站每小时的数据,它还提供风速、风向、湿度、太阳照度等的测量数据。

我希望能够仅使用气象站的数据来预测现场(通常)的温度(最小值、最大值、平均值);它是半永久性的,而现场的温度记录器只安装了 3 年。所以本质上我在一个位置(气象站)有多个自变量(温度、湿度、风等),但在多个位置有一个因变量(温度),每个位置也有几个时不变属性:坡度、仰角、纵横比等

我最感兴趣的是预测站点的日常低点和高点,而不是站点中每个温度记录位置的每小时温度。虽然,这些每小时的预测肯定是有价值的。

我最初的方法是根据现场温度计算每日平均值、最小值和最大值,并将这些作为简单线性回归中的因变量,使用气象站可用的测量值作为自变量。这工作得相当好(R2 > 0.50 有 2 个预测变量),但由于许多原因似乎过于简单,我想必须有更复杂(和强大)的方法来做到这一点。

一方面,我没有对回归中每日值的时间序列性质做任何明确的说明,尽管从一天到下一天的最低或平均温度可能不像从一小时到接下来,我想知道这些每日数据的独立性问题(或者肯定是每小时,如果我试图预测每小时温度)。其次,由于担心在站点上进行多个有些相关的温度测量(它们彼此之间比气象站数据更相似),我只是使用站点上所有测量值的平均值或最小值或最大值,而不是直接包含来自每个单独测量位置的数据。但这也阻止了我使用来自每个温度测量位置(斜率、海拔、坡向、树冠覆盖),这可能会解释该地点之间温度差异的很大一部分。第三,由于担心回归由非常强烈的温度昼夜循环主导,我只查看每日值而不是每小时值。

任何有关解决此问题的更好方法(尤其是在 R 中)或从哪里开始寻找的建议,将不胜感激!我意识到有很多 R 包可以处理时间序列,但是我很难找到从此类问题开始的最佳位置,因为我见过的所有示例似乎都没有真正反映我的情况试图在这里建模。

更新:再想一想,我不清楚时间序列模型在这里是否真的合适,因为我对预测未来某个特定时间点会发生什么不感兴趣。相反,我只是对现场温度与气象站温度(和其他环境变量)的关系感兴趣。我认为也许时间序列分析会很有价值,因为我担心随后的温度测量可能不够独立。当然,一小时的温度很大程度上取决于前一小时,但对于日常数据的依赖性较弱。在任何一种情况下,如果一个人对时间序列预测不感兴趣,时间序列数据的时间相关性/非独立性是否是一个应该解决的有效问题?

2个回答

您可能想检查 R 中的 GAM 包,因为它可以适应您正在寻找的部分(或全部)。如果您愿意阅读原始论文(Hastie & Tibshirani, 1986 ),可以通过 OpenAccess 获得。

本质上,您将单个因变量建模为“平滑”预测变量的加法组合。典型用途之一是将时间序列及其滞后作为预测变量,平滑这些输入,然后应用 GAM。

这种方法已被广泛用于估计每日死亡率作为平滑环境时间序列的函数,尤其是污染物。它不是 OpenAccess,但(Dominici 等人,2000 年)是一本极好的参考书,并且(Statistical Methods for Environmental Epidemiology with R)是一本关于如何使用 R 进行此类分析的优秀书籍。

您是否希望预测与正确的时间序列分析无关。时间序列方法可以开发一个稳健的模型,该模型可以简单地用于描述依赖序列与一组用户建议的输入(也称为用户指定的预测器序列)和经验识别的遗漏变量之间的关系,无论它们是确定性的还是随机的。然后,他们的选择可以将“信号”扩展到未来,即基于系数的不确定性和预测变量未来值的不确定性进行预测。现在这两种经验识别的“省略系列”可以分为1)确定性和2)随机性。第一种类型是简单的脉冲、电平转换、季节性脉冲和本地时间趋势,而第二种类型由最终模型的 ARIMA 部分表示。当人们从可能的预测变量列表中遗漏一个或多个随机序列时,遗漏的特征是最终模型中的 ARIMA 组件。时间序列建模者将 ARIMA 模型称为“穷人回归模型”,因为该序列的过去被用作省略的随机输入序列的代理。