[R-sig-Geo] Eigenvalues in Eigenvectors - spatial correlation and spatial instrumental variables
Roger Bivand
Roger.Bivand at nhh.no
Wed Jan 18 20:17:47 CET 2017
On Wed, 18 Jan 2017, jt wrote:
> Hi Everybody,
>
> Recent convert and newcomer. I am interested in exploring the use of
> eigenvalues as synthetic instrumental variables in the manner of Le
> Gallo and Paez (2013).
This appears to be doi:10.1068/a45443, by the way.
> To do this I need to access the actual eigenvalues in eigenvectors. I
> am aware of the 2009 r-sig-geo communication regarding potential to use
> ME() within spdep and the offer of Professor Bivand to add eigenvalues
> as an attribute of the output object when requested.
The link to the thread may be:
https://stat.ethz.ch/pipermail/r-sig-geo/2009-June/005939.html
although I don't see any offer there, what was mentioned was the matrix
of eigenvectors "eV".
> My question is whether this or any other mechanism is available to
> specify eigenvalues within spdep as I do not think this is currently an
> option and I cannot identify the code to implement the adjustment
> offered in 2009?
If the article linked by DOI above is the right one, I think you want
eigenvectors from the doubly centred spatial weights matrix. If you use
dense matrices, you can get them from:
library(spdep)
data(columbus)
W <- nb2mat(col.gal.nb, style="B")
n <- nrow(W)
one <- rep(1, n)
I_11n <- diag(n) - (one %*% t(one))/n
M <- I_11n %*% W %*% I_11n
e <- eigen(M)
str(e)
Use of eigenvectors is only possible for moderate-to-large n (say US
Counties), and as noted in the list thread, a brute force search as
suggested in Le Gallo & Páez is also subject to the same time problems.
The ME case is really for the GLM setting, while the SpatialFiltering
function is closer to your aim of using OLS (or 2SLS).
The article doesn't reference Tiefelsdorf M, Griffith DA. (2007)
Semiparametric Filtering of Spatial Autocorrelation: The Eigenvector
Approach. Environment and Planning A, 39 (5) 1193 - 1221, on which
SpatialFiltering() is based - reducing Moran's I rather than monitoring
fit to choose which eigenvectors to include.
My guess would be that implementations in pure R (like ME and
SpatialFiltering) will see poor performance as n grows, and that for
larger n (larger than 500), you'd need to use C++ via Rcpp and say
RcppEigen or RcppArmadillo.
Hope this clarifies,
Roger
>
> Many Thanks
>
> JimT
> [[alternative HTML version deleted]]
>
> _______________________________________________
> R-sig-Geo mailing list
> R-sig-Geo at 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 at nhh.no
http://orcid.org/0000-0003-2392-6140
https://scholar.google.no/citations?user=AWeghB0AAAAJ&hl=en
http://depsy.org/person/434412
More information about the R-sig-Geo
mailing list