Как оценить пространственную модель SAR без нормализации строки матрицы? - PullRequest
0 голосов
/ 27 февраля 2020

Я пытаюсь оценить пространственную модель SAR без нормализации строки матрицы. По какой-то причине, когда я не нормализую строки, команда не возвращает правильные оценки. Я что-то упускаю в опциях команды?

Вот пример того, что я имею в виду.

Если я запускаю следующий код, моделирующий данные с помощью нормализованной строки матрицы, lagsarlm возвращает правильные оценки:

set.seed(20100817)

rho <- .5
B <- c(2, 5)
e <- as.matrix(rnorm(100, sd=2))
X0 <- matrix(1, ncol=1, nrow=100) # create Intercept
X1 <- matrix(runif(100, min = -10, max = 10), nrow=100) # generate covariate
Xbe <- X0*B[1]+X1*B[2]+e
I <- diag(100)

W <- rgraph(100, m=1, tprob=0.1, mode="graph", diag=FALSE) #assume I need to start with a matrix of relationships
spatialList <- mat2listw(W)
nb7rt <- spatialList$neighbours
listw <- nb2listw(nb7rt)
W <- nb2mat(nb7rt)

y <- solve(I - rho*W) %*% Xbe

model <- lagsarlm(y ~ X1, listw=listw) 
summary(model) 

Однако, если я попытаюсь сделать то же самое, но без нормализации строки, результаты будут неправильными:

set.seed(20100817)

rho <- .5
B <- c(2, 5)
e <- as.matrix(rnorm(100, sd=2))
X0 <- matrix(1, ncol=1, nrow=100) # create Intercept
X1 <- matrix(runif(100, min = -10, max = 10), nrow=100) # generate covariate
Xbe <- X0*B[1]+X1*B[2]+e
I <- diag(100)

W <- rgraph(100, m=1, tprob=0.1, mode="graph", diag=FALSE) #assume I need to start with a matrix of relationships
spatialList <- mat2listw(W, style ="B")
nb7rt <- spatialList$neighbours
listw <- nb2listw(nb7rt, style="B")
W <- nb2mat(nb7rt, style="B")

y <- solve(I - rho*W) %*% Xbe

model <- lagsarlm(y ~ X1, listw=listw) 
summary(model) 

Основание для этого кода можно найти здесь https://stat.ethz.ch/pipermail/r-sig-geo/2010-August/009023.html.

...