[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