将负二项模型预测为具有偏移项的栅格

时间:2016-02-26 19:49:59

标签: r raster predict

我正在尝试使用predict包中的raster函数向一堆栅格预测负二项模型。我需要包含一个偏移项来规范化我的计数变量。我尝试使用一种方法来使这个工作失败,但是偏移项包含在模型中,如下所示:

condor.glm <- glm.nb(y_count ~ logsafefood + logpigharvest +
                       logintdist + houseden + pubforest + pubrange + 
                       privforest + privrange + offset(log(offset)), 
                     data=merge.Hex, control=glm.control(maxit=1000))

predict(rasStack2, condor.glm, filename="cencal_predictlow_model15.img", 
        overwrite=TRUE, type="response", progress="text",na.rm=TRUE)

R抛出此错误:

Error in log(offset) : non-numeric argument to mathematical function

如果我将offset作为参数传递:

condor.glm <- glm.nb(y_count ~ logsafefood + logpigharvest + 
                       logintdist + houseden + pubforest + pubrange + 
                       privforest + privrange, 
                     offset=log(offset), 
                     data=merge.Hex, control=glm.control(maxit=1000))

predict(rasStack2, condor.glm, filename="cencal_predictlow_model15.img",  
        overwrite=TRUE, type="response", progress="text",na.rm=TRUE)

R创建预测曲面,但值都相等。

有关如何正确执行此操作的任何建议吗?

1 个答案:

答案 0 :(得分:1)

问题与raster :: predict函数无关,而是与您的数据有关。如果您回溯预测数据,您将看到它会产生统一的值。

问题是你有一个列&#34;偏移&#34;命名与函数&#34; stats :: offset相同。如果您只是重命名&#34;偏移&#34;列调整您的语法+ log(offsets)offset = log(offsets)的模型调用。

要使raster :: predict函数正常工作,您将不得不摆弄“const”参数或创建一个常量栅格,可以添加到栅格堆栈中,使用统一的log值(1807),这将是最简单的方法。