Thank you very much for your response. Yes indeed it clarifies and helps a lot. Kind regards, Gabriel Cotlier
On Mon, Oct 25, 2021 at 12:00 PM Roger Bivand <roger.biv...@nhh.no> wrote: > On Sat, 23 Oct 2021, Gabriel Cotlier wrote: > > > Hello, > > > > I would like to estimate the pseudo p-value of Moran's I from raster data > > layer, by converting it to polygon data in order to be able to directly > use > > the function spdep::mc.moran() and getting in one step not only value of > > Moran'sI but its statistical significance without using other simulations > > but only that in the funcion spdep::mc.moran() as an alternative I have > > used the code below. However, since with the initial version of the code > I > > got several errors such as : > > > > Error in moran. mc(My_raster, lw.l, 999) : r is not a numeric vector > > > > So I converted "r" to a vector using as.vector() in : > > > > M <- moran.mc(as.vector(r), lw.l, 999) > > First, if you have the spatial weights object lw.l, spdep::moran.test(), > using analytical rather than bootstrap inference, is almost certainly more > efficient, and yields almost always the same outcome with > randomisation=TRUE. > > > > > However then appeared another the error: > > > > Error in na.fail.default(x) : missing values in object > > > > Please see the na.action= argument to moran.mc() and moran.test(); the > default is na.fail, but can be na.exclude, which then also subsets the > listw spatial weights object. You can also subset l before creating the > neighbour object: > > library(raster) > library(spdep) > r <- raster(nrows=10, ncols=10) > values(r) <- c(1:(ncell(r)-1), NA) > l <- rasterToPolygons(r, na.rm=TRUE) # note that this subsets by default > dim(l) # [1] 99 1 > nb.l <- poly2nb(l, queen=FALSE) > nb.l # here no no-neighbour observations, no need for zero.policy= > lw.l <- nb2listw(nb.l, style="W") > moran.test(l$layer, lw.l) # default randomisation=TRUE > > > > > Finally these errors disappeared with the following version of the code-- > > see below -- the version of the code below runs OK--unless for the input > > raster I have used-- with no more errors or problems. > > > > Because rasterToPolygons() removes NA observations by default. > > Hope this clarifies, > > Roger > > > Therefore my question is : if instead of using arguments of the function > > spdep::mc.moran() such as na.action = na.omit or other --which I have > tried > > and could not make work-- is it a valid way to solve the above errors in > > the way as presented in the code below? > > > > I would appreciate it a lot if there is a possibility of knowing what > could > > be wrong in the code below? > > > > I suspect it could be possible the problem is related to the way in which > > the raster data layer is converted to polygon data im the code to be > > input to the function spdep::mc.moran() , but will appreciate any > guidance > > and assistance in the issue to get working in the correct manner. > > > > Thanks a lot. > > Kind regards, > > > > ################### Estimate of Moran's I and its p-value from a raster > > layer ################################## > > library(raster) > > library(spdep) > > library(easycsv) > > > > rm(list = ls()) > > > > r<- raster(file.choose()) > > l <- rasterToPolygons(r) > > > > nb.l <- poly2nb(l, queen=FALSE) > > lw.l <- nb2listw(nb.l, style="W",zero.policy=TRUE) > > > > v<-r[!is.na(r)] > > M <- moran.mc((v), lw.l, 999, zero.policy=TRUE) > > M > > > > plot(M, main=sprintf("Original, Moran's I (p = %0.3f)", M$p.value), > > xlab="Monte-Carlo Simulation of Moran I", sub =NA, cex.lab=1.5, > > cex.axis=1.5, cex.main=1.5, cex.sub=1.5) > > abline(v=M$statistic, col="red", lw=2) > > dev.off() > > > ################################################################################################ > > > > > > -- > Roger Bivand > Emeritus Professor > Department of Economics, Norwegian School of Economics, > Postboks 3490 Ytre Sandviken, 5045 Bergen, Norway. > e-mail: roger.biv...@nhh.no > https://orcid.org/0000-0003-2392-6140 > https://scholar.google.no/citations?user=AWeghB0AAAAJ&hl=en > -- Gabriel Cotlier, PhD Haifa Research Center for Theoretical Physics and Astrophysics (HCTPA) University of Haifa Israel [[alternative HTML version deleted]] _______________________________________________ R-sig-Geo mailing list R-sig-Geo@r-project.org https://stat.ethz.ch/mailman/listinfo/r-sig-geo