Saltar al contenido

27 · Biblioteca Estándar

Estadísticas (std::stats)

Tendencia central, dispersión, percentiles, correlación y regresión lineal con std::stats.

En esta página

std::stats provee funciones estadísticas sobre arrays numéricos — desde medias y medianas hasta desviación estándar, percentiles y regresión lineal. Todas las operaciones son cómputos puros sobre datos en memoria y se ejecutan directamente en el sandbox.


Tendencia central

stats.mean, stats.median y stats.mode calculan las tres medidas de tendencia central. stats.min, stats.max y stats.sum completan el conjunto de utilidades básicas sobre una secuencia.

Media, mediana, moda, min, max y suma de un array de muestras.

01-mean-median.zolo
Playground
// Feature: stats.mean / stats.median / stats.mode — central tendencies

// When to use: data analysis, performance metrics, monitoring.


use std::stats

let sample = [10.0, 20.0, 30.0, 40.0, 50.0]

// arithmetic mean.

print(stats.mean(sample))  // expected: 30


// median (middle value once sorted).

print(stats.median(sample))  // expected: 30


// mode (most frequent value).

let bimodal = [1.0, 2.0, 2.0, 3.0, 3.0, 3.0, 4.0]
print(stats.mode(bimodal))  // expected: 3


// min, max, sum — basic utilities.

print(stats.min(sample))  // expected: 10

print(stats.max(sample))  // expected: 50

print(stats.sum(sample))  // expected: 150


Dispersión, percentiles y correlación

Para series de latencias o métricas de monitoreo, stats.variance y stats.stddev miden la dispersión; stats.percentile(arr, p) calcula el percentil p (útil para p95/p99). stats.correlation devuelve el coeficiente de Pearson entre dos vectores, y stats.linear_regression ajusta una recta y = slope * x + intercept.

Varianza, desviación estándar, p95, correlación y regresión lineal simple.

02-variance-stddev.zolo
Playground
// Feature: stats.variance / stats.stddev / stats.percentile / correlation

// When to use: measure dispersion, deviation-based alerts, correlations.


use std::stats

let latencies = [120.0, 130.0, 125.0, 140.0, 110.0, 135.0, 128.0, 122.0]

// variance (mean of the squared deviations).

print(stats.variance(latencies))  // expected: float ~80


// standard deviation = sqrt(variance).

let sd = stats.stddev(latencies)
print(sd > 0.0)  // expected: true


// percentile(arr, p) — p in [0, 100].

print(stats.percentile(latencies, 50))  // expected: ~127 (median)

print(stats.percentile(latencies, 95))  // expected: p95 ~140


// Pearson correlation between two series (-1.0 .. 1.0).

let xs = [1.0, 2.0, 3.0, 4.0, 5.0]
let ys = [2.0, 4.0, 6.0, 8.0, 10.0]
let r = stats.correlation(xs, ys)
print(r)  // expected: 1.0 (perfectly correlated)


// Simple linear regression -> { slope, intercept }.

let lr = stats.linear_regression(xs, ys)
print(lr.slope)  // expected: 2.0

print(lr.intercept)  // expected: 0.0

Desafío

Carga una lista de tiempos de respuesta de una API y emite una alerta vía std::log.warn si el p95 supera 200 ms. Combina std::stats y std::log.

Consulta también

Índice global

Encuentra tu camino por Zolo

Prueba una idea

Empieza aquí

9 resultados

9 resultados

enespt-br