7

我使用 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])

在此处输入图像描述

4

1 回答 1

4

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

您可以手动执行此操作,或查看包中的fit.gstatModel功能GSIF。您也可以binom.krigegeoRglm包装中查看。R-sig-geo 上的这个帖子也可能很有趣:

从 GLM 中提取残差与使用指示变量有很大不同。根据您采用哪种 GLM 残差,甚至可能存在一些差异。运行 GLM 并探索残差,例如通过变异函数,是我认为的常规做法,但它并不能告诉你整个故事。拟合 GLGM(广义线性地统计模型)可能更具决定性,因为您可以对模型参数进行推断并更客观地访问空间项的相关性。这是 geoRglm 一次进行所有建模的最初动机,而不是通过两个步骤进行,例如拟合没有相关性的模型,然后对残差进行建模。这带来了校准 MCMC 算法的额外负担。

正如 Roger 所说,可以使用其他替代方案,例如 GLMM 或 MCMCpack,但这肯定还没有准备好“开箱即用”,代码需要针对空间目的进行调整。

于 2013-09-02T17:33:00.257 回答