Spatial Panel Models Problem (Splm package)
Hi Roger.
First of all, thank for your help.
Yes, my first two colums are year and id (identification for cities).
I really do not understand, because with the same data I run the regression
in Stata.
There is my full code:
""
# Data
data <- read.xlsx("RJ_database.xlsx", 1, header = TRUE)
panel <- pdata.frame(data, index = c("id", "year"))
time <- length(unique(data$year)) #Salving data time length
pdim(panel)
summary(panel)
poly <- readOGR(dsn ="C:/Users/user/OneDrive/Resource Policy Paper", layer
= "RJ") #Desktop
RJ <- poly2nb(poly)
W <- nb2listw(RJ, style = "W", glist = NULL)
summary(W)
### Kronecker Product
kronecker.W <- listw2dgCMatrix(W)
W_queen2 <- kronecker(Diagonal(time), kronecker.W)
W_queen <- mat2listw(W_queen2, style = "W")
SAR <- spml(gdp ~ oivrev, listw = rjq, model="within", spatial.error= NULL,
lag = TRUE, data=panel)
summary(W_queen)
str(panel)
OLS <- plm(gdp ~ oivrev, model = "within", data = panel)
summary(OLS)
""
And, weird the most is when I run OLS model panel works.
Could you try in your own R to check it out?
Thank you.
On Sat, May 5, 2018 at 7:35 AM, Roger Bivand <Roger.Bivand at nhh.no> wrote:
On Sat, 5 May 2018, felipe tavares wrote: Good evening.
I am trying to estimate a spatial panel data model through splm package. I am facing the error: Error in lag.listw(listw, u, zero.policy = zero.policy) : object lengths differ However, my W matrix is NxN, my y vector is NTx1 and my X matrix is NTxK. My code is: poly <- readOGR(dsn ="C:/Users/fstavares/OneDrive/Resource Policy Paper", layer = "RJ") RJ <- poly2nb(poly) W <- nb2listw(RJ, zero.policy = TRUE, style = "W", glist = NULL) SEM <- spml(gdp ~ oivrev, listw = W, model="within", spatial.error="b", lag=F, data=panel)
Are the first two columns of panel as required (from ?spml):
data: an object of class ?data.frame? or ?pdata.frame?. A data
frame containing the variables in the model. When the object
is a ?data.frame?, the first two columns shall contain the
indexes, unless otherwise specified. See ?index?
From ?index
Panel data are stored in a ?"pdata.frame"? which has an ?"index"?
attribute. Fitted models in ?"plm"? have a ?"model"? element which
is also a ?"pdata.frame"? and therefore also has an ?"index"?
attribute. Finally, each series, once extracted from a
?"pdata.frame"?, becomes of class ?"pseries"?, which also has this
?"index"? attribute. ?"index"? methods are available for all
these objects. The argument ?"which"? indicates which index
should be extracted. If ?which = NULL?, all indexes are extracted.
?"which"? can also be a vector of length 1, 2, or 3 (3 only if the
pdata frame was constructed with an additional group index)
containing either characters (the names of the individual variable
and/or of the time variable and/or the group variable or ?"id"?
and ?"time"?) and ?"group"? or integers (1 for the individual
index, 2 for the time index, and 3 for the group index (the latter
only if the pdata frame was constructed with such).)
and:
str(Produc)
'data.frame': 816 obs. of 11 variables: $ state : Factor w/ 48 levels "ALABAMA","ARIZONA",..: 1 1 1 1 1 1 1 1 1 1 ... $ year : int 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 ... $ region: Factor w/ 9 levels "1","2","3","4",..: 6 6 6 6 6 6 6 6 6 6 ... $ pcap : num 15033 15502 15972 16406 16763 ... $ hwy : num 7326 7526 7765 7908 8026 ... $ water : num 1656 1721 1765 1742 1735 ... $ util : num 6051 6255 6442 6756 7002 ... $ pc : num 35794 37300 38670 40084 42057 ... $ gsp : int 28418 29375 31303 33430 33749 33604 35764 37463 39964 40979 ... $ emp : num 1010 1022 1072 1136 1170 ... $ unemp : num 4.7 5.2 4.7 3.9 5.5 7.7 6.8 7.4 6.3 7.1 ... with the individual column first varying slowly, and the time column second varying within the first column values. Since you do not provide a reproducible example (not your data and code, an example using built-in data), it is hard to know. Hope this clarifies, Roger
Does anyone have faced this problem? I can send database and code, if it somebody can help me.
-- Roger Bivand Department of Economics, Norwegian Sc <https://maps.google.com/?q=Norwegian+Sc&entry=gmail&source=g>hool of Economics, Helleveien 30, N-5045 Bergen, Norway. voice: +47 55 95 93 55; e-mail: Roger.Bivand at nhh.no http://orcid.org/0000-0003-2392-6140 https://scholar.google.no/citations?user=AWeghB0AAAAJ&hl=en
Att, Felipe Tavares Bacharel em Ci?ncias Econ?micas - UFSCar Mestrando em Economia Aplicada - ESALQ/USP Analista Pricing - ALLIED Technology Telefone: (011) 97468-0833 e-mail: ftavares29 at gmail.com f <ftavares29 at usp.br>stavares at alliedbrasil.com.br [[alternative HTML version deleted]]