Difference between revisions of "Uniform distribution"

Line 30: Line 30:
 
= Parameter Estimation =
 
= Parameter Estimation =
  
Suppose you have real-valued historic data in ''X'', indexed by ''I'', and you wish to estimate the parameters of the continuous uniform distribution.  This is really just a matter of estimating the lower and upper bounds for the data, since the use of this distribution assumes a uniform distribution between those bounds.  The bounds can be estimated using:
+
Suppose you have real-valued historic data in ''X'', indexed by ''I'', and you wish to estimate the bounds of the continuous uniform distribution.  This is really just a matter of estimating the lower and upper bounds for the data, since the use of this distribution assumes a uniform distribution between those bounds.  You can estimate the bounds as:
  «min» := [[Min]](X,I) - 0.5 * ([[Max]](X,I)-[[Min]](X,I)) / [[Sum]](1,I)
+
  Xmin := [[Min]](X,I) - 0.5 * ([[Max]](X,I)-[[Min]](X,I)) / Size(I)
  «max» := [[Max]](X,I) + 0.5 * ([[Max]](X,I)-[[Min]](X,I)) / [[Sum]](1,I)
+
  Xmax := [[Max]](X,I) + 0.5 * ([[Max]](X,I)-[[Min]](X,I)) / Size(I)
  
If you have discrete integer data in ''D'' indexed by ''I'' and wish to estimate the parameters «min» and «max» for the integer uniform distribution [[Uniform]](«min»,«max»,Integer:True), then the following parameter estimation formulae are appropriate:
+
If you have discrete integer data in ''D'' indexed by ''I'', you can estimate the parameters for the integer uniform distribution [[Uniform]](Xmin, Xmax, Integer: True) as:
  «min» := [[Floor]]([[Min]](X,I) - 0.5 * ([[Max]](X,I)-[[Min]](X,I)) / [[Sum]](1,I))
+
  Xmin := [[Floor]]([[Min]](D, I) - 0.5 * ([[Max]](D, I)-[[Min]](D, I)) / Size(I)
  «max» := [[Ceil]]([[Max]](X,I) + 0.5 * ([[Max]](X,I)-[[Min]](X,I)) / [[Sum]](1,I))
+
  Xmax  := [[Ceil]]([[Max]](D, I) + 0.5 * ([[Max]](D, I)-[[Min]](D, I)) / Size(I)
  
 
= See Also =
 
= See Also =

Revision as of 18:22, 13 November 2009

Function Uniform(a, b)

Returns a value (sample) with values uniformly distributed between numbers a and b. For example,

Uniform(a, b)

is a continuous distribution in which all numbers between a and b are equally probable.

If you omit a and b, it returns a unit uniform -- that is with numbers distributed evenly between 0 and 1.

If you set optional parameter Integer as true, it returns a discrete uniform distribution over the integers between a and b. For example:

Uniform(1, 100, Integer: True)

is a discrete distribution where each integer 1, 2, ... 99, 100 has an equal probability of 1%.

If you want a discrete uniform distribution over each value of an index I, use ChanceDist:

ChanceDist(1/Size(I), I)

Like most distributions, you may use the Over parameter to generate an array of independent distributions for each combination of indexes. For example:

Uniform(Over: I, J)

returns an independent Uniform(0,1) distribution for each combination of values in indexes I and J.

Library

Distribution

Declaration

Uniform(min: Numeric=0; max: Numeric=1; integer: Boolean=false; over: ... Optional Atomic)

Parameter Estimation

Suppose you have real-valued historic data in X, indexed by I, and you wish to estimate the bounds of the continuous uniform distribution. This is really just a matter of estimating the lower and upper bounds for the data, since the use of this distribution assumes a uniform distribution between those bounds. You can estimate the bounds as:

Xmin := Min(X,I) - 0.5 * (Max(X,I)-Min(X,I)) / Size(I)
Xmax := Max(X,I) + 0.5 * (Max(X,I)-Min(X,I)) / Size(I)

If you have discrete integer data in D indexed by I, you can estimate the parameters for the integer uniform distribution Uniform(Xmin, Xmax, Integer: True) as:

Xmin := Floor(Min(D, I) - 0.5 * (Max(D, I)-Min(D, I)) / Size(I)
Xmax  := Ceil(Max(D, I) + 0.5 * (Max(D, I)-Min(D, I)) / Size(I)

See Also

Comments


You are not allowed to post comments.