Hi all,
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.02464896
New 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.01964896
Moran'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.01962520
Monte-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 <
Roger.Bivand@...>
To: Koen Hufkens <
koen.hufkens@...>
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.
>
>>
>> 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.
>>
> Well, looking at your figure (just eyeballing), there are quite a lot of
> 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 ai-geostats@...
>> * 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 majordomo@... 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
ai-geostats@...
* 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
majordomo@... 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