[R-sig-Geo] inference of local Gi* using permutations

Jay Wang zw@ng3603 @end|ng |rom gm@||@com
Thu Mar 7 17:11:50 CET 2019


Thank you for the detailed explanation. Sorry for missing the explanation
of res. It is an n by nsim+1 matrix where the n columns are the permutation
results using sample() and the last column is the actual z values of G_i*s.
The following line of code was modified to do the permutations: (i in
1:nsim) res[i] <- moran(sample(x), listw, n, S0, zero.policy)$I. This could
be wrong since the sample() does not fix the value of interest at i. Are
there any functions in R can do this in a correct way? How do we calculate
the p-values after we get the n by nsim matrix? Thank you!


On Thu, Mar 7, 2019 at 8:05 AM Roger Bivand <Roger.Bivand using nhh.no> wrote:

> 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 using 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 using nhh.no
> https://orcid.org/0000-0003-2392-6140
> https://scholar.google.no/citations?user=AWeghB0AAAAJ&hl=en
>

	[[alternative HTML version deleted]]



More information about the R-sig-Geo mailing list