home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / 1987 / 09 / statis / lage.inc < prev    next >
Encoding:
Text File  |  1987-07-07  |  3.2 KB  |  103 lines

  1. {***************************************************************************}
  2. {*                              LAGE.INC                                   *}
  3. {*                   Lageparameter von Datenvectoren                       *}
  4. {***************************************************************************}
  5. {                        arithmetisches Mittel:                             }
  6. PROCEDURE mittel (vec : vector; VAR mit, varianz, standabw : REAL);
  7.  
  8. VAR sum1, sum2 : REAL;
  9.     i          : INTEGER;
  10.  
  11. BEGIN
  12.   sum1 := 0.0; sum2 := 0.0;
  13.   FOR I := 1 TO vec.n DO
  14.      BEGIN
  15.        sum1 := sum1 + vec.value[I];
  16.        sum2 := sum2 + vec.value[I] * vec.value[I];
  17.      END;
  18.   mit := sum1 / vec.n;
  19.   varianz := (sum2 - mit * sum1) / (vec.n - 1);
  20.   standabw := Sqrt(varianz);
  21. END;
  22. {---------------------------------------------------------------------------}
  23. {                gewogenes arithmetisches Mittel:                           }
  24. PROCEDURE gmittel (vec : vector; VAR mit, varianz, standabw : REAL);
  25.  
  26. VAR sum1, sum2 : REAL;
  27.     i          : INTEGER;
  28.  
  29. BEGIN
  30.   sum1 := 0; sum2 := 0;
  31.   FOR I := 1 TO vec.n DO
  32.      BEGIN
  33.        sum1 := sum1 + vec.value[I] * vec.gew[I];
  34.        sum2 := sum2 + vec.value[I] * vec.value[I] * vec.gew[I];
  35.      END;
  36.   mit := sum1 / vec.n;
  37.   varianz := (sum2 - mit * sum1) / (vec.n - 1);
  38.   standabw := Sqrt(varianz);
  39. END;
  40. {---------------------------------------------------------------------------}
  41. {             Utility zum standardisieren einer Stichprobe                  }
  42. PROCEDURE standard (xvec : Vector; VAR svec : Vector);
  43.  
  44. VAR xvar, mit, dummy : REAL;
  45.     i                : INTEGER;
  46.  
  47. BEGIN
  48.   mittel(xvec, mit, xvar, dummy);
  49.   svec.n := xvec.n;
  50.   IF xvar > 0.0 THEN
  51.   BEGIN
  52.     xvar := Sqrt(xvar);
  53.     FOR I := 1 TO xvec.n DO
  54.     BEGIN
  55.       svec.value[I] := (xvec.value[I]-mit)/xvar;  svec.gew[I] := xvec.gew[I];
  56.     END;
  57.   END;
  58. END;
  59. {---------------------------------------------------------------------------}
  60. FUNCTION variationskoeff (vec : vector) : REAL;
  61.  
  62. VAR i               : INTEGER;
  63.     xmit, sx, dummy : REAL;
  64.  
  65. BEGIN
  66.   mittel(vec, xmit, sx, dummy);  variationskoeff := sx / xmit
  67. END;
  68. {--------------------------------------------------------------------------}
  69. PROCEDURE spannweite (vec : vector; VAR min, max : REAL );
  70.  
  71. VAR i, j : INTEGER;
  72.  
  73. BEGIN
  74.   J := vec.n;
  75.   min := MaxReal;
  76.   max := MinReal;
  77.   FOR I:=1 TO J DO
  78.   BEGIN
  79.     IF vec.value[I] < min THEN min := vec.value[I];
  80.     IF vec.value[I] > max THEN max := vec.value[I];
  81.   END;
  82. END;
  83. {--------------------------------------------------------------------------}
  84. PROCEDURE descript;
  85.  
  86. VAR vec                    : vector;
  87.     mini, maxi, vz, st, mw : REAL;
  88.  
  89. BEGIN
  90.   readvector(vec);
  91.   mittel(vec, mw, vz, st);
  92.   WriteLn('Arithmetisches Mittel : ',mw);
  93.   WriteLn('Varianz               : ',vz);
  94.   WriteLn('Standardabweichung    : ',st);
  95.   spannweite(vec, mini, maxi);
  96.   WriteLn('Kleinster Wert        : ',mini);
  97.   WriteLn('Groesster Wert        : ',maxi);
  98.   WriteLn('Variationskoeffizient : ',variationskoeff(vec));
  99.   warten;
  100. END;
  101. {--------------------------------------------------------------------------}
  102. {                             Ende LAGE.INC                                }
  103.