R中的多变量时间序列。如何找到滞后相关性并建立预测模型

机器算法验证 r 时间序列 预测 互相关 滞后
2022-02-13 00:03:52

我是新来的,在统计和 R 方面也很新。我正在为大学做一个项目,目的是找出河流中雨水和水流水位之间的相关性。一旦证明相关性,我想预测/预测它。

数据 我有一组特定河流的几年数据(每 5 分钟采集一次),其中包含:

  • 以毫米为单位的降雨量
  • 河流流量(立方米/秒)

这条河没有雪,所以模型只是基于雨和时间。偶尔会有冰冻的温度,但我正在考虑将这些时期作为异常值从数据中删除,因为这种情况超出了我的项目范围。

示例 这里有几张来自下雨和几小时后水位上升的样本数据图。

更大的例子几天

较短的示例只有一个降雨期

红线是河流流量。橙色是雨。你可以看到它总是在河水上涨之前下雨。时间序列结束时再次开始下雨,但稍后会影响河流流量。

相关性就在那里。这是我在 R 中使用 R 中的 ccf 证明相关性所做的工作:

  • 互相关
  • 主要变量
  • 滞后

这是我用于第二个示例的 R 线(一个降雨期):

ccf(arnoiaex1$Caudal, arnoiaex1$Precip, lag.max=1000, plot=TRUE, main="Flow & Rain")

小示例 2 的 ccf 结果

我的解释是:

  • 下雨(先发生),
  • 有一个显着的相关性,在的滞后时达到峰值(我可以检查确切的数字,我知道那部分)。450
  • 我不知道如何找出相关性影响河流流量的时间,我认为名称是“保留”。我看到的是该图与第一张图的形状相同,当河流在雨后失水时。我不,如果基于此,我可以说保留持续时间从的峰值(我可以在返回的数据框中创建的对象中检查这一点,看看水位何时恢复到该值“雨前”。是这样吗?有没有更好的方法来找到保留?450800ccf

我对吗?

关于时间序列这个时间序列没有周期性或季节性。雨随时可能到来并造成影响。它在夏天确实会减少,但它仍然会发生,这是一个一年四季都下雨的地区。

模型和预测。 我不知道如何创建一个模型来进行预测,告诉我在一段雨后河流的流量会增加多少。我一直在尝试一些arimaauto arima但不是很成功。我应该使用Arimavars还是其他不同的多元模型?任何指向示例的链接都会有很大帮助。

如果您知道创建此预测的最佳方法,请告诉我,我应该使用什么模型。还有一些其他的事情我正在考虑做,但为了简单起见,把它们从这个解释中删除了。如果需要,我可以分享一些数据。

1个回答

您需要使用您的 ACF 和 PACF 行为来帮助您确定哪个模型更适合您的数据(例如,ACF 图中存在缓慢衰减表明可能需要差分以使序列更稳定。您的 ACF 图显然表明某种需要转换。如果使用正确的转换(平稳序列),波动必须较少变化并且在蓝线内。一旦您使序列平稳,请考虑哪种模型 AR、MA、ARMA 或 ARIMA 是合适的。在我的项目中,我执行了以下操作来帮助选择模型:

ACF 图在滞后 2 处显示了一个相对较大的值(查看它在图中的位置)。除此之外,它在滞后大于 2 时基本上为零。这表明 MA(2) 模型可以拟合数据,然后通过查看 PACF 图,我们立即注意到相关性几乎在所有滞后情况下都为零。这可能表明该模型上没有任何 AR 部分(将其调整为您的情节)。因此,我们的候选模型之一可能是参数 p=0、d=1 和 q=1 或 2 的 ARIMA (p, d, q)。我还尝试了一些更高阶的 MA,并考虑了在模型中加入 AR 部分的可能性,以便比较 AIC、AICc 和 BIC 的结果并决定最终模型。下一步,您需要运行一些诊断测试,以确保您选择了正确的模型并且残差中没有模式(残差的 ACF 和 PACF,Ljung-Box 统计的 p 值,残差的直方图,以及QQ情节)。希望能帮助到你!