代码之家  ›  专栏  ›  技术社区  ›  Geo-sp

二项式数据的回归克里格

  •  7
  • Geo-sp  · 技术社区  · 12 年前

    我使用gstat来预测二项式数据,但预测值高于1,低于0。有人知道我该如何处理这个问题吗?谢谢

    data(meuse)
    data(meuse.grid)
    coordinates(meuse) <- ~x+y
    coordinates(meuse.grid) <- ~x+y
    gridded(meuse.grid) <- TRUE
    
    #glm model
    glm.lime <- glm(lime~dist+ffreq, meuse, family=binomial(link="logit"))
    summary(glm.lime)
    
    #variogram of residuals
    var <- variogram(lime~dist+ffreq, data=meuse)
    fit.var <- fit.variogram(var, vgm(nugget=0.9, "Sph", range=sqrt(diff(meuse@bbox\[1,\])^2 + diff(meuse@bbox\[2,\])^2)/4, psill=var(glm.lime$residuals)))   
    plot(var, fit.var, plot.nu=T)
    
    #universal kriging
    kri <- krige(lime~dist+ffreq, meuse, meuse.grid, fit.var)
    spplot(kri[1])
    

    enter image description here

    1 回复  |  直到 12 年前
        1
  •  4
  •   Paul Hiemstra LyzandeR    12 年前

    一般来说,使用这种回归克里格方法,无法保证模型在计算趋势和残差时是有效的。关于代码的一些注释。请注意,您使用 variogram 计算残差变差函数,但是 变异函数 使用正态线性模型来计算趋势,从而也计算残差。您需要根据您的 glm ,然后在此基础上计算残差变差函数。

    您可以手动执行此操作,或者查看 fit.gstatModel 的函数 GSIF 包裹你也可以看看 binom.krige 来自 geoRglm 包裹 This thread 关于R-sig-geo可能也很有趣:

    从GLM中提取残留物与使用指示剂有很大不同 变量。此外,甚至可能存在一些差异,具体取决于 你得到的GLM残差。运行GLM并探索残差 例如,通过变差函数,这是我认为的常规做法,但 它并不能告诉你整个故事。装配GLGM (通用线性地质统计模型)可能更具结论性,因为 您可以对模型参数进行推理并访问相关性 更客观地使用空间术语。这是最初的动机 对于geoRglm来说,一次完成所有建模,而不是通过两个步骤 如在没有相关性的情况下拟合模型,然后对残差进行建模。 这带来了校准MCMC算法的额外负担。 后来,spBayes来到现场,看起来确实很有希望提出 更通用的框架,而geoRglm相当具体 单变量二项式和中毒模型。

    正如罗杰所说,还有其他选择的余地 像GLMM或MCMCpack,但这肯定还没有准备好 “开箱即用”,代码需要进行空间调整 目的。