inference of local Gi* using permutations
On Wed, 6 Mar 2019, Jay Wang wrote:
Hello,
I am currently using the localG () in spdep package, I was wondering if we
can have a conditional permutation-based inference to get the P value for
every Gi*. I saw that a Mote Carlo simulation is used in Moran.MC(), and I
borrowed the following codes from this function and tried to see if I can
do a permutation for localG():
pvals<-matrix(0, nrow = V, ncol = 1)
for (i in 1:V){
rankresi<-rank(res[i, ])
xranki <- rankresi[length(res[i, ])]
diffi <- nsim - xranki
diffi <- ifelse(diffi > 0, diffi, 0)
pvali <- punif((diffi + 1)/(nsim + 1))
pvals[i,]<-pvali
}
Monte Carlo or Hope type tests or permutation bootstraps work like analytical permutation in the global case, and are redundant for that reason. Monte Carlo (conditional permutation) in the local case requires that there is no global autocorrelation or other mis-specifications. Your code snippet is not an example, and I think is not how permutation is actually done. In the local case in ArcGIS, GeoDa, etc., you fix the value of interest at i, randomly re-assign all the values to the other observations, and recompute the local indicator at i, doing this say 499 times. Then you move on to the next i, and repeat. In your snippet, we cannot see where res is coming from. Is this an n by nsim matrix from nsim runs? Might you be needing to compare the sample values with the observed value? If you are outputting Z-values of G_i anyway, you may need to step back to the actual G_i (here from spdep): attr(localG(..., return_internals=TRUE), "internals")[,1] Then mns <- apply(res, 1, mean) sds <- apply(res, 1, sd) permZ <- (obs_localG - mns)/sds are z values that can be considered as drawn from the normal. However, I advise against inference unless the assumptions are met, and p-values must be adjusted anyway. Roger
After running these codes with several different datasets, I found that all the negative Gi*s have very high P values say 0.999 with 999 permutations, meaning that there are no significant cold spots. Where is the problem? How can we do conditional permutation-based inference for localG() with R spdep? I understand the critics of permutation-based inference for local indicators, but I just want to explore this. Thank you! Best [[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 https://orcid.org/0000-0003-2392-6140 https://scholar.google.no/citations?user=AWeghB0AAAAJ&hl=en