stats.ts

Statistical analysis utilities. Pure functions with zero dependencies - can be used standalone for any data analysis.

Declarations
#

23 declarations

view source

stats_confidence_interval
#

stats.ts view source

(values: number[], options?: StatsConfidenceIntervalOptions | undefined): [number, number]

Calculate confidence interval for the mean.

values

- Array of numbers

type number[]

options?

- Configuration options

type StatsConfidenceIntervalOptions | undefined
optional

returns

[number, number]

[lower_bound, upper_bound]

stats_confidence_interval_from_summary
#

stats.ts view source

(mean: number, std_dev: number, sample_size: number, options?: StatsConfidenceIntervalOptions | undefined): [number, number]

Calculate confidence interval from summary statistics (mean, std_dev, sample_size). Useful when raw data is not available.

mean

- Mean of the data

type number

std_dev

- Standard deviation of the data

type number

sample_size

- Number of samples

type number

options?

- Configuration options

type StatsConfidenceIntervalOptions | undefined
optional

returns

[number, number]

[lower_bound, upper_bound]

stats_confidence_level_to_z_score
#

stats.ts view source

(level: number): number

Convert a confidence level (0-1) to a z-score. Uses a lookup table for common values, approximates others.

level

type number

returns

number

examples

Example 1

STATS_CONFIDENCE_Z_SCORES
#

stats_cv
#

stats.ts view source

(mean: number, std_dev: number): number

Calculate the coefficient of variation (CV). CV = standard deviation / mean, expressed as a ratio. Useful for comparing relative variability between datasets.

mean

type number

std_dev

type number

returns

number

stats_incomplete_beta
#

stats.ts view source

(x: number, a: number, b: number): number

Approximate regularized incomplete beta function for p-value calculation. Uses continued fraction expansion for reasonable accuracy.

x

type number

a

type number

b

type number

returns

number

stats_ln_gamma
#

stats.ts view source

(z: number): number

Log gamma function approximation (Lanczos approximation).

z

type number

returns

number

stats_mean
#

stats.ts view source

(values: number[]): number

Calculate the mean (average) of an array of numbers.

values

type number[]

returns

number

stats_median
#

stats.ts view source

(values: number[]): number

Calculate the median of an array of numbers.

values

type number[]

returns

number

stats_min_max
#

stats.ts view source

(values: number[]): { min: number; max: number; }

Calculate min and max values.

values

type number[]

returns

{ min: number; max: number; }

stats_normal_cdf
#

stats.ts view source

(x: number): number

Standard normal CDF approximation (Abramowitz and Stegun formula 7.1.26).

x

type number

returns

number

stats_outliers_iqr
#

stats.ts view source

(values: number[], options?: StatsOutliersIqrOptions | undefined): StatsOutlierResult

Detect outliers using the IQR (Interquartile Range) method. Values outside [Q1 - multiplier*IQR, Q3 + multiplier*IQR] are considered outliers.

values

type number[]

options?

type StatsOutliersIqrOptions | undefined
optional

returns

StatsOutlierResult

stats_outliers_mad
#

stats.ts view source

(values: number[], options?: StatsOutliersMadOptions | undefined): StatsOutlierResult

Detect outliers using the MAD (Median Absolute Deviation) method. More robust than IQR for skewed distributions. Uses modified Z-score: |0.6745 * (x - median) / MAD| Values with modified Z-score > threshold are considered outliers.

values

type number[]

options?

type StatsOutliersMadOptions | undefined
optional

returns

StatsOutlierResult

stats_percentile
#

stats.ts view source

(values: number[], p: number): number

Calculate a percentile of an array of numbers using linear interpolation. Uses the "R-7" method (default in R, NumPy, Excel) which interpolates between data points for more accurate percentile estimates, especially with smaller samples.

values

- Array of numbers

type number[]

p

- Percentile (0-1, e.g., 0.95 for 95th percentile)

type number

returns

number

stats_std_dev
#

stats.ts view source

(values: number[], mean?: number | undefined): number

Calculate the standard deviation of an array of numbers. Uses population standard deviation (divides by n, not n-1). For benchmarks with many samples, this is typically appropriate.

values

type number[]

mean?

type number | undefined
optional

returns

number

stats_t_distribution_p_value
#

stats.ts view source

(t: number, df: number): number

Approximate two-tailed p-value from t-distribution. For large df (>100), uses normal approximation. For smaller df, uses incomplete beta function.

t

- Absolute value of t-statistic

type number

df

- Degrees of freedom

type number

returns

number

Two-tailed p-value

stats_variance
#

stats.ts view source

(values: number[], mean?: number | undefined): number

Calculate the variance of an array of numbers.

values

type number[]

mean?

type number | undefined
optional

returns

number

stats_welch_t_test
#

stats.ts view source

(mean1: number, std1: number, n1: number, mean2: number, std2: number, n2: number): StatsWelchTTestResult

Calculate Welch's t-test statistic and degrees of freedom. Welch's t-test is more robust than Student's t-test when variances are unequal.

mean1

- Mean of first sample

type number

std1

- Standard deviation of first sample

type number

n1

- Size of first sample

type number

mean2

- Mean of second sample

type number

std2

- Standard deviation of second sample

type number

n2

- Size of second sample

type number

returns

StatsWelchTTestResult

StatsConfidenceIntervalOptions
#

stats.ts view source

StatsConfidenceIntervalOptions

Configuration options for confidence interval calculation.

z_score

Z-score for confidence level (default: 1.96 for 95% CI)

type number

confidence_level

Confidence level (0-1), alternative to z_score. If both provided, z_score takes precedence.

type number

StatsOutlierResult
#

stats.ts view source

StatsOutlierResult

Result from outlier detection.

cleaned

Values after removing outliers

type Array<number>

outliers

Detected outlier values

type Array<number>

StatsOutliersIqrOptions
#

stats.ts view source

StatsOutliersIqrOptions

Configuration options for IQR outlier detection.

iqr_multiplier

Multiplier for IQR bounds (default: 1.5)

type number

min_sample_size

Minimum sample size to perform outlier detection (default: 3)

type number

StatsOutliersMadOptions
#

stats.ts view source

StatsOutliersMadOptions

Configuration options for MAD outlier detection.

z_score_threshold

Modified Z-score threshold for outlier detection (default: 3.5)

type number

z_score_extreme

Extreme Z-score threshold when too many outliers detected (default: 5.0)

type number

mad_constant

MAD constant for normal distribution (default: 0.6745)

type number

outlier_ratio_high

Ratio threshold to switch to extreme mode (default: 0.3)

type number

outlier_ratio_extreme

Ratio threshold to switch to keep-closest mode (default: 0.4)

type number

outlier_keep_ratio

Ratio of values to keep in keep-closest mode (default: 0.8)

type number

min_sample_size

Minimum sample size to perform outlier detection (default: 3)

type number

iqr_options

Options to pass to IQR fallback when MAD is zero

StatsWelchTTestResult
#

stats.ts view source

StatsWelchTTestResult

Result from Welch's t-test calculation.

t_statistic

The t-statistic

type number

degrees_of_freedom

Welch-Satterthwaite degrees of freedom

type number

Imported by
#