Followup on my questions concerning R + spdep:
I used dnearneigh() instead of knearneigh() to get the point point relationships I wanted.
The old version looked like this:
http://users.pandora.be/requested/thesis/oldconnections.png
notice the sparse connection pattern between the points, certainly in the centre.
I used dnearneight() to change this into this:
http://users.pandora.be/requested/thesis/connections.png
so the center points get more connections/interactions.
all ok, for the weights... but as before the weights are relative to the connection and not to the distance and the connection. A consequence from a binary spatial connectivity matrix I presume. nbdists() gives me a matix of all the distances in the neighbourhood directions but I can't use them to be a relative measure to convert the old weights into distance weighted ones.
Question is, what's the influence of this on the final result?
Old results:
Moran's I test under normality
Moran I statistic standard deviate = 0.2911, p-value = 0.771
alternative hypothesis: two.sided
sample estimates:
Moran I statistic Expectation Variance
-0.03762590 -0.08333333 0.02464896New results with the same data and a new weights matrix:
data: a1$data weights: a1.listw
Moran's I test under normality
Moran I statistic standard deviate = 0.3303, p-value = 0.7412
alternative hypothesis: two.sided
sample estimates:
Moran I statistic Expectation Variance
-0.03703572 -0.08333333 0.01964896Moran's I test under randomisation
Moran I statistic standard deviate = 0.3305, p-value = 0.741
alternative hypothesis: two.sided
sample estimates:
Moran I statistic Expectation Variance
-0.03703572 -0.08333333 0.01962520Monte-Carlo simulation of Moran's I
number of simulations + 1: 1000
statistic = -0.037, observed rank = 673, p-value = 0.327 alternative hypothesis: greater
You can see that the p-value drops over normal, random to the MC simulation.
But I don't come to a significant difference between the statistic and the expected value. I think I can conclude that in this case there is a slight to zero spatial autocorrelation between samples and this could as well been a set of data sampled at random in this particular plot.
Just for the record: I don't see the difference between what is done in the test under randomisation and the test using MC simulation.
As I may quote:
"With a Monte Carlo test the significance of an observed test statistic is assessed by comparing it with as a sample of test statistics obtained by generating random samples using some assumed model. If the assumed model implies that all data orderings are equally likely then this amounts to a randomisation test with random sampling of the randomisation distribution" - "Brian F. J. Manly - Randomization, bootstrap and monte carlo methods in biology"
But this last one is something for the people who wrote the code I think.
Any comments, would be appreciated... It's uncharted territory for me so..
Best regards,
Koen.
------- Forwarded message ------- From: Roger Bivand <[EMAIL PROTECTED]> To: Koen Hufkens <[EMAIL PROTECTED]> Subject: Re: AI-GEOSTATS: Moran's I Date: Sun, 14 Mar 2004 17:43:53 +0100 (CET)
On Sun, 14 Mar 2004, Koen Hufkens wrote:
Hi list,
I have some coding and theoretical questions regarding the Moran's I index
and the R + spdep packages.
- To illustrate the situation of the sampling plot:
http://users.pandora.be/requested/thesis/a1grid.gif (coordinates in lat lon projection, point size representative for sample value)
- The data distribution:
http://users.pandora.be/requested/thesis/hista1.gif (haven't tested for normality yet)
First, thanks for including links to your figures, makes helping easier.
=> My method to get my Moran's I index in R + spdep:
a1.knn <- knearneigh(a1$coords, k=4, lonlat=TRUE) #with a1$coords the latlon coords out of a geoR geodata file
a1.nb <- knn2nb(a1.knn) # conversion to nb object
a1.listw <- nb2listw(a1.nb) # conversion to listw object, requested for moran.test()
Note that you have called nb2listw() with the default style, which is
row-standardised ("W") - so with 4 neighbours for each object, all thw
weights will be 1/4. With style="B", the weights would all be 1. This
isn't a full analogy of a rook pattern, because those around the edges
will already be queen style or more. Look at plot(a1.nb, a1$coords) to see
this.
Well, looking at your figure (just eyeballing), there are quite a lot of
results <- moran.test(a1$data, a1.listw, randomization=FALSE, alternative="two.sided")
The results show the following statistics:
> moran.test(a1$data, a1.listw, randomisation=FALSE, > alternative="two.sided")
Moran's I test under normality
data: a1$data weights: a1.listw
Moran I statistic standard deviate = 0.2911, p-value = 0.771 alternative hypothesis: two.sided sample estimates: Moran I statistic Expectation Variance -0.03762590 -0.08333333 0.02464896
With a Moran's I of -0.04 and a p-value of 0.771 I would say this isn't much of a statistic or not exactly what I expected.
big/small neighbours as well as small/small and big/big. Did you try
looking at a Moran scatterplot to get a feel for what is going on?
moran.plot() is the function to try. I think you'll see that all four
quadrants of the plot have observations, leading to a very flat and
non-significant relationships. Maybe this is because the k-nearest
neighbours weights are not reflecting what you want - could you try using
dnearneigh() for the appropriate number of km instead, or use edit.nb() to
cut out the possibly disturbing long links?
I would think that since I evaluate ecological/biophysical paramters it
wouldn't be possible to get negative correlations since in vegetations
there is always some kind of autocorrelation involved. It could be just a
little but certainly not negative.
Note that it is still greater than its expectation (which shows that you only have the 13 observations shown on the figure), but with the variance you have is not significantly different from its expectation. Why did you use normality rather than randomisation (or Monte Carlo)? With so few observations, this may be an issue.
Strange thing is that I get the same weights in my weights class of my a1.listw file
Explained above - this was what you asked for. For distance weighted see nbdists(), though your points are regularly spaced.
> a1.listw$weights [[1]] [1] 0.25 0.25 0.25 0.25
[[2]] [1] 0.25 0.25 0.25 0.25
[[3]] [1] 0.25 0.25 0.25 0.25 ...
I think it has something to do with the k-value in knearneigh(), but even
if I change it to 8 (changing from bishops/rooks to queens case?) they
stay the same. Any idea why this is the case?
So maybe the strange statistics could be a problem of a faulty weights matrix. So if you have any comments on the code/method used it would be appreciated.
Best regards, Koen.
--
* To post a message to the list, send it to [EMAIL PROTECTED]
* As a general service to the users, please remember to post a summary of any useful responses to your questions.
* To unsubscribe, send an email to [EMAIL PROTECTED] with no subject and "unsubscribe ai-geostats" followed by "end" on the next line in the message body. DO NOT SEND Subscribe/Unsubscribe requests to the list
* Support to the list is provided at http://www.ai-geostats.org
-- Using M2, Opera's revolutionary e-mail client: http://www.opera.com/m2/
-- * To post a message to the list, send it to [EMAIL PROTECTED] * As a general service to the users, please remember to post a summary of any useful responses to your questions. * To unsubscribe, send an email to [EMAIL PROTECTED] with no subject and "unsubscribe ai-geostats" followed by "end" on the next line in the message body. DO NOT SEND Subscribe/Unsubscribe requests to the list * Support to the list is provided at http://www.ai-geostats.org
