Uniform distribution
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 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:
«min» := Min(X,I) - 0.5 * (Max(X,I)-Min(X,I)) / Sum(1,I) «max» := Max(X,I) + 0.5 * (Max(X,I)-Min(X,I)) / Sum(1,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:
«min» := Floor(Min(X,I) - 0.5 * (Max(X,I)-Min(X,I)) / Sum(1,I)) «max» := Ceil(Max(X,I) + 0.5 * (Max(X,I)-Min(X,I)) / Sum(1,I))
Enable comment auto-refresher