[R-sig-Geo] problem in moran tes

maria jesus herrerias mjherrer|@@t @end|ng |rom gm@||@com
Fri Oct 8 16:10:10 CEST 2021


Dear list,

I have a panel data and I would like to test if the spatial dependence is
an issue. However, I am getting this error:
#ERROR
Error in nb2listw(sub.queen.nb$neighbours, style = "W", zero.policy = TRUE)
:
  Not a neighbours list

Below I report my code to see if somebody can help me on this matter:

#Spatial Dependence for Panel 32 regions from 1990-2014

# The Spatial Matrix
# Read the shapefile and set up the working directory.
library(foreign)
library(haven)


setwd("C:/Users/Usuario/Desktop/instituciones/revision energy
economics/docs enviados/spatial test")

x <- read.dta("C:/Users/Usuario/Desktop/instituciones/revision energy
economics/docs enviados/spatial test/high_spatial.dta")

# Matching with stata file and shapefile by ID

dta_cntries <- unique(x$OBJECTID)

library(sf)

wrld <- st_read("C:/Users/Usuario/Desktop/instituciones/revision energy
economics/spatial panel in
stata/Longitude_Graticules_and_World_Countries_Boundaries-shp/countries1.shp")
wrld_a <- aggregate(wrld, list(wrld$OBJECTID), head, n=1)


o <- match(dta_cntries, wrld_a$OBJECTID)

#Check if matching is right

The Stata file has two non-matching names (left ccode stata, right names in
map shapefile):

which(is.na(o))

o <- match(dta_cntries, wrld$OBJECTID)
o

library(spdep)
row.names(wrld_a) <- wrld_a$OBJECTID
nb <- poly2nb(wrld_a)
nb1 <- subset(nb, 1:nrow(wrld_a) %in% o)

#high
Neighbour list object:
Number of regions: 32
Number of nonzero links: 82
Percentage nonzero weights: 8.007812
Average number of links: 2.5625

wrld_s <- wrld_a[1:nrow(wrld_a) %in% o,]
nb2 <- poly2nb(wrld_s)
all.equal(nb1, nb2, check.attributes=FALSE)
[1] TRUE  # subsetting well-done

***********************************
# Queen Matrix
sub.worlddata <-wrld_s
sub.queen.nb <- poly2nb(sub.worlddata, queen=TRUE)
length(sub.queen.nb)  #32
summary(sub.queen.nb)
sub.queen.listw <-nb2listw(sub.queen.nb,zero.policy = TRUE)
summary(sub.queen.listw,zero.policy = TRUE)
head(sub.queen.nb)
*********************************


# Prepare the dataset for panel data analysis in R.

library(plm)

setwd("C:/Users/Usuario/Desktop/instituciones/revision energy
economics/code and data/quantile")

high <- read.dta("C:/Users/Usuario/Desktop/instituciones/revision energy
economics/docs enviados/spatial test/high_spatial.dta")


mydata <- pdata.frame(high, index = c("OBJECTID", "year"))
**************************************
#Variables.

energy <- mydata$leic
gdp <- mydata$lgdppcnewc
gdp2 <- mydata$lgdppcnewc2
fdi <- mydata$fdigc
imports <- mydata$importsgc
industry <- mydata$industrygc
inst.1 <- mydata$kun_legabsc

**********************************
#Define formula

model.1 <- energy ~ gdp + gdp2 + fdi + imports + industry + inst.1

********************
# Testing spatial autocorrelation
library(spatialreg)

ols.eq1 <- lm(model.1, data = mydata)
summary(ols.eq1)
**********************************

lmMoranTest <- lm.morantest(ols.eq1,nb2listw(sub.queen.nb$neighbours,
style="W",zero.policy = TRUE))
lmMoranTest

#ERROR
Error in nb2listw(sub.queen.nb$neighbours, style = "W", zero.policy = TRUE)
:
  Not a neighbours list

library(spdep)

lmLMtests <- lm.LMtests(ols.eq1,nb2listw(sub.queen.nb), test=c("LMerr",
"LMlag", "RLMerr", "RLMlag", "SARMA"))
lmLMtests

#ERROR
Error in nb2listw(sub.queen.nb$neighbours, style = "W", zero.policy = TRUE)
:
  Not a neighbours list

Many thanks

Best wishes,
Maria Jesus

	[[alternative HTML version deleted]]



More information about the R-sig-Geo mailing list