使用多个数据集训练和模拟 spatstat ppm

Training and simulating a spatstat ppm using multiple datasets

免责声明:我对 spatstat 和一般的空间点建模非常陌生...请原谅我的天真。

我最近尝试使用 spatstat 来拟合和模拟与天气现象相关的空间点模式,其中空间模式代表一组目击报告(例如,冰雹发生的报告)和观测 window 并且协变量基于某些气象参数(例如 window 是水分至少为 X 的区域,然后在训练模型时将水分变量作为协变量额外传递)。

moistureMask = owin(mask=moisture>X)
moistureVar = im(moisture)

obsPPP = ppp(x=obsX,y=obsY,window=moistureMask)
myModel = ppm(obsPPP ~ moistureVar)

### then simulate
mySim = simulate(myModel,nsim=10)

我的问题如下:

  1. 是否有可能(或者更重要的是,甚至有效),在某一天使用特定湿度变量和掩码训练 ppm,并将其应用于另一天具有不同水分值和掩码。我曾考虑使用 update 函数从训练模型中切换出 window 和协变量字段,但还没有真正尝试过。如果答案是肯定的......我有点不清楚如何以编程方式实际执行此操作
  2. 是否可以使用附加数据在线更新 ppm。例如,根据来自不同日期的数据(每个日期都有自己的 window 和协变量)迭代地训练模型(类似于训练多少机器学习模型,使用训练数据块)。例如,假设我有 10 年的每日数据,我想用它来训练模型,还有另外 10 年的湿度变量,我想在这些变量上模拟点模式。同样,我在这里也考虑了 update 函数,但不清楚新模型是仅基于新数据,还是基于原始数据和新数据的组合。

如果我的方向完全错误,请告诉我。参考资料和资源表示赞赏。

如果您使用 ppm 拟合模型并通过指定新数据 and/or 新协变量来更新它,那么新数据将替换旧数据;更新模型的参数仅使用您调用 update.

时提供的新数据确定

update 命令的语法在 update.ppm 的联机帮助中进行了描述(通用 update 的方法用于 class ppm).

看来您真正想做的是将点过程模型拟合到许多复制数据集,每个数据集由一个预测变量 moistureVar 和一个点模式 obsPPP 组成。在这种情况下,您应该使用函数 mppm 将点过程模型拟合到复制数据。

为此,首先制作一个列表 A 包含每一天的潮湿区域,另一个列表 B 包含每一天的冰雹报告位置模式。即,A[[1]] 为第 1 天的潮湿区域,B[[1]] 为第 1 天的冰雹报告位置的点模式,依此类推。然后做

   h <- hyperframe(moistureVar=A, obsPPP=B)
   m <- mppm(obsPPP ~ moistureVar, data=h)

这将使单点过程模型适合整组数据。

最后我可以指出模型

  obsPPP ~ moistureVar

非常简单,因为 moistureVar 是二元预测器。该模型将简单地说,冰雹报告的强度在高湿度区域内取一个值,在该区域外取另一个值。作为替代方案,您可以考虑使用水分含量(例如湿度)作为预测变量。

有关详细信息,请参阅 the spatstat book 的第 9 章和第 16 章。