Statistical Distributions

Statistical distributions are the foundation of realistic data generation. The SDK provides a comprehensive set of distributions to model various real-world scenarios.

Available Distributions

Normal Distribution

Bell curve distribution, perfect for natural phenomena like height, weight, or IQ.

const age = new NormalDistribution(35, 10);
// mean: 35, stdDev: 10
const sample = age.sample(); // e.g., 32.5

Uniform Distribution

Equal probability across a range, ideal for random selections within bounds.

const income = new UniformDistribution(40000, 120000);
// min: 40k, max: 120k
const sample = income.sample(); // e.g., 75432

Categorical Distribution

Discrete values with probabilities, perfect for categories like occupation or status.

const occupation = new CategoricalDistribution([
{ value: 'Engineer', probability: 0.4 },
{ value: 'Designer', probability: 0.3 },
{ value: 'Manager', probability: 0.3 }
]);
const sample = occupation.sample(); // e.g., 'Engineer'

Exponential Distribution

Time between events, like customer arrivals.

const waitTime = new ExponentialDistribution(0.5);
// lambda: 0.5 (rate parameter)
const sample = waitTime.sample(); // e.g., 1.38 minutes

Beta Distribution

Probabilities and percentages.

const successRate = new BetaDistribution(2, 5);
// alpha: 2, beta: 5
const sample = successRate.sample(); // e.g., 0.23 (23%)

Poisson Distribution

Count of events in fixed time.

const emailsPerHour = new PoissonDistribution(3);
// lambda: 3 (average events per period)
const sample = emailsPerHour.sample(); // e.g., 2 emails

Custom Distribution

Create your own distributions.

class TriangularDistribution extends BaseDistribution<number> {
constructor(min: number, max: number, mode: number) {
super();
this.min = min;
this.max = max;
this.mode = mode;
}
sample(): number {
// Implementation here
const u = Math.random();
// ... triangular distribution logic
return value;
}
}
const custom = new TriangularDistribution(0, 100, 75);
const sample = custom.sample(); // e.g., 68.2