Math Module
rmath.stats
Descriptive and inferential statistics. All functions accept list[float] or rmath.Vector. Uses Welford's algorithm for numerically stable single-pass computations.
example.py
import rmath as rm
data = [2.4, 3.1, 2.8, 3.5, 2.9, 3.2]
report = rm.stats.describe(data)
# {'count': 6, 'mean': 2.98, 'variance': 0.14, ...}
t, p = rm.stats.t_test_independent(sample_a, sample_b)
Descriptive Statistics
| Function | Returns | Description |
|---|---|---|
sum(data) | float | Arithmetic sum |
mean(data) | float | Arithmetic mean (NaN for empty) |
median(data) | float | Median via O(N) selection |
mode(data) | float | Most frequent value |
variance(data) | float | Sample variance (ddof=1) |
std_dev(data) | float | Sample standard deviation |
skewness(data) | float | Fisher-Pearson skewness |
kurtosis(data) | float | Excess kurtosis (Fisher) |
iqr(data) | float | Interquartile range (Q3 − Q1) |
mad(data) | float | Median absolute deviation |
describe(data) | dict | Full summary: count, mean, variance, std, skewness, kurtosis |
Inferential Statistics
| Function | Returns | Description |
|---|---|---|
correlation(x, y) | float | Pearson correlation coefficient |
covariance(x, y) | float | Sample covariance |
spearman_correlation(x, y) | float | Spearman rank correlation |
t_test_independent(a, b) | (t_stat, p_value) | Welch's T-test for two samples |
anova_oneway(groups) | (F, df_between, df_within) | One-way ANOVA across groups |
Regression
| Function | Returns | Description |
|---|---|---|
linear_regression(x, y) | dict | Returns {'slope', 'intercept', 'r_squared'} |
Distributions
Normal(mu, sigma)
.pdf(x) | Probability density |
.cdf(x) | Cumulative distribution |
.ppf(x) | Percent-point function (inverse CDF) |
.mean() | Distribution mean |
StudentT(location, scale, freedom)
.pdf(x) · .cdf(x) · .ppf(x) |
Poisson(lambda_)
.pmf(k) | Probability mass function |
.cdf(k) | Cumulative distribution |
Exponential(rate)
.pdf(x) · .cdf(x) · .ppf(x) |