micro-stats

  1. micro-stats
  2. Documentation
    1. Types
      1. sequence
      2. binary-predicate
      3. statistics-alist
    2. Usage
    3. generate-statistics
    4. basic-statistics
    5. generate-statistics-alist
    6. percentile
    7. arithmetic-mean
    8. mean
    9. median
    10. mode
    11. variance
    12. standard-deviation
  3. Requirements
  4. Authors
  5. Repository
  6. Version history
  7. License

This egg provides simple statistical operations. Very simple.

Documentation

Types

sequence

binary-predicate

statistics-alist

[type] sequence : (or string vector list ...)
[type] binary-predicate : ('a 'a --> boolean)
[type] statistics-alist : (list-of (pair symbol *))

Note a sequence as understood by the sequences egg.

Usage

(import micro-stats)

generate-statistics

[procedure] (generate-statistics SEQ [SET-ID]) -> statistics-alist
SEQ
(sequence-of real) ; SEQ of all iterations, in microseconds
SET-ID
symbol ; 'normal

Returns an alist with the following:

size
the count of the SEQ
min
the minimum of the SEQ
max
the maximum of the SEQ
mean
arithmetic-mean alias
arithmetic-mean
the arithmetic average of the SEQ
sd
standard-deviation alias
sigma
standard-deviation alias
standard-deviation
the standard deviation for the SEQ

When verbose adds the following:

95th
the 95th percentile of the SEQ
harmonic-mean
the harmonic average of the SEQ
geometric-mean
the geometric average of the SEQ
median
the median of the SEQ
mode
the mode of the SEQ
var
variance alias
sigma^2
variance alias
variance
the variance for the SEQ

basic-statistics

[procedure] (basic-statistics SEQ) -> (vector-of real)

Returns #(m h g s v) for the SEQ.

SEQ
(sequence-of real) ; the sample

generate-statistics-alist

[procedure] (generate-statistics-alist SEQ FUNCS [BASICS]) -> statistics-alist

Returns an alist for a set of statistical functions results.

SEQ
(sequence-of real) ; the sample
FUNCS
(list-of function-spec); the report template
BASICS
#(m h g s v) ; required statistics

A function-spec is:

size
sample count
min
sample minimum
max
sample maximum
arithmetic-mean
sample arithmetic-average
standard-deviation
sample standard-deviation
percentile
sample Pth-percentile ; default is 95
harmonic-mean
sample harmonic-average
geometric-mean
sample geometric-average
median
sample median
mode
sample mode
variance
sample variance
(KEY . (F [PARAM ...]))
sample parameterized (: F function-spec)

percentile

[procedure] (percentile SEQ [P]) -> real

Returns Pth percentile of SEQ.

SEQ
(sequence-of real)
P
[0 .. 100] ; defaults is 95

arithmetic-mean

[procedure] (arithmeticmean SEQ) -> real

Returns the arithmetic mean for SEQ.

SEQ
(sequence-of real)

mean

[procedure] (mean SEQ) -> real real real

Returns the arithmetic, harmonic, & geometric means for SEQ.

SEQ
(sequence-of real)

median

[procedure] (median SEQ [<?]) -> real

Returns the median of the SEQ.

SEQ
(sequence-of real)
<?
binary-predicate ; less-than predicate, default <

mode

[procedure] (mode SEQ [=?]) -> real

Returns the mode of the SEQ.

SEQ
(sequence-of real)
=?
binary-predicate ; equality predicate, default =

variance

[procedure] (variance SEQ MEAN) -> real

Returns the variance for SEQ, given the MEAN.

standard-deviation

[procedure] (standard-deviation SEQ [MEAN]) -> real real

Returns the standard-deviation, & variance for SEQ, given the MEAN. Calculates the MEAN when not given.

SEQ
(sequence-of real)
MEAN
real

Requirements

srfi-1 sequences sequences-utils

Authors

David Krentzlin Kon Lovett

Repository

This egg is hosted on the CHICKEN Subversion repository:

https://anonymous@code.call-cc.org/svn/chicken-eggs/release/5/micro-stats

If you want to check out the source code repository of this egg and you are not familiar with Subversion, see this page.

Version history

0.1.0
Add (sequences utils) dependency.
0.0.9
Deprecate unfold>alist as unfold->alist.
0.0.8
Add coercions. Better types. More tests.
0.0.7
Export arithmetic-mean & variance.
0.0.3
Missing dependency. Fix percentile side-effecting.
0.0.2
Fix category.
0.0.1
C5 release.

License

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or (at
your option) any later version.
This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
General Public License for more details.
A full copy of the GPL license can be found at
<http://www.gnu.org/licenses/>.