【问题标题】:How to estimate spatial SAR model with islands?如何估计带岛屿的空间 SAR 模型?
【发布时间】:2020-06-08 17:00:50
【问题描述】:

我正在尝试使用 lagsarlm 命令估计空间 SAR 模型,但出现以下错误:

lagsarlm (f1, data = df, spatialList, tol.solve = 1e-30) 中的错误: 滞后因变量中的 NA 另外:警告信息: 在 lag.listw(listw, y, zero.policy = zero.policy) 中:滞后值中的 NAs

显然,这是因为我有岛屿(与任何其他观察无关的观察)。如果我在不创建岛的情况下运行以下代码(通过删除 W[1,1:50]

library(spdep)
library(spatialreg)
library(sna)

set.seed(123)

W <- rgraph(50, m=1, tprob=0.1, mode="graph", diag=FALSE)
W[1,1:50] <- 0

spatialList <- mat2listw(W)

y <- rnorm(50)
x <- rnorm(50)

df <- cbind.data.frame(y,x)

f1 <- y ~ x

m2s = lagsarlm(f1, data=df, spatialList, tol.solve=1.0e-30)

这只是一个玩具示例。鉴于我的真实矩阵有几个岛,关于如何进行估计有什么想法吗?

非常感谢

【问题讨论】:

    标签: r spatial spdep


    【解决方案1】:

    lagsarlm 函数有一个 zero.policy 参数,默认为 FALSE,这意味着如果数据中有零并且您忽略此参数,该函数将终止并出现错误。所以,把它改成TRUE

    m2s = lagsarlm(f1, data=df, spatialList, tol.solve=1.0e-30, zero.policy=TRUE)
    m2s
    

    Call:
    lagsarlm(formula = f1, data = df, listw = spatialList, zero.policy = TRUE, 
        tol.solve = 1e-30)
    Type: lag 
    
    Coefficients:
             rho  (Intercept)            x 
    -0.007533119  0.209226752  0.058315953 
    
    Log likelihood: -71.21548
    

    从帮助页面:

    zero.policy
    默认 NULL,使用全局选项值;如果 TRUE 分配 如果为 FALSE,则为零到没有邻居的区域的滞后值 (默认)分配 NA - 导致 lagsarlm() 以错误终止

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-02
      • 2023-03-28
      • 1970-01-01
      • 2014-05-24
      • 1970-01-01
      相关资源
      最近更新 更多