[R-sig-Geo] Error in lag.listw(listw2, u) : Variable contains non-finite values - panel spatial model using splm

Roger Bivand Roger@B|v@nd @end|ng |rom nhh@no
Tue Jun 11 16:04:52 CEST 2019


On Tue, 11 Jun 2019, marcomellom using libero.it wrote:

> Dear Roger,
>
> many thanks for your help. Actually the issue was exactly the 
> zero.policy option. I solved this by imposing 
> spdep::set.ZeroPolicyOption(TRUE). Now the estimation works. This 
> solution should apply to all weighting matrices having rows with all 
> zeros, i.e. neighbourless observations.
>

OK, good, my memory isn't so bad after all ...

> I notice however that results are different between those obtained if we 
> estimate the model with both individual and time fixed effects by 
> setting effect="twoways" and those obtained by estimating the model with 
> just one type of fixed effect (e.g. effect="individual") and adding the 
> other ones by hand in the formula.
>
> I will add a reproducible example using the Produc dataset to show this 
> issue.
>

Thanks for the example, I've CC'ed the splm maintainer to elicit more 
insight.

Roger

>
>
>
>
> library(plm)
> library(spdep)
> library(splm)
>
> data(Produc, package = "plm")
> data(usaww)
>
> ##effect="twoways"
>
> fespaterr <- spml(log(gsp) ~ log(pcap) + log(pc) + log(emp) + unemp, data = Produc, listw = mat2listw(usaww),
> model="within",lag=T,effect = "twoways", spatial.error="b", Hess = FALSE)
>
> summary(fespaterr)
>
> ##effect="individual" and time fixed effects by hand
>
> fespaterr <- spml(log(gsp) ~ log(pcap) + log(pc) + log(emp) + unemp + factor(year), data = Produc, listw = mat2listw(usaww),
> model="within",lag=T,effect = "individual", spatial.error="b", Hess = FALSE)
>
> summary(fespaterr)
>
> ##effect="time" and individual fixed effects by hand
>
> fespaterr <- spml(log(gsp) ~ log(pcap) + log(pc) + log(emp) + unemp + factor(state), data = Produc, listw = mat2listw(usaww),
> model="within",lag=T,effect = "time", spatial.error="b", Hess = FALSE)
>
> summary(fespaterr)
>
>
>
>
>
> Is this correct?
>
> In this example the coefficients are just slightly different between the three specifications. In my case however, with T=2, these three specifications provide completely different results.
>
> Thank you again for your help,
>
> Marco
>
>
>
>>
>>     Il 10 giugno 2019 alle 19.42 Roger Bivand <Roger.Bivand using nhh.no> ha scritto:
>>
>>     On Mon, 10 Jun 2019, Marco Mello via R-sig-Geo wrote:
>>
>>        >>
>>>         Dear community,
>>>
>>>    >
>>     Please post plain text, not HTML, easier to copy and paste into an R
>>     session.
>>
>>    >
>>
>>        >>
>>>         I am working on a panel spatial model in R using the package splm. In
>>>         particular I am trying to estimate the following model
>>>
>>>         spatpan<-spml(y ~ x, data = data_p, index = NULL, listw = W30, na.action
>>>         = na.fail, lag = TRUE, spatial.error = "b", model = "within", effect =
>>>         "twoways",zero.policy=TRUE)
>>>
>>>         but I get the following error and warnings:
>>>
>>>         Error in lag.listw(listw2, u) : Variable contains non-finite values
>>>         In addition: Warning messages:
>>>         1: In lag.listw(listw, u) : NAs in lagged values
>>>         2: In lag.listw(listw, u) : NAs in lagged values
>>>         3: In lag.listw(listw2, u) : NAs in lagged values
>>>         4: In lag.listw(listw2, u) : NAs in lagged values
>>>
>>>    >
>>     This is not a reproducible example. Such an example is needed unless you
>>     can run traceback() and debug() yourself to solve the problem, but since
>>     you have posted, I assume you prefer that someone else runs debug() - and
>>     someone will then need a reproducible example, preferably with an adapted
>>     standard dataset (add NAs to Produc?).
>>
>>     I seem to recall that zero.policy= was not always passed through in some
>>     model fitting functions, possibly in splm. If so, set the option with
>>     spatialreg::set.ZeroPolicyOption(TRUE) and/or
>>     spdep::set.ZeroPolicyOption(TRUE)
>>     to avoid that issue if it is present and biting. Of course, had I had a
>>     reproducible example, I could have checked and given clearer advice.
>>
>>    >
>>
>>        >>
>>>         Similarly, if I model the spatial correlation only for the error term,
>>>
>>>         spatpan<-spml(y ~ x, data = data_p, index = NULL, listw = W30, na.action
>>>         = na.fail, lag = FALSE, spatial.error = "b", model = "within", effect =
>>>         "twoways",zero.policy=TRUE)
>>>
>>>         I get the following warnings
>>>
>>>         1: In lag.listw(listw, u) : NAs in lagged values
>>>
>>>         ...
>>>
>>>         3: In lag.listw(listw, TT) : NAs in lagged values
>>>
>>>         ...
>>>
>>>         35: In optimize(sarpanelerror, interval = interval, maximum = TRUE, ... :
>>>         NA/Inf replaced by maximum positive value
>>>
>>>         ...
>>>
>>>         In this case however the model turns out to be estimated, despite the
>>>         standard errors are everywhere NAs and the spatial rho coefficient equal
>>>         to 1 with weird t stats and p-values.
>>>
>>>         An identical problem to mine was already signalled in this mailing list,
>>>         unfortunately without receiving any suggestion :
>>>         http://r-sig-geo.2731867.n2.nabble.com/problems-using-spml-with-a-listw-where-not-everybody-has-a-neighbour-td7587857.html.
>>>
>>>    >
>>     Nabble is only an archive, the real link is:
>>
>>     https://stat.ethz.ch/pipermail/r-sig-geo/2015-March/022428.html
>>
>>     The posting also gave no reproducible example, so nobody had anything to
>>     work on.
>>
>>     Hope this helps,
>>
>>     Roger
>>
>>    >
>>
>>        >>
>>>         I guess that the issue could be due to the n by n spatial weighting
>>>         matrix W30, which contains some neighbourless observations. However this
>>>         feature should be taken into account by the zero.policy option. Moreover
>>>         the same framework perfectly works in the cross-sectional case, by using
>>>         the function sacsarlm from the package spdep.
>>>
>>>         Please, does anybody know what is causing this and how can I solve this
>>>         issue? Any help would be really appreciated.
>>>
>>>         Kind Regards,
>>>
>>>         Marco Mello
>>>
>>>         [[alternative HTML version deleted]]
>>>
>>>         _______________________________________________
>>>         R-sig-Geo mailing list
>>>         R-sig-Geo using r-project.org
>>>         https://stat.ethz.ch/mailman/listinfo/r-sig-geo
>>>
>>>    >
>>     --
>>     Roger Bivand
>>     Department of Economics, Norwegian School of Economics,
>>     Helleveien 30, N-5045 Bergen, Norway.
>>     voice: +47 55 95 93 55; e-mail: Roger.Bivand using nhh.no
>>     https://orcid.org/0000-0003-2392-6140
>>     https://scholar.google.no/citations?user=AWeghB0AAAAJ&hl=en https://scholar.google.no/citations?user=AWeghB0AAAAJ&hl=en
>>
>

-- 
Roger Bivand
Department of Economics, Norwegian School of Economics,
Helleveien 30, N-5045 Bergen, Norway.
voice: +47 55 95 93 55; e-mail: Roger.Bivand using nhh.no
https://orcid.org/0000-0003-2392-6140
https://scholar.google.no/citations?user=AWeghB0AAAAJ&hl=en



More information about the R-sig-Geo mailing list