分组使用GAM功能

问题描述 投票:0回答:0

我有一个树木生长数据库,其中包含每棵树和每年(每年 6 棵不同的树,10 年,60 棵树)的每个 DOY(一年中的一天)的每个生长阶段(扩大、变厚、成熟)的细胞数量总共)。如您所见,我们每 1-2 周去现场采集一次样本。数据库看起来像这样(简化):

print(xylo)

  Year Tree DOY Enlarging Thickening Mature
  2012  25  80    0         0          0
  2012  25  87    1         0          0
  2012  25  94    4         0          0
  2012  25  103   5         1          0
  2012  25  111   3         3          0
  2012  25  119   1         4          1
  2012  25  127   1         5          3
  2012  25  139   0         3          5
  2012  30  80    0         0          0
  2012  30  87    2         0          0
  2012  30  94    5         1          0
  2012  30  103   7         3          1
  2012  30  111   4         6          2
  2012  30  119   3         7          5
  2012  30  127   1         8          7
  2012  30  139   1         4          8
  2012  43  80    0         0          0
  2012  43  87    0         0          0
  2012  43  94    2         0          0
  etc.

我想应用 GAM 函数来预测每年每棵树的每个生长阶段何时开始和结束,并了解每个阶段的生长曲线和模式。 首先,为了构建模型,我只在每个生长阶段的细胞数(增大、增厚、成熟)和一年中的第几天(DOY,来自我的数据库)之间使用一个简单的 GAM:

enlarging <- gam(Enlarging ~ s(DOY), data=xylo, quasipoisson, gamma=1, min.sp=0.01) thickening <- gam(Thickening ~ s(DOY), data=xylo, quasipoisson, gamma=1, min.sp=0.01) mature <- gam(Mature ~ s(DOY), data=xylo, quasipoisson, gamma=1, min.sp=0.01)

现在,我想预测
一年中的每一天

(从一年中的第一天我去田间采集样本直到最后一个)使用GAM在每个生长阶段的细胞数量上一步建立的模型。为此,我创建了一个名为 DOY 的每日序列,从我们采样的第一天开始到我们采样的最后一天结束。 DOY <- seq(min(xylo$DOY), max(xylo$DOY), 1)

我的计划是使用我在上面创建的模型和序列来应用 
predict

函数: enlarging_gam <- as.vector(predict(enlarging, data.frame(DOY), type="response")) thickening_gam <- as.vector(predict(thickening, data.frame(DOY), type="response")) mature_gam <- as.vector(predict(mature, data.frame(DOY), type="response")) fit <- data.frame(cbind(DOY = DOY, enlarging_gam = enlarging_gam, thickening_gam = thickening_gam, mature_gam = mature_gam))

最后,我想创建一个简单的自定义函数,将此预测应用于我数据库中每年的每棵树。可以这样做吗?我尝试过不同的事情,但我一直无法做到。我只想使用 GAM 模型来预测每年每棵树每个生长阶段的每日细胞数量。有人可以帮忙吗?

r dplyr group-by predict gam
© www.soinside.com 2019 - 2024. All rights reserved.