home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 8 Other / 08-Other.zip / clopt.zip / CLOPT.DOC next >
Text File  |  1993-07-18  |  27KB  |  569 lines

  1.                       CLIQUE OPTIMIZATION (CLOPT) 0.7
  2.  
  3.                       Last Modified on July 18, 1993
  4.  
  5.                               N. Sriram
  6.                 National University of Singapore
  7.                     email: swknasri@leonis.nus.sg
  8.  
  9.  
  10.  
  11.  The first part of this document sketches the logic used by CLOPT.
  12.  The second part describes the operation of the program.  The third
  13.  section contains portions of CLOPT's output using a dataset based on
  14.  the rated similarity among 30 mammals.
  15.  
  16.  CLOPT is a clustering approach that takes proximity data as input and
  17.  constructs a hierarchical tree.  These trees are parsimonious in that
  18.  they have far fewer than the n-1 levels of HCS methods.  Additionally,
  19.  simulations also indicate that CLOPT is robust in terms of recovering
  20.  structure from data.  For more details, refer to the articles cited at
  21.  the end of this section.
  22.  
  23.  HCS methods are "bottom-up", they cluster 2 elements, recompute proximity
  24.  data for the n-1 objects, merge 2 objects again, recompute proximities
  25.  among n-2 objects and so on till they merge all elements in 1 group.
  26.  Various HCS methods differ on criteria used to decide the object pair that
  27.  are nearest neighbours at every step in the iteration.
  28.  
  29.  CLOPT's control structure is both "top-down" and "bottom-up". In the
  30.  first step CLOPT divides n elements into a partition in the middle of the
  31.  hierarchy. This partition called a B level ("Basic") is chosen to maximize
  32.  a least-squares fit index of the partition with the data.  One of several
  33.  graph partitioning heuristics may be used for this purpose.  Then, CLOPT
  34.  can merge back from the B level to the T ("Top") level, creating
  35.  intermediate levels (I) in the hierarchy.  The same heuristic is also
  36.  used in merging, although the program can be easily modified to use
  37.  different heuristics for dividing and merging. Then the first basic level
  38.  can be divided and a similar process carried out.  Consider an example
  39.  from data that are almost perfectly hierarchical (n = 8 elements):
  40.  
  41.             3
  42.             2 2
  43.             2 2 4
  44.             1 1 1 1
  45.             1 1 2 1 5
  46.             1 1 1 1 2 2
  47.             1 1 1 1 2 2 5
  48.  
  49.  DIVIDE   1 -->  4  CORR=0.87857  Lt = 2.992   (0.498)  Rt=0.125  OK
  50.  
  51.  MERGE    4 -->  2  CORR=0.94845  Lt = 1.941   (0.941)  Rt=0.250  OK
  52.  
  53.  DIVIDE   4 -->  6  CORR=0.98023  Lt = 4.889   (0.945)  Rt=0.250  OK
  54.  
  55.  MERGE    6 -->  5  CORR=0.98715  Lt = 3.943   (0.943)  Rt=0.250  OK
  56.  
  57.  DIVIDE    All Data values are identical
  58.  
  59.  The first B level has 4 groups; this merges into a 2 group I level. Then
  60.  the first B level divides into the second B level with 6 groups.  Then
  61.  the second B level merges into a group with 5 groups.  Further division
  62.  is not carried out because it does not increase CORR suffiently.  The OK
  63.  indicates that the level that was created was accepted by the model
  64.  because the change in CORR was greater than BETA, a convergence criterion
  65.  (here BETA = 0.001).
  66.  
  67.  CLOPT implements a number of clustering heuristics.  One such heuristic is
  68.  described in the 1990 paper; Another, more robust heuristic is described in
  69.  the second paper.  This program includes a third heuristic and minor
  70.  variations of the second and third.  Thus 5 heuristics are available in the current
  71.  version.  The same control structure is used in all cases.
  72.  
  73.  CLOPT heuristics go through 2 steps.  The first step is common to all
  74.  CLOPT methods and involves Lt, the link threshold.  Lt abstracts a graph
  75.  by considering links between objects that have similarity >= Lt.  This
  76.  graph has 1 or more components depending on the value of Lt.  Typically,
  77.  the higher the value of Lt, the greater the number of components because
  78.  fewer links exist.  Note the nesting of graphs with increasing Lt.
  79.  
  80.  The second step applies Rt, a resemblance threshold on the Lt graph to
  81.  obtain an Rt graph.  That is, the Rt graph is nested in the Lt graph.
  82.  The definition of Rt varies with the heuristic used.  In heuristic 1
  83.  (1990 paper), Rt is simply a normalized measure of node connectivity.
  84.  Objects with equal or higher connectivity are extracted to form clusters.
  85.  Then the Rt graph is "redrawn" without the already selected objects and
  86.  the procedure continues till the Rt graph is empty.  In heuristic 1
  87.  the premise is that 2 objects in the same component with many links are
  88.  likely to belong together in the same group.  It is easy to construct
  89.  data where heuristic 1 will fail miserably;for example, imagine data
  90.  where a component is made of 2 dense clusters that are connected to
  91.  each other by a bridge link.  Despite its seeming vulnerability, the
  92.  first heuristic is efficient and works pretty well on real data.
  93.  
  94.  Heuristic 2 uses a definition of Rt that is more resilient; but it pays
  95.  a computational price.  In Heuristic 2,  the average similarity between
  96.  associates of the 2 objects that form links in the Lt graph are computed.
  97.  Associates are directly linked objects in the Lt graph.  These averages
  98.  are a measure of second order similarity.  For example if A and B are
  99.  linked in the Lt graph we compute the average similarity between 2 object
  100.  sets, one includes all associates of A (including A) except B; the other
  101.  set includes all associates of B (including B) except A.  Links < Rt in
  102.  this second order similarity data are eliminated.  The components of the
  103.  Rt graph are clusters of the derived partition.
  104.  
  105.  In Heuristic 3, second order similarity is a normalized measure of the
  106.  number of associates common to the 2 objects forming a link.  Heuristic 3
  107.  has to be tested and fine tuned, but it runs a lot faster than heuristic
  108.  2.  Heuristic 4 and 5 are variations on 2 and 3 respectively. They impose
  109.  an additional condition for an Lt link to be retained (in addition to the
  110.  Rt condition); only if either one of the 2 objects forming the Lt link has
  111.  a minimum of MINCONN links where MINCONN is a specified parameter.
  112.  Theoretically, 4 and 5 will work on data that will trick heuristics 2 and
  113.  3 respectively.  But these variations remain to be tested.
  114.  
  115.  In fact Heuristics 2,3,4 and 5 all use a second order similarity matrix.
  116.  Here Rt is used as a threshold on this matrix, much as Lt is used on the
  117.  raw data.  So the nesting property for Lt is also true of Rt (at fixed
  118.  Lt) in these cases.  The nesting property of Rt is not guaranteed in
  119.  Heuristic 1.  However, heuristic 1 will run faster if this assumption
  120.  is made.  This modification will be implemented in the future.
  121.  
  122.  All heuristics are called by a search procedure that selectively
  123.  examines combinations of Lt and Rt.  There are 2 types of search
  124.  available: "binary" and "downhill".  In binary search, three values
  125.  of Lt (high/right, medium/center and low/left) are chosen and the
  126.  best solution is set as the new center and the process continues
  127.  until convergence is reached.  In downhill search, we start from a
  128.  high value of Lt and move downhill in fixed increments until we are
  129.  fairly sure that we have observed a local maxima.
  130.  
  131.  A given run of the program can use either search or specify them
  132.  interactively for each level of the hierarchy.  Other search parameters
  133.  specify the range of "promising" Lt values (normalized in [0, 1]).
  134.  Generally speaking, the closer Lt is to 1 (higher the link threshold),
  135.  the faster the computations.  In many structured datasets, similarities
  136.  are positively skewed and optimal solutions can be got when Lt is fairly
  137.  high.  Consequently for large datasets, "downhill" search tends to be
  138.  much faster (sometimes by an order of magnitude) than the slower "binary"
  139.  search.  Note that the values of Rt are always assigned by a "binary"
  140.  search criterion; the choice is available (and useful) for specifying
  141.  the method for examining Lt values.
  142.  
  143.  Finally in this version of CLOPT, there is an option for randomly
  144.  permuting the data and running the procedure a specified number
  145.  of times to obtain a sampling distribution of the fit measure.
  146.  One can compare the obtained fit with this distribution.  Clustering
  147.  methods can capitalize on chance and fairly high model-data correlations
  148.  can be obtained for random data when n is small.  The value of the fit
  149.  also depends on the distribution of the proximities (positively skewed
  150.  similarities favor higher correlations).  Of course, it must be pointed
  151.  out that the presence of clear clustering structure in the data is also
  152.  associated with increased values of the fit between model and data.
  153.  However, one would be mistaken to treat the magnitude of the fit as the
  154.  sole indication of the "amount" of structure in the data for the reasons
  155.  stated above. The position of the obtained fit vis-a-vis the sampling
  156.  distribution provides an additional perspective when comparing the
  157.  presence of structure in 2 or more datasets.
  158.  
  159.  References
  160.  
  161.  Sriram, N. (1990), Clique Optimization: A method to construct parsimonious
  162.  ultrametric trees from similarity data, Journal of Classification, 7, 33-52.
  163.  
  164.  Sriram, N. and Lewis, Scott (in press), Constructing Optimal Ultrametrics,
  165.  Journal of Classification.
  166.  
  167.  
  168.  
  169.  
  170.                ****************
  171.                * Running CLOPT*
  172.                ****************
  173.  
  174.  
  175. You can run the executable clopt.exe in either one of two ways.  Simply type
  176. "clopt" and respond to the queries.  A file called "normal.cfg" will be
  177. written out.  If you are not sure about a response, type Enter to select the
  178. default value.
  179.  
  180. You can also run clopt with the following parameters:
  181.  
  182. "clopt <NELM> <config_file> <input_file> <output_file>".  NELM refers to
  183. the number of elements in the data.
  184.  
  185. I have compiled the OS/2 32-bit executable using Borland C (single thread,
  186. no PM calls).  The source also compiles and runs on DOS.  The upper limit
  187. on NELM for the DOS version is around 50. The DOS version also runs slower
  188. than the OS/2 version. I have included the OS/2 and DOS executables in this
  189. distribution; they are named os2clopt.exe and dosclopt.exe.
  190. Use fixed-width fonts (like courier) to print the tree; results will be
  191. less than satisfactory with proportionally spaced fonts (times roman).
  192.  
  193. On non-PC systems, extended ASCII characters used for drawing the tree look
  194. weird; however if suitable characters exist they can be specified in a
  195. header file). E-mail me if you want the source for *nix or other systems.
  196.  
  197. The memory requirements grow as the square of NELM; I am not sure about
  198. the time complexity but I guess a practical limit will be reached well
  199. before NELM = 1000.  Some heuristics are faster and some take up a little
  200. more space.  As noted earlier, using "downhill" search can speed up things
  201. for large datasets. For large datasets, the recommended strategy is to
  202. use downhill search interactively examining small intervals in [0,1] for
  203. the values of Lt.  Initially, it is also better to use Heuristic 1 or 3
  204. instead of Heuristic 2 as the latter takes more time.  However, I have
  205. had no problems in applying Heuristic 2 in conjunction with downhill search
  206. for a medium size dataset (n=184) using the OS/2 executable.
  207.  
  208. Below are the contents of a particular configuration file, test.cfg:
  209.  
  210. 2 0 0 0                                <HEURISTIC,ISEARCH,ISOTONE,MINCONN>
  211. 0 3 1 1 8                              <DATYPE,DAFORM,MISSING,LABELS,LLABEL>
  212. 1 0                                    <MODOUT,MOTYPE>
  213. 1 60 1 5 1                             <TRACE,PAGEW,TREE,MINGAP,BETGAP>
  214. 1 1 1                                  <HOMOG,TYPIC,LEVOUT>
  215.   0.01   0.01  0.001  0.0001 -999.999  <DEL_LT,DEL_RT,BETA,VEQUAL,MISSVAL>
  216.    1    5  0.950  0.050  0.100         <SEARCH,NDOWN,MAXLT,MINLT,STEP>
  217. 0 10                                   <PERM,NPERM>
  218.  
  219.  
  220. Below are the contents of the input file, test.dat:
  221.  
  222. 3
  223. 2 2
  224. 2 2 4
  225. 1 1 1 1
  226. 1 1 -999.999 1 5
  227. 1 1 1 1 2 2
  228. 1 1 1 1 2 2 5
  229. one
  230. two
  231. three
  232. four
  233. five
  234. six
  235. seven
  236. eight
  237.  
  238. /*Description of parameters in the config file*/
  239.  
  240. HEURISTIC can be selected from {1, 2, 3, 4, 5}
  241.  
  242. set ISEARCH=1 to enable interactive search, turn it off with 0
  243.  
  244. Setting ISOTONE=1 slows down things a bit; In most cases setting ISOTONE=0
  245. will still result in an ultrametric hierarchy, where alphas are monotonic
  246.  
  247. MINCONN is only relevant for HEURISTICS 4 and 5; Choose a small integer
  248. say from [0, 1, 2, 3] if you want to experiment.  For HEURISTIC 4,
  249. MINCONN=0 makes it equivalent to HEURISTIC 2; HEURISTIC 5 is equivalent to
  250. HEURISTIC 3 when MINCONN=0. MINCONN is a lower bound on the number of
  251. associates of an element for it to be included in a cluster.  This parameter
  252. was included because it helped the heuristics in certain situations (but
  253. probably is of little, if any, consequence in most datasets).
  254.  
  255. DATYPE  assumes 0=SIMILARITY DATA  and 1=DISSIMILARITY DATA
  256. DAFORM  assumes 0=FULL MATRIX 1=LOWER DIAGONAL 2=UPPER DIAGONAL
  257.         3=LOWER ONLY and 4=UPPER ONLY
  258.  
  259. if there are missing values in the data MISSING=1 else MISSING=0
  260. MISSVAL is the numerical code for missing values (default is -999.999)
  261.  
  262. if there are element identifiers in the input file following the data matrix
  263. then LABELS=1 else LABELS=0
  264. LLABEL pertains to the number of characters you want read from the labels
  265. This version can handle spaces (treats them as characters in the label)
  266. and other white space characters.
  267.  
  268. if you want the model matrix output then MODOUT=1 else MODOUT=0
  269. MOTYPE is analagous to DATYPE.  The model matrix is always written out
  270. as a lower-half matrix.
  271.  
  272. The trace of the program appears on screen; if you want it to be sent
  273. to the output file also then TRACE=1 else TRACE=0
  274.  
  275. PAGEW is the maximum width of the output, only used to constrain the tree;
  276. Set TREE=1 if you want the standard tree in the output, else TREE=0
  277. MINGAP is the minimum number of columns (default=5) between adjacent levels
  278. BETGAP is the number of rows separating adjacent clusters at the left_most
  279. part of the tree (use odd numbers like 1 or 3)
  280.  
  281. If you want a tree with cluster homogenities set HOMOG=1 else HOMOG=0
  282. For element typicalities at each hierarchy level set TYPIC=1 else TYPIC=0.
  283. If you want the levels in the hierarchy to be represented as indexed
  284. partitions set LEVOUT=1 else LEVOUT=0. These partitions can be useful in
  285. secondary analyses.
  286.  
  287. DEL_LT is the resolution of the link threshold
  288. DEL_RT is the resolution of the resemblance threshold
  289.  
  290. BETA is the convergence criterion; This decides when the merging and
  291. dividing processes are halted
  292.  
  293. VEQUAL differences less than VEQUAL are considered insignificant in
  294. making comparisons of fit.
  295.  
  296. Increasing VEQUAL and BETA  may speed up CLOPT but the solution may be
  297. inferior; A similar comment applies to the resolution parameters
  298. Increasing BETA slightly (say from 0.001 to 0.005) will make the model
  299. more parsimonious (with fewer levels in the hierarchy)
  300.  
  301. SEARCH=1 is binary search; SEARCH=2 is downhill search
  302.  
  303. NDOWN is only relevant for downhill search; refers to the number of
  304. downhill steps after local maxima after which search is called off.
  305.  
  306. MAXLT and MINLT specify the range of Lt search. MAXLT > MINLT and both
  307. are in the range [0, 1].   Used by both binary and downhill search.
  308.  
  309. STEP is relevant only for downhill search. specifies increments in
  310. which Lt is decremented from MAXLT downward.  A small increment
  311. may slow down things but is conservative (say 0.05).  Or one
  312. can use a coarse increment on the first run and use a fine
  313. increment later in the second run along with a narrower range of
  314. MAXLT and MINLT.
  315.  
  316. set PERM=1 to analyze random permutations of data, else PERM=0
  317. NPERM is the number of random permutations
  318.  
  319. -----------------------------------------------------------------
  320.  
  321. Run the program by executing "clopt 8 test.cfg test.dat test.clp"
  322. You can view the outcome in test.clp.
  323.  
  324. In the output there are some terms that need to be clarified:
  325.  
  326. In the TRACE, Lt and Rt refer to the thresholds used by the program.
  327. The normalized value of Lt in [0, 1] is given in parentheses.  The
  328. normalization is with respect to the range of the data-matrix under
  329. consideration for the divide/merge step (not necessarily the raw data).
  330. OK means that the level is included, KO means it is knocked out.
  331.  
  332. LEVEL refers to the level in hierarchy, starting from the bottom
  333. NCLUSTER is the number of clusters at a level (including singletons)
  334. WLINKS is the number of within-cluster links at a level
  335.      Note: WLINKS will be less than what you would expect if there are
  336.      missing values in the data.  These are not counted.
  337. AVG WSIM is the average within-cluster similarity at a level
  338. ALPHA is the average within-cluster similarity of links that are newly
  339.      formed at the level
  340.  
  341. If ALPHA is ordered then the tree is ultrametric but for the tree to be
  342. ultrametric ALPHA need not be ordered.  ALPHAS are used to make the model
  343. matrix, calculate fit etc.
  344.  
  345. The ultrametric constraint implies that, in the model matrix, for any 3
  346. objects the 2 smallest similarities must be equal to each other.  For
  347. model distances it implies that the 2 largest distances among 3 objects
  348. must be equal to each other.  Thus, this constraint is more severe than
  349. the triangle inequality.
  350.  
  351. PBI_CORR is the point-biserial correlation between each partition (level)
  352. and the data.  Partitions are represented by 0's and 1's; 1's stand for
  353. within-cluster links and 0 for between-cluster links.  In some sense, the
  354. partition with the maximum PBI_CORR represents the data best (among others
  355. in the tree).  Usually, this "basic level" partition is the first partition
  356. derived by CLOPT (exceptions, though infrequent, do occur).
  357.  
  358. In the homogenity tree, the values represent average within-cluster
  359. similarities in [1,1000] normalized with respect to the range of the raw
  360. data. The no. of columns between levels is a function of the difference
  361. between the AVG WSIM of adjacent levels.  A given tree can be displayed
  362. in many ways. I use the homogenity of clusters to constrain the display.
  363. Starting from the level on the extreme right, more homogenous clusters
  364. are above less homogeneous clusters; this process is recursive all the way
  365. to the leaves. At the extreme left, objects are sorted by their typicality
  366. at level 1. Singletons are assumed to be maximally homogeneous.  The
  367. typicality of an element is it's average similarity to other members in the
  368. cluster. If the homogenities of clusters was used to construct the model
  369. matrix then it is certain that the fit to the data will improve; However
  370. the model may not remain ultrametric.  Element typicalities are normalized
  371. to be in the range 0-100 with respect to the range of the raw data.
  372.  
  373.  
  374.  \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  375. /          Suggestions for improving CLOPT are welcome.                 /
  376. \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  377.  
  378.  
  379.                    CLIQUE OPTIMIZATION  0.70
  380.  
  381.                             N. Sriram
  382.                  National University of Singapore
  383.  
  384.                  Last Modified: July 18 1993
  385.  
  386.     Please e-mail queries or comments to swknasri@leonis.nus.sg
  387.  
  388.  
  389.  
  390. NELM = 30       HEURISTIC = 1
  391.  
  392. In_file = henley.dat
  393. Out_file = henley.out
  394. Config_file = hm.cfg
  395.  
  396.                               PROGRAM TRACE
  397.  
  398.  
  399. DIVIDE   1 --> 10  CORR=0.77142  Lt = 590.430 (0.622)  Rt=0.031  OK
  400.  
  401. MERGE   10 -->  5  CORR=0.82695  Lt = 410.473 (0.624)  Rt=0.406  OK
  402.  
  403. MERGE    5 -->  2  CORR=0.83066  Lt = 306.251 (0.791)  Rt=0.562  OK
  404.  
  405. DIVIDE  10 --> 16  CORR=0.85461  Lt = 716.479 (0.614)  Rt=0.562  OK
  406.  
  407. MERGE   16 --> 12  CORR=0.85825  Lt = 617.632 (0.755)  Rt=0.250  OK
  408.  
  409. MERGE   12 --> 11  CORR=0.85841  Lt = 578.849 (0.943)  Rt=0.250  KO
  410.  
  411. DIVIDE  16 --> 21  CORR=0.86107  Lt = 777.146 (0.512)  Rt=0.125  OK
  412.  
  413. MERGE   21 --> 17  CORR=0.86137  Lt = 726.732 (0.659)  Rt=0.250  KO
  414.  
  415. DIVIDE  21 --> 27  CORR=0.86164  Lt = 850.474 (0.766)  Rt=0.750  KO
  416.  
  417. MAX Data Similarity  =   887.000
  418. MIN Data Similarity  =   103.000
  419. MEAN Data Similarity =   356.510
  420.  
  421.  
  422.     The Pearson correlation between data and model =  0.861
  423.  
  424.  
  425.     The model hierarchy has 7 levels
  426.  
  427.  LEVEL    NCLUSTERS    WLINKS    AVG WSIM        ALPHA        PBI_CORR
  428.  
  429.    1         21          11       818.909       818.909         0.473
  430.    2         16          22       770.136       721.364         0.606
  431.    3         12          44       700.364       630.591         0.732
  432.    4         10          61       657.557       546.765         0.771
  433.    5          5         104       570.875       447.907         0.762
  434.    6          2         226       428.810       307.705         0.477
  435.    7          1         435       356.510       278.330         0.000
  436.  
  437.  
  438.  
  439.                      HIERARCHICAL TREE WITH NODE HOMOGENITIES
  440.  
  441.  
  442.     elephant *───────────────────────────────────────┐
  443.                                                      │
  444.        camel *───────────────────────────┐           │
  445.                                          │           │
  446.      giraffe *───────────────────────────┤           │
  447.                                          │           │
  448.          cow *────────────────────┐      │           │
  449.                                   │      │           │
  450.         goat *────┐               │      │           │
  451.                  860──────────────┤      │           │
  452.        sheep *────┘               │      │          515────┐
  453.                                   │     561──────────┘     │
  454.     antelope *────┐               │      │                 │
  455.                  906─────────┐   635─────┘                 │
  456.         deer *────┘          │    │                        │
  457.                              │    │                        │
  458.       donkey *─────────┐    732───┘                        │
  459.                        │     │                             │
  460.        horse *────┐   824────┘                             │
  461.                  882───┘                                   │
  462.        zebra *────┘                                        │
  463.                                                            │
  464.        chimp *────┐                                        │
  465.                   │                                        │
  466.       monkey *───911─────────────────────────────────┐     │
  467.                   │                                  │     │
  468.      gorilla *────┘                                  │     │
  469.                                                      │     │
  470.          pig *───────────────────────────┐           │     │
  471.                                          │           │    323
  472.       rabbit *───────────────┐           │           │     │
  473.                              │           │           │     │
  474.       beaver *─────────┐     │           │           │     │
  475.                       816────┤           │           │     │
  476.      raccoon *─────────┘     │           │           │     │
  477.                              │          636──────────┤     │
  478.        mouse *────┐         717──────────┘           │     │
  479.                  918───┐     │                       │     │
  480.          rat *────┘    │     │                       │     │
  481.                       799────┘                       │     │
  482.     squirrel *────┐    │                            383────┘
  483.                  878───┘                             │
  484.     chipmunk *────┘                                  │
  485.                                                      │
  486.         bear *───────────────────────────┐           │
  487.                                          │           │
  488.          cat *─────────┐                 │           │
  489.                        │                 │           │
  490.        tiger *────┐    │                 │           │
  491.                   │   884────────────────┤           │
  492.         lion *───954───┘                 │           │
  493.                   │                     579──────────┘
  494.      leopard *────┘                      │
  495.                                          │
  496.          dog *───────────────┐           │
  497.                              │           │
  498.          fox *─────────┐    744──────────┘
  499.                       818────┘
  500.         wolf *─────────┘
  501.  
  502.  
  503.      ELEMENT TYPICALITIES AT VARIOUS LEVELS IN THE HIERARCHY
  504.  
  505.                1    2    3    4    5    6    7 
  506.  
  507. elephant                                30   20
  508. camel                              47   46   26
  509. giraffe                            42   42   23
  510. cow                           55   51   49   30
  511. goat           86   86   86   64   58   54   38
  512. sheep          86   86   86   59   52   49   34
  513. antelope       90   90   72   64   60   57   36
  514. deer           90   90   70   65   60   56   37
  515. donkey              79   69   65   60   58   35
  516. horse          88   84   76   67   65   62   37
  517. zebra          88   82   75   65   62   59   35
  518. chimp          96   96   96   96   96   36   29
  519. monkey         90   90   90   90   90   37   31
  520. gorilla        86   86   86   86   86   28   23
  521. pig                                39   29   31
  522. rabbit                   69   69   64   40   35
  523. beaver              81   67   67   63   42   35
  524. raccoon             81   69   69   65   47   38
  525. mouse          91   80   70   70   66   37   29
  526. rat            91   80   71   71   68   40   31
  527. squirrel       87   80   77   77   72   43   35
  528. chipmunk       87   77   75   75   69   42   33
  529. bear                               40   28   25
  530. cat                 81   81   81   61   48   38
  531. tiger          96   91   91   91   65   34   29
  532. lion           95   90   90   90   66   33   28
  533. leopard        94   90   90   90   65   34   29
  534. dog                      70   70   48   41   37
  535. fox                 81   73   73   54   43   36
  536. wolf                81   79   79   61   38   31
  537.  
  538.  
  539.   MODEL-DATA CORRELATIONS FOR RANDOM PERMUTATIONS OF DATA
  540.  
  541. Permutation   1, Correlation =  0.4671
  542. Permutation   2, Correlation =  0.4842
  543. Permutation   3, Correlation =  0.5499
  544. Permutation   4, Correlation =  0.4878
  545. Permutation   5, Correlation =  0.4959
  546. Permutation   6, Correlation =  0.4691
  547. Permutation   7, Correlation =  0.5181
  548. Permutation   8, Correlation =  0.4861
  549. Permutation   9, Correlation =  0.4673
  550. Permutation  10, Correlation =  0.4566
  551. Permutation  11, Correlation =  0.5075
  552. Permutation  12, Correlation =  0.5359
  553. Permutation  13, Correlation =  0.4349
  554. Permutation  14, Correlation =  0.4819
  555. Permutation  15, Correlation =  0.5346
  556. Permutation  16, Correlation =  0.5119
  557. Permutation  17, Correlation =  0.4971
  558. Permutation  18, Correlation =  0.4854
  559. Permutation  19, Correlation =  0.4458
  560. Permutation  20, Correlation =  0.5041
  561.  
  562. Mean =  0.4911        SD =  0.0294         MAX =  0.5499
  563.  
  564. Original fit is 12.602 SDs above the mean of the sampling distribution
  565.  
  566. Original fit is 10.599 SDs above the maximum of the sampling distribution
  567.  
  568.  
  569.