美文网首页空间流行病学
贝叶斯地理统计模型R-INLA-3

贝叶斯地理统计模型R-INLA-3

作者: jamesjin63 | 来源:发表于2020-06-19 16:15 被阅读0次

    Prediction

    上一期我们介绍了如何来评估INLA模型,因为空间位置点的预测需要验证。那整个流程走完以后,最后一步就是对其他地区进行预测。

    我们可以通过计算新位置的投影矩阵,然后将投影矩阵乘以空间场值,将这些值投影到不同的位置。例如,我们可以如下计算矩阵newloc中位置处的空间场的后均值:

    A test

    # projector
    newloc <- cbind(c(-90, -78, 18), c(20, 20, 10))
    Aproj <- inla.spde.make.A(Mesh, loc = newloc)
    a=Aproj %*% fit$summary.random$w$mean
    a
    
        [,1] [,2]
    [1,]  -90   20
    [2,]  -78   20
    [3,]   18   10
    

    研究区域的空间grid

    使用inla.mesh.projector()inla.mesh.project()函数在不同位置投影空间场值。首先,我们需要使用inla.mesh.projector()函数为新位置计算投影矩阵。我们可以在参数loc中指定位置,也可以通过指定参数xlimylimdims在网格上计算位置。例如,我们使用inla.mesh.projector()计算覆盖网格区域的网格上500 x 500个位置的投影矩阵。

    然后,我们使用inla.mesh.project()函数将在网格节点处计算上述空间网格点上对应的均值与标准差。然后使用expand.grid()函数组合proj $ xproj $ y来获得网格位置的坐标。

    rang <- apply(Mesh$loc[, c(1, 2)], 2, range)
    proj <- inla.mesh.projector(Mesh,
                                xlim = rang[, 1], ylim = rang[, 2],
                                dims = c(500, 500))
    
    mean_s <- inla.mesh.project(proj, fit$summary.random$w$mean)
    sd_s <- inla.mesh.project(proj, fit$summary.random$w$mean)
    
    df <- expand.grid(x = proj$x, y = proj$y)
    df$mean_s <- as.vector(mean_s)
    
    
    

    绘图

    这里只展示如何绘制mean,并且将grid数据框转换成raster格式,就可以利用图层进行crop与mask

    
    ggplot(df, aes(x = x, y = y, fill = mean_s)) +
      geom_raster() +
      coord_fixed(ratio = 1) + theme_bw()
      
    # to raster
    library(raster)
    dfr <- rasterFromXYZ(df)  #Convert first two columns as lon-lat and third as value                
    plot(dfr)
    
    
    image.png image.png

    这里展示的仅仅是降雨量数据预测,后面还需要涉及到回归参数的纳入。
    当然预测出了系数,需要考虑影响因素效应,未完待续。

    参考

    1.Geostatistical data
    2.Spatial analysis of geotagged data
    3.Spatial and spatio-temporal models with INLA

    相关文章

      网友评论

        本文标题:贝叶斯地理统计模型R-INLA-3

        本文链接:https://www.haomeiwen.com/subject/bptbxktx.html