0

在使用空间数据创建混合模型时,您需要检测并考虑空间自相关。这似乎通常通过合并相关结构来完成,然后检查混合模型半变异函数的改进。在下面的示例中,我在此示例中使用 spData 'baltimore' 数据集,将房价建模为房间数量的响应,市议会作为随机效应。

library(spData)
library(nlme)
library(dplyr)

baltimore<-spData::baltimore
baltimore$logpr = log(baltimore$PRICE)

model1 <- lme(logpr ~ NROOM  , random = ~1|CITCOU, 
              data = baltimore)

semivario <- Variogram(model1, form = ~X+Y,resType = "normalized")
plot(semivario, smooth = TRUE)

model2 <- lme(logpr ~ NROOM  , random = ~1|CITCOU, 
              data = baltimore, 
              correlation = corRatio(form = ~ X + Y))

semivario <- Variogram(model2, form = ~X+Y,resType = "normalized")
plot(semivario, smooth = TRUE)

此代码生成 2 个半变异函数(由于声誉,我无法在问题中显示,但代码会复制它)。

为了争论,我改变了数据框的行顺序。

baltimoreX<-arrange(baltimore, X)

model1 <- lme(logpr ~ NROOM  , random = ~1|CITCOU, 
              data = baltimoreX)

semivario <- Variogram(model1, form = ~X+Y,resType = "normalized")
plot(semivario, smooth = TRUE)

model2 <- lme(logpr ~ NROOM  , random = ~1|CITCOU, 
              data = baltimoreX, 
              correlation = corRatio(form = ~ X + Y))

semivario <- Variogram(model2, form = ~X+Y,resType = "normalized")
plot(semivario, smooth = TRUE)

然后模型输出不会改变,如您所料。没有相关结构产生的半变异函数也是相同的。但是,具有相关结构的新半变异函数是不同的(再次,代码将显示这一点)。

需要明确的是,使用的数据、添加的相关结构和模型输出都是相同的。唯一的区别是每个数据帧中的行顺序。为什么这会导致产生如此不同的半变异函数?是否有“最佳”行顺序?

ps 我之前曾在 Cross Validated 上发布过这个问题,但有人指出这更有可能是 R 问题而不是统计问题。很抱歉重新发布。

4

0 回答 0