[R-sig-Geo] Help with running spatial lag model

Roger Bivand Roger.Bivand at nhh.no
Wed Aug 1 22:18:43 CEST 2012


On Wed, 1 Aug 2012, Shishir Mathur wrote:

> Hello All:
>
>
>
> I am working on parcel-level housing dataset to estimate the impact of
> various variables on home sale prices (N is approx. 90,000).
>
> I created the spatial weight metrics using sale year of four nearest houses
> to assign weights.  Next, I ran LM tests and the spatial lag and error
> models using spdep package.
>
> I get the following error message when I try to run spatial lag or error
> models using the method "eigen".
> Error in matrix(0, nrow = n, ncol = n) : too many elements specified
>
> The code is:
>> fecurrentcombinedlag <-lagsarlm(fecurrentcombined, data = spssall,
> lw_test2.csv, na.action=na.fail, type="lag", method="eigen", quiet=TRUE,
> zero.policy=FALSE, interval = c(-1, 0.999), tol.solve=1.0e-20)
>
>
>
> Since the dataset is large, I replaced "eigen" with "LU" or "MC".  However,
> I get the following error:
>
>
>
> Error in validObject(.Object) :
>  invalid class "dgRMatrix" object: slot j is not increasing inside a
> column

You are importing the k-nearest neighbour weights into R. Please do not do 
that. For some purposes it appears to work, but almost certainly the 
sparse representation is not in the order required by functions in the 
Matrix package. Generate the same weights using knn2nb(knearneigh()) in 
spdep, or in Matlab or (open)GeoDa and import them from those versions.

Roger

>
> The traceback results are:
>
> 10: stop(msg, " ", errors, domain = NA)
> 9: validObject(.Object)
> 8: initialize(value, ...)
> 7: initialize(value, ...)
> 6: new("dgRMatrix", j = z[[1]], p = p0, Dim = as.integer(c(n, n)),
>       x = z[[2]])
> 5: as_dgRMatrix_listw(get("listw", envir = env))
> 4: .class1(object)
> 3: as(as_dgRMatrix_listw(get("listw", envir = env)), "CsparseMatrix")
> 2: LU_setup(env)
> 1: lagsarlm(fecurrentcombined, data = spssall, listw = lw_test2.csv,
> na.action = na.fail, type = "lag", method = "LU", quiet = TRUE,
> zero.policy = FALSE, interval = c(-1, 0.999), tol.solve = 1e-20)
>
> The code for creating listw, and the listw summary are as follows:
>
>
>
> test2.csv <- read.csv("C:/TIFArticle/KC Exisiting Housing/EHspwt.csv")
>
> class(test2.csv) <- c("spatial.neighbour", class(test2.csv))
>
> of <- ordered(test2.csv$OID)
>
> attr(test2.csv, "region.id") <- levels(of)
>
> test2.csv$OID <- as.integer(of)
>
> test2.csv$NID <- as.integer(ordered(test2.csv$NID))
>
> attr(test2.csv, "n") <- length(unique(test2.csv$OID))
>
>
>
> lw_test2.csv <- sn2listw(test2.csv)
>
> lw_test2.csv$style <- "W"
>
> lw_test2.csv
>
>
>
>
>
> Characteristics of weights list object:
>
> Neighbour list object:
>
> Number of regions: 87223
>
> Number of nonzero links: 348892
>
> Percentage nonzero weights: 0.004585946
>
> Average number of links: 4
>
> Non-symmetric neighbours list
>
>
>
> Weights style: W
>
> Weights constants summary:
>
>      n         nn    S0       S1       S2
>
> W 87223 7607851729 87223 27790.89 368025.1
>
>
>
>
> Million thanks in advance for your help.
> Shishm
>
> 	[[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, NHH Norwegian School of Economics,
Helleveien 30, N-5045 Bergen, Norway.
voice: +47 55 95 93 55; fax +47 55 95 95 43
e-mail: Roger.Bivand at nhh.no



More information about the R-sig-Geo mailing list