Dear Nikos many compliments for this elegant solution. At a first glance, I would suggest using ANOSIM which is implemented into vegan too but it seems that MRPP worked in a great way and that you have seen the sunny part of the road in few time!
Duccio -- Duccio Rocchini, PhD Edmund Mach Foundation IASMA Research and Innovation Centre Department of Biodiversity and Molecular Ecology GIS and Remote Sensing Unit Via Mach 1, 38010 San Michele all'Adige (TN) - Italy Phone +39 0461 615 570 [email protected] [email protected] skype: duccio.rocchini web page: http://gis.fem-environment.eu/rocchini/ 2011/1/6 <[email protected]>: > Send grass-stats mailing list submissions to > [email protected] > > To subscribe or unsubscribe via the World Wide Web, visit > http://lists.osgeo.org/mailman/listinfo/grass-stats > or, via email, send a message with subject or body 'help' to > [email protected] > > You can reach the person managing the list at > [email protected] > > When replying, please edit your Subject line so it is more specific > than "Re: Contents of grass-stats digest..." > > > Today's Topics: > > 1. Re: Spatial autocorrelation of multi-spectral, uni- and > mutli-temporal data sets (Nikos Alexandris) > > > ---------------------------------------------------------------------- > > Message: 1 > Date: Thu, 6 Jan 2011 16:56:36 +0200 > From: Nikos Alexandris <[email protected]> > Subject: Re: [GRASS-stats] Spatial autocorrelation of multi-spectral, > uni- and mutli-temporal data sets > To: [email protected] > Message-ID: <[email protected]> > Content-Type: Text/Plain; charset="utf-8" > > On Sunday 26 of December 2010 19:00:32 Nikos Alexandris wrote: >> Greets to the statists, >> >> I want to "describe" my multispectral (Landsat5_TM) composite datasets with >> respect to their between vs. within heterogeneity. > > (Replying to myself and for the potential interest of anybody reading the > list... ) > > Finally I went for MRPP test(s) implemented in the R-package "vegan"[1][2]. I > did a sampling of major land cover classes after all (such as Urban areas, > vegetation, bare ground, water bodies, etc)., put the data in data.frames and > ran the tests. > > The data.frames look like: > > str ( samples_postfire_modis ) > 'data.frame': 1040 obs. of 6 variables: > $ Band 1: int 1354 1458 1458 1458 1550 1145 1428 1573 1573 1657 ... > $ Band 2: int 3088 2971 2971 2971 2902 2990 2942 2824 2824 2917 ... > $ Band 5: int 3533 3506 3506 3506 3323 3535 3337 3239 3239 3552 ... > $ Band 6: int 2778 2803 2803 2803 2974 2646 2674 2883 2883 3071 ... > $ Band 7: int 2019 2146 2146 2146 2042 1719 2045 2114 2114 2373 ... > $ Class : Factor w/ 5 levels "Urban","Vegetation",..: 1 1 1 1 1 1 1 1 1 1 ... >> str ( samples_bite ) > samples_bitemporal_modis.colnames samples_bitemporal_modis >> str ( samples_bitemporal_modis ) > 'data.frame': 1040 obs. of 7 variables: > $ Prefire B2 : int 3377 3425 3304 3179 3247 3247 3235 3043 3043 3197 ... > $ Prefire B6 : int 2726 2683 2737 2991 2934 2934 2928 2984 2984 3199 ... > $ Prefire B7 : int 1864 1932 2005 2185 2068 2068 2223 2331 2331 2314 ... > $ Postfire B2: int 3088 2971 2971 2971 2902 2990 2942 2824 2824 2917 ... > $ Postfire B6: int 2778 2803 2803 2803 2974 2646 2674 2883 2883 3071 ... > $ Postfire B7: int 2019 2146 2146 2146 2042 1719 2045 2114 2114 2373 ... > $ Class : Factor w/ 5 levels "Urban","Vegetation",..: 1 1 1 1 1 1 1 1 1 > 1 ... > > Some of the results look like this: > > --%<--- > Call: > mrpp(dat = samples_postfire_modis.smallsample.300[, 1:5], grouping = > samples_postfire_modis.smallsample.300[["Class"]]) > > Dissimilarity index: euclidean > Weights for groups: n > > Class means and counts: > > Urban Vegetation Bare ground Burned Water > delta 1241 1029 1550 1228 855.2 > n 97 81 63 53 6 > > Chance corrected within-group agreement A: 0.3956 > Based on observed delta 1239 and expected delta 2050 > > Significance of delta: 0.001 > Based on 999 permutations > -->%--- > > and > > --%<--- > + samples_postfire_modis.smallsample.300.vegdist <- vegdist ( > samples_postfire_modis.smallsample.300[,1:5] ) > > + samples_postfire_modis.smallsample.300.md <- meandist ( > samples_postfire_modis.smallsample.300.vegdist , > samples_postfire_modis.smallsample.300[["Class"]] ) > > + summary(samples_postfire_modis.smallsample.300.md) > > Mean distances: > Average > within groups 0.0950253 > between groups 0.2023877 > overall 0.1754765 > > Summary statistics: > Statistic > MRPP A weights n 0.4224480 > MRPP A weights n-1 0.4263591 > MRPP A weights n(n-1) 0.4584728 > Classification strength 0.1010409 > --%<--- > > > Running the above test on samples with observations > 3000 is a high load for > a home-machine (working here on Core2 Duo @2.53GHz and 6GB RAM). In fact, > running the process for 18K observations times 6 variables (the number of > permutations increases like crazy...) took 2+1/2 days (double that for another > data.frame of the same size). > > Wish I had access to some OSGeo super-computer for 30 mins to get this job > done. > > Greets, Nikos > > > ------------------------------ > > _______________________________________________ > grass-stats mailing list > [email protected] > http://lists.osgeo.org/mailman/listinfo/grass-stats > > > End of grass-stats Digest, Vol 49, Issue 1 > ****************************************** > _______________________________________________ grass-stats mailing list [email protected] http://lists.osgeo.org/mailman/listinfo/grass-stats
