On Mon, 16 Aug 2010, Malcolm Fairbrother wrote:

Good evening,

I'm trying to use "impacts" from package spdep, to get the impacts of unit changes in the independent variables, based on a fitted "lagsarlm" model. However, I'm running into two problems:

First, when I call "impacts", I get an error message that my weights are not row-standardised, when in fact they are. I can deal with this problem by coercing obj$listw_style to "W", but I'm wondering why this is happening at all.

You are creating the listw object with mat2listw(). This does not try to set the correct style, but assigns "M". To be sure that row standardisation is imposed, do:

oxw.listw0 <- mat2listw(as.matrix(oxw))
oxw.listw <- nb2listw(oxw.listw0$neighbours, glist=oxw.listw0$weights,
 style="W")

which also does sanity checks.


Second, when I try to run simulations to generate estimates of the uncertainties for the estimates of the impacts, "impacts" seems not to acknowledge "R", and simply returns the estimates without any uncertainty. Can anyone tell me what I'm doing wrong (i.e., how I can get a series of simulations instead)?

No, please note the difference between the print() and summary() methods for objects returned by impacts() methods - see the ?impacts help page, and especially the eamples at the foot. You need:

imps <- impacts(lagmod, R=100, listw=oxw.listw)
summary(imps)

possibly with additional arguments to summary(), to have the simulations printed.

Hope this helps,

Roger



The code I'm using is below.

Many thanks in advance for any assistance.

- Malcolm


oxw <- oxw/apply(oxw, 1, sum) # this is the weights matrix

table(apply(oxw, 1, sum)==1, useNA="always") # confirming rows sum to 1
TRUE <NA>
 48    0

oxw.listw <- mat2listw(as.matrix(oxw)) # seems OK

lagmod <- lagsarlm(ben95 ~ rskpovpc +wage95 + instcoad + ipcfold + teitrend + match, 
data=ox, listw=oxw.listw, method="eigen", tol.solve=1.0e-11) # seems OK

impacts(lagmod, listw=oxw.listw)
Error in impacts.sarlm(lagmod, listw = oxw.listw) :
 Only row-standardised weights supported

lagmod$listw_style <- "W" # coercing to a different "style"

impacts(lagmod, listw=oxw.listw) # results make sense
Impact measures (lag, exact):
            Direct     Indirect        Total
rskpovpc   3.953047   3.81574967   7.76879705
wage95    -0.027922  -0.02695221  -0.05487421
instcoad   1.566704   1.51228867   3.07899227
ipcfold  487.134198 470.21499459 957.34919259
teitrend   2.654201   2.56201450   5.21621501
match     -5.894235  -5.68951544 -11.58375015

impacts(lagmod, R=100, listw=oxw.listw) # doesn't run sims...
Impact measures (lag, exact):
            Direct     Indirect        Total
rskpovpc   3.953047   3.81574967   7.76879705
wage95    -0.027922  -0.02695221  -0.05487421
instcoad   1.566704   1.51228867   3.07899227
ipcfold  487.134198 470.21499459 957.34919259
teitrend   2.654201   2.56201450   5.21621501
match     -5.894235  -5.68951544 -11.58375015

_______________________________________________
R-sig-Geo mailing list
[email protected]
https://stat.ethz.ch/mailman/listinfo/r-sig-geo


--
Roger Bivand
Economic Geography Section, Department of Economics, Norwegian School of
Economics and Business Administration, Helleveien 30, N-5045 Bergen,
Norway. voice: +47 55 95 93 55; fax +47 55 95 95 43
e-mail: [email protected]

_______________________________________________
R-sig-Geo mailing list
[email protected]
https://stat.ethz.ch/mailman/listinfo/r-sig-geo

Reply via email to