All of these programs given below will have to be modified to run with your data. The matrix sizes will need to be changed to reflect the number of sites and species, as SAS does not currently allow matrix sizes to be defined by variable names. I've included comment statements showing where changes should be made.
Sample data files are included for each kind of analysis. For the abundance data, I used the part of the dataset that was used by Boyce (1998), while data from Ellison & Boyce (2001) was used for the binary data set. The amount of CPU time that each program took when I ran it on my mainframe are given to give you some idea of how long it will take to run your data. For large data sets like the abundance set, you may run out of memory if you run in UNIX. One way to avoid this is to use the following command when invoking SAS:
sas -memsize 64MClick here for more information if using SAS version 6 or here if using 7 or higher. You may also need to use a _NULL_ DATA set for large datasets; click here for more information.
I recommend that you use the step-across version of each program, because they eliminate the "curlover" distortion inherent to FSO; this is FSO's version of the arch or horseshoe effect. What does curlover look like? This figure shows simulated abundance data from 11 equally spaced sites on an elevational gradient. There are 7 species with symetric, quasi-Gaussian distributions that differ only in where the maxima are located. So, when the actual elevation is plotted against the apparent or ordinated elevation, we should see a straight line. Using the percent-similarity index with the step-across routine, there is little distortion. Without the step-across routine, however, the line curls over on the ends.
What is step-across? It's a way of more accurately determining the
similarity (or its complement, the distance) between sites that have no
species in common. Good references are Williamson (1978), who developed
it, and Bradfield and Kendel (1987); I use a Dijkstra shortest-path
algorithm which I adapted from Minieka (1978). However, if you use the
step-across version, make sure that all of your sites have at least one
species in common with at least one other site. If there is no
connection in species composition between a particular site and at
least one other, the program will run forever trying to find a shortest
path that does not exist. Note also that for very large data sets, the
step-across routine will take significant amounts of computer time. For
example, with a data set of 383 sites and 20 species, to took me almost
1.5 h of CPU time on a UNIX mainframe!
FSO requires the use of a similarity index that falls between 0 and
1. There are about a dozen that work for abundance data and probably
about the same for binary data. For binary data, I now (Boyce &
Ellison 2001) recommend any of the following five: Baroni-Urbani
& Buser, Jaccard, Kulczynski, Ochiai or Sørensen (Krebs
1989; Legendre & Legendre 1998) . I've
obtained good preliminary results using percent similarity for relative
abundance data, but I'm currently working on some simulations to
determine which index works best. I've not tried to do anything yet
with absolute abundances.
SAS Programs
*N.B.: These programs were updated on 18 January 1999, after I discovered that the relative abundance elevation data set was not transformed. The abundance programs now take raw elevations and transform them to fuzzy sets that range from 0 to 1. I have also trimmed the abundance data set down to 100 sites, as it runs much faster. The elevation data set for the binary programs has already been transformed to a fuzzy set; if you need to use raw elevations, just copy the transformation routine from the abundance programs.
Species Presence/Absence Data Set Elevation Data Set (transformed to a fuzzy set)
With this data set of 46 sites and 64 species, ordination with
step-across took 1.55 s of CPU time on the University of Denver's
mainframe; ordination without step-across took only 0.55 s
Species Relative Abundance Data Set Elevation Data Set (NOT transformed)
With this data set of 100 sites and 20 species, ordination with step-across took 25.39 s of CPU time on the University of Denver's mainframe; ordination without step-across took only 0.67 s
How long does it take to run the abundance programs on a desktop? With a Pentium 166 MHz, ordination with step-across took 1 m 58 s; ordination without step-across took only 4 secs (thanks to Ivor Growns, Latrobe University, Australia, for the information)