home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / CPM / TURBOPAS / MAPSTATF.LBR / MAPSTAT.DZC / MAPSTAT.ÄOC
Text File  |  2000-06-30  |  13KB  |  277 lines

  1. MULTIVARIATE ANALYSIS PACKAGE 1.6
  2. Copyright 1985,86,87   Douglas L. Anderton
  3.                        Department of Sociology
  4.                        University of Chicago
  5.                        1126 E. 59th Street
  6.                        Chicago, IL 60637
  7.  
  8. These  programs  are  released for distribution so long  as  1)  any
  9. charges involved do not exceed costs of media and mailing, and 2) no
  10. portion of the programs is used for commercial resale.
  11.  
  12. Revision History:
  13.  
  14. 01/12/87 - added codebooks for variable names and missing values see
  15.            usage documentation below.
  16. 01/10/87 - major optimization in FACTOR eigen subroutines  cut iter-
  17.            ations by about 40% and gave user control of tolerance.
  18. 01/09/87 - minor revisions  DESCRPT, PLOT, CORREL, PARTIAL, CLUSTER,
  19.            HYPOTHS and MANOVA.
  20. 01/08/87 - fixed rollover bug in grand totals in CROSSTAB, and minor
  21.            optimization.
  22. 01/07/87 - substantially optimized TRANSFRM for 16% speed increase.
  23. 01/05/87 - fixed bug in REGRESS mean squares,  converted to gaussian
  24.            and LU solution. Modified GETCOR subroutine to get names.
  25. 08/25/86 - Modified TRANSFRM to  allow leading minus signs on number
  26.            entry and numbers up to 11 characters long.
  27. 06/25/86 - Fixed bug in group option and histograms in DESCRPT.
  28. 05/27/86 - New Release. Buffering added to TRANSFRM, MANOVA program,
  29.            Simple 2-dimensional PLOT, and Kmeans CLUSTERing program.
  30. 04/21/86 - Added Spicer algorithm and weighted data to CORREL.
  31. 04/19/86 - Added (improved accuracy) Spicer algorithm, weighted data
  32.            and 'by' group computations to DESCRPT.
  33. 03/23/86 - Fixed IFS bug in TRANSFRM and Sped it up considerably.
  34. 09/27/85 - Fixed Critical bugs in CORREL with missing values.
  35. 09/24/85 - New Release.   Transformations  Package,  Partial Correl-
  36.            ations, Factor Analysis and Hypotheses Tests.
  37. 09/13/85 - Fixed bug which dropped  sign of correlations from CORREL
  38.            when read into REGRESS if negative.
  39. 06/28/85 - Fixed bug in CROSSTAB (unidimensional addressing).
  40. 06/26/85 - Fixed bug in CROSSTAB (init row and col tots).
  41. 06/22/85 - New Release.  CROSSTAB.
  42. 06/15/85 - First Release. DESCRPT, CORREL, REGRESS.
  43.  
  44.  
  45. INTRODUCTION:
  46.  
  47. Mapstat  is a very serious multivariate statistical analysis package
  48. capable of meeting 90% or more of most users analytical needs.   The
  49. routines have,  at this point, been well tested and provide the most
  50. frequently  used procedures of the relatively expensive  statistical
  51. packages  without cost.   Source code is included for  modifications
  52. and elaborations at your own risk.
  53.  
  54. Eleven programs are included in this sixth release of MAP.
  55.  
  56.   1) DESCRPT  - descriptive statistics and frequency histograms.
  57.   2) CORREL   - correlation and covariance matrices.
  58.   3) REGRESS  - multiple linear regression.
  59.   4) CROSSTAB - n-way crosstabulation and association tests.
  60.   5) TRANSFRM - data transformations.
  61.   6) HYPOTHS  - simple hypotheses test on means and variances.
  62.   7) PARTIAL  - partial correlation coefficients.
  63.   8) FACTOR   - principle axis factoring with rotations.
  64.   9) CLUSTER  - kmeans clustering program.
  65.  10) PLOT     - simple 2 dimensional plots
  66.  11) MANOVA   - multiple dependent variable analysis of variance
  67.  
  68. Users  are  encouraged to REPORT BUGS and make REQUESTS  for  future
  69. versions.   Do not release your own versions or modifications  using
  70. the  copyrighted  MAP  or  MAPSTAT logos - and abide  by  the  above
  71. copyright notice.
  72.  
  73.  
  74. HARDWARE REQUIREMENTS:
  75.  
  76. MAP is written in version 2 (or 3) of Turbo Pascal (@Borland  Intl).
  77. It  has  been  written to compile with less than 56k TPA  for  those
  78. running ZCPR3 or an alternative OS on 8-bit machines.
  79.  
  80. Only several statements must be altered to run the programs on MSDOS
  81. machines.  Change  BDOS(0) calls to EXIT and try to compile.   As  I
  82. recall  only two or three other lines need to be changed out of  all
  83. the code herein for MSDOS version 3 Turbo.
  84.  
  85. PLOT contains printer control codes for the EPSON MX80 in  procedure
  86. Openfiles, modify these codes to suit your printer.
  87.  
  88.  
  89. DESIGN PHILOSOPHY:
  90.  
  91. First, MAP is written as a sequential case processor to avoid memory
  92. resident storage and achieve the greatest speed possible.   This has
  93. several  consequences  1) the package contains powerful  statistical
  94. analysis  programs  without  horrendous  memory   requirements,   2)
  95. however,  the  cost  arises in that for redundant functions such  as
  96. histograms,   regression  residuals,  etc.,  the  package  currently
  97. requires multiple passes at the data.   Even for large data sets the
  98. programs are sufficiently fast to make such passes reasonable.
  99.  
  100.  
  101. INPUT DATA REQUIREMENTS:
  102.  
  103. MAP  expects  to find your data in a free format with at  least  one
  104. blank  separating  each variable and a newline at the  end  of  each
  105. line.   All  variables for each case must be on a single line,  i.e.
  106. newlines  separate records.  It will not accept  alphanumeric  data.
  107. Programs  assume  all data transformation has been  performed  (e.g.
  108. CROSSTAB expects a finite number of values,  not necessarily integer
  109. value).  These are the only data requirements.
  110.  
  111. Codebook files containing variable names and missing values are also
  112. allowed, see 'running the programs' below.
  113.  
  114. COMPILING THE PROGRAMS:
  115.  
  116. Use  your  Turbo  Pascal  (@Borland Intl) compiler  to  compile  the
  117. programs with the options set to a .COM file for MAPSTAT and a  .CHN
  118. file  for all others.   Rename all except MAPSTAT to the names given
  119. in  the file MAPSTAT.PAS.   If you plan to run these programs  under
  120. ZEX control (highly reccommended) then be sure to compile them under
  121. ZEX. This is done putting all the distribution files along with your
  122. turbo compiler in a common access area and running the  MINSTALL.ZEX
  123. file included.  Alternatively,  to compile one at a time,  but under
  124. zex, just enter:
  125.         >ZEX
  126.         :TURBO
  127.         :<carriage return>
  128. and then proceed as you normally would.
  129.  
  130.  
  131. RUNNING THE PROGRAMS:
  132.  
  133. 1. Data Input and Output Files -
  134.  
  135. After  invoking the programs they will ask for the name of an  input
  136. data file (or a file created from a prior MAP run - for example, the
  137. output  of  CORREL is used by REGRESS),  and the name of  an  output
  138. file.   For  printer  output specify the filename as  LST:  and  for
  139. screen  output specify CON:.   An exception is TRANSFRM,  which uses
  140. buffered  output routines will accept LST:  and CON:  but will  send
  141. output to LIST.TMP and CONSOLE.TMP disk files respectively.
  142.  
  143. 2. Codebook Variable Description Files -
  144.  
  145. If the input to the program is raw data (i.e.  it is not one of  the
  146. procedures which input a prior CORREL matrix), then the program will
  147. ask for a codebook file.   The codebook file contains three items of
  148. input for each variable in the data file (1) the column number,  (2)
  149. a  variable name of eight characters,  and (3) a missing value  code
  150. for missing values.   Again, I repeat, one line must be provided for
  151. each  variable  in  the  data  file (whether  it  is  used  in  this
  152. particular  analysis or not).  All three items must be provided  for
  153. each variable on a new line and separated by blanks.  For example,
  154.  
  155. 1 THISIS1  -9
  156. 2 HERESTWO -1E37
  157.    (etc.)
  158.  
  159. Note  that  eight spaces must be allowed for variable  names,  leave
  160. blanks  if  necessary  to fill out the string.   Note  also  that  a
  161. missing  value code must be given for every variable.   The  example
  162. above used MAPSTAT's default value of -1E37 for missing  data,  this
  163. or another equally implausible value may be given in the codebook.
  164.  
  165. Alternatively,  if  the  user  specifies  'none' in  answer  to  the
  166. codebook file query, variable names will default to variable numbers
  167. and  the  default  missing value will be assumed.   This  is  not  a
  168. recommended option if you will return to your output sometime in the
  169. future.
  170.  
  171. 3. Variable Column Identification -
  172.  
  173. After  file names the programs will typically request the number  of
  174. variables  in the data file and then the number of variables  to  be
  175. used in the present run.   For example, a CORREL run might be run on
  176. a file containing lines for 500 cases each with 12 variables, only 4
  177. of  which  are  to intercorrelated in the present  run.   The  total
  178. number  of variables would then be entered as 12 and the number  for
  179. the present run as 4.
  180.  
  181. For each variable to be used the program will request information on
  182. the column number of the variable (e.g.  1 for the first variable, 2
  183. for the second, etc.).  These are column numbers in the raw file not
  184. among the subset to be used.   In the above example,  say the first,
  185. third,  sixth, and eleventh of the 12 variables were to be used, the
  186. user would enter 1<RETURN> 3<RETURN> 6<RETURN> and 12<RETURN>.
  187.  
  188. 4. Specification of Groups, Weights and Special variables -
  189.  
  190. Occasionally,  the  programs  will ask you to identify  one  of  the
  191. variables for use in weighting data,  grouping data,  as a dependent
  192. variable, etc.  Again, reference is by original column number of the
  193. input  data set.   For example,  if the correlations in the  example
  194. above  were  to be weighted by population which is contained as  the
  195. sixth  variable,  you would identify the weight as  column  6,  it's
  196. position  in  the  raw  data file.   All of the  variables  used  as
  197. weights,  groups,  etc.,  must  have been included in  the  original
  198. number  of  variables  to use and selection of the columns  for  the
  199. analysis.   That  is,  it  would not be  possible  to  specify,  for
  200. example, column 4 as a weight since it has not been specified in the
  201. variable list above.
  202.  
  203. 5. Hints on Further Documentation -
  204.  
  205. All other information necessary is prompted for with what I hope are
  206. explicit prompts.   If you have problems as to input queries, or the
  207. interpretation of output,  refer to a statistics book.   Some of the
  208. multivariate  routines  are  recognizably  influenced  by  those  in
  209. Fortran  by  Cooley and Lohnes in their Multivariate  Data  Analysis
  210. book.   The Kmeans clustering routine is found in almost any book on
  211. cluster  analysis.   Some  routines  lifted from  numerical  methods
  212. books, etc., have references in the source code.  The transformation
  213. options  are relatively well elaborated if you initially specify  to
  214. input transformations for the CON:  file.   Once you become familiar
  215. with the program you can input transformations from files.
  216.  
  217. Finally,  I  am eminently reachable for the near present at the  BBS
  218. number at the end of this file.  If you have any questions regarding
  219. interpretation, etc., feel free to give me a line.
  220.  
  221. 6. Hints on Power Usage -
  222.  
  223. There  are  a  number of features which  the  design  philosophy  of
  224. mapstat  preclude.   However,  most  of these features  are  readily
  225. derivable through coupling TRANSFRM with the other programs.
  226.  
  227. For  example,  many  regression packages output residuals  from  the
  228. regression  and plots of the standardized residuals,  etc.   Mapstat
  229. does  not  force  such a second pass through the data  since  it  is
  230. designed  for  large  data sets without retention  of  the  data  in
  231. memory.  If the user desires such an analysis the residuals could be
  232. readily computed using TRANSFRM and then plotted with PLOT.
  233.  
  234. Similarly, FACTOR produces score coefficients which could be used to
  235. generate factor scores for further analysis etc.
  236.  
  237. Dummy  variables can be coded through use of the recoding facilities
  238. in  TRANSFRM  and used to compute complicated general  linear  model
  239. analyses of variance (GLM/ANOVA's) through REGRESS.
  240.  
  241. The  list  goes  on,  and on,  and on.   The  more  you  know  about
  242. statistics  and  what  you are doing the more you  will  find  these
  243. programs of use.  At the same time, if you are a basic user you will
  244. probably  not  require  more  than  the  basic  output  provided  by
  245. routines.
  246.  
  247.  
  248. PROGRAM LIMITATIONS:
  249.  
  250. The  addition  of  codebooks and transformation  files  makes  these
  251. routines  roughly competitive with other micro statistics  packages.
  252. Given  you have recieved them free of cost and,  "omigosh," with the
  253. source code,  they are extremely flexible and useful tools for  data
  254. analysis.
  255.  
  256. Both  DESCRPT  and  CORREL now allow weighted data  to  be  entered.
  257. While the Spicer algorithm provides good accuracy on computations in
  258. both these programs it is not as robust against weighted data.   The
  259. results  are sufficent for most purposes but excercixe caution  with
  260. heavily weighted data.
  261.  
  262. At this stage with humble documentation it is up to the user to look
  263. at  the  beginning  type and variable declarations to see  what  the
  264. limitations on the number of variables,  etc.,  of each program are.
  265. I  think if you are doing any REAL data analysis you will  find  the
  266. provisions ample.
  267.  
  268. I  have  relied  almost exclusively upon these routines  in  several
  269. analyses published over the last couple of years and they have  been
  270. scrutinized by a number of graduate students and colleagues.   While
  271. I can't guarantee any revision won't create some obscure bug,  I can
  272. assure  you there are no subtle bugs of any significance for regular
  273. data analysis.   As with all statistical software,  you should avoid
  274. absurd or extreme value input.
  275.  
  276. Leave messages on the LILLIPUTE ZNODE (312-649-1730).
  277.