在使用空间数据创建混合模型时,您需要检测并考虑空间自相关。这似乎通常通过合并相关结构来完成,然后检查混合模型半变异函数的改进。在下面的示例中,我在此示例中使用 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 问题而不是统计问题。很抱歉重新发布。