Valerio:
For a local Moran's I, a randomization approximation is probably not a
good idea since for each permutation, the mean and variance (which are
used to calculated the p-values) of a specific location will change,
which causes the randomized p-values not poolable (in global Moran's
case, however, randomization will not change the global mean and variance).
The p-values will be somewhat inflated (pseudo-significant), a not
significant local autocorrelation might become significant because of
the reuse of the local samples, hence there is a p.adjust() function
with various adjustment options. I would be very reluctant to use a
non-adjusted p-value to judge for local significance. Depending on your
data and research, you could choose one that suits your purpose the best
(or try a few and see which ones make more sense as in an exploratory way).
Hope this helps.
Danlin Yu
Valerio Bartolino ??:
Dear list,
I've the objective to identify hotspot areas from a model prediction
over a high resolution grid. After calculating a spatial weight object I
easily applied the localmoran function from the spdep library. It's not
really clear to me the meaning of the p-values associated to the
localmoran function and how much I can rely on them in terms of
statistical significance. For instance can I use these p-values instead
using a randomization approach? I would be glad for any clarification.
Moreover, I want to calculate a statistical significance also through a
randomization approach (commonly used with Moran's I statistic). The
idea behind the randomization is rather simple, and also coding doesn't
seem too difficult, but the identified hotspots appear larger and
disaggregated respect those identified looking at the p-values provided
by the localmoran function at a similar significant level.
Did I do some mistake in the following code I wrote for the permutation?
Thanks for any advice, explanation or comment you will have
Valerio Bartolino
###########################################
require(spdep)
locMoranI.perm <- function(x, R, listw, ...){
# x is a vector of the values on which to calculate the MoranI statistic
# R, listw, ... are all the arguments passed to the localmoran function
mat <- matrix(data=NA, nrow=R, ncol=length(x))
for(i in 1:R){
perm <- sample(x, replace=F)
I.locmor <- localmoran(perm, listw, ...)
mat[i,] <- I.locmor[,1]
rm(I.locmor)
rm(perm)
}
return(mat)
}
# I used this new function as follow:
nsim <- 1000
I.perm <- locMoranI.perm(z, R=nsim, listw=nbw)
MorI <- localmoran(z, listw=nbw)
# select for instance a 0.01 pseudo-significance level
p.perm <- apply(I.perm, 2, quantile, probs=0.99)
## because I-Moran identify spatial clustering
## high and low hotspots have no distinct I values
## make a vector to distinguish significant and high hotspots
hot <- ifelse(p.perm-MorI[,1]<0 & z>mean(z),1,0)
_______________________________________________
R-sig-Geo mailing list
[email protected]
https://stat.ethz.ch/mailman/listinfo/r-sig-geo
--
___________________________________________
Danlin Yu, Ph.D.
Assistant Professor
Department of Earth & Environmental Studies
Montclair State University
Montclair, NJ, 07043
Tel: 973-655-4313
Fax: 973-655-4072
email: [email protected]
webpage: csam.montclair.edu/~yu
_______________________________________________
R-sig-Geo mailing list
[email protected]
https://stat.ethz.ch/mailman/listinfo/r-sig-geo