nk 1.0.0
C++ Numerical Computing Runtime
Loading...
Searching...
No Matches

Descriptive statistics. More...

#include <memory_resource>
#include <nk/value/value.hpp>
#include <limits>
#include <string>
#include <tuple>
#include <utility>
#include <vector>

Go to the source code of this file.

Classes

struct  nk::stats::CanoncorrResult
 Canonical correlation analysis ([A, B, r] = canoncorr(X, Y)). More...
struct  nk::stats::NormalizeResult
 Column-wise normalisation (Y = normalize(A, method)). More...
struct  nk::stats::Grp2idxResult
 Result of grp2idx — [G, GN, GL]. More...

Functions

Value nk::stats::var (const Value &x, int normFlag=0, int dim=0, std::pmr::memory_resource *mr=nullptr)
 Sample / population variance along dim (y = var(X, normFlag, dim)).
Value nk::stats::stdev (const Value &x, int normFlag=0, int dim=0, std::pmr::memory_resource *mr=nullptr)
 Sample / population standard deviation (y = std(X, normFlag, dim)).
Value nk::stats::median (const Value &x, int dim=0, std::pmr::memory_resource *mr=nullptr)
 Median along dim (y = median(X, dim)).
Value nk::stats::quantile (const Value &x, const Value &p, int dim=0, std::pmr::memory_resource *mr=nullptr)
 Empirical quantile (q = quantile(X, p, dim)).
Value nk::stats::prctile (const Value &x, const Value &p, int dim=0, std::pmr::memory_resource *mr=nullptr)
 Empirical percentile (q = prctile(X, p, dim)).
std::tuple< Value, Value > nk::stats::mode (const Value &x, int dim=0, std::pmr::memory_resource *mr=nullptr)
 Mode and frequency ([m, f] = mode(X, dim)).
Value nk::stats::cov (const Value &x, int normFlag=0, std::pmr::memory_resource *mr=nullptr)
 Sample / population covariance (C = cov(X, normFlag)).
Value nk::stats::cov (const Value &x, const Value &y, int normFlag=0, std::pmr::memory_resource *mr=nullptr)
 Joint covariance of two vectors (C = cov(X, Y, normFlag)).
Value nk::stats::corrcoef (const Value &x, std::pmr::memory_resource *mr=nullptr)
 Pearson correlation matrix (R = corrcoef(X)).
Value nk::stats::corrcoef (const Value &x, const Value &y, std::pmr::memory_resource *mr=nullptr)
 Joint correlation matrix (R = corrcoef(X, Y)).
std::tuple< Value, Value > nk::stats::bounds (const Value &x, int dim=0, std::pmr::memory_resource *mr=nullptr)
 Min and max along dim ([lo, hi] = bounds(X, dim)).
Value nk::stats::iqr (const Value &x, int dim=0, std::pmr::memory_resource *mr=nullptr)
 Interquartile range (r = iqr(X, dim)).
Value nk::stats::maxk (const Value &x, int k, int dim=0, std::pmr::memory_resource *mr=nullptr)
 k largest values along dim (y = maxk(X, k, dim)).
Value nk::stats::mink (const Value &x, int k, int dim=0, std::pmr::memory_resource *mr=nullptr)
 k smallest values along dim (y = mink(X, k, dim)).
Value nk::stats::rmse (const Value &f, const Value &a, int dim=0, std::pmr::memory_resource *mr=nullptr)
 Root-mean-square error (e = rmse(F, A, dim)).
Value nk::stats::mape (const Value &f, const Value &a, int dim=0, std::pmr::memory_resource *mr=nullptr)
 Mean absolute percentage error (e = mape(F, A, dim)).
Value nk::stats::partialcorr_of (const Value &X, const Value &Y, const Value &Z, std::pmr::memory_resource *mr=nullptr)
 Partial correlation controlling for Z (R = partialcorr(X, Y, Z)).
Value nk::stats::partialcorr_xx (const Value &X, std::pmr::memory_resource *mr=nullptr)
 One-argument partial correlation: pairwise partial correlation between columns of X, controlling for the remaining columns of X (R = partialcorr(X)).
Value nk::stats::partialcorr_xz (const Value &X, const Value &Z, std::pmr::memory_resource *mr=nullptr)
 Two-argument partial correlation (R = partialcorr(X, Z)).
Value nk::stats::partialcorri (const Value &Y, const Value &X, const Value &Z={}, std::pmr::memory_resource *mr=nullptr)
 Partial correlation between each column of Y and each column of X, controlling for the remaining columns of X (and optionally Z).
CanoncorrResult nk::stats::canoncorr (const Value &X, const Value &Y, std::pmr::memory_resource *mr=nullptr)
 Canonical correlation analysis ([A, B, r] = canoncorr(X, Y)).
Value nk::stats::corr_xx (const Value &X, std::pmr::memory_resource *mr=nullptr)
 Auto-correlation across columns of X (R = corr(X)).
Value nk::stats::corr_xy (const Value &X, const Value &Y, std::pmr::memory_resource *mr=nullptr)
 Cross-correlation between columns of X and Y (R = corr(X, Y)).
Value nk::stats::detrend_of (const Value &x, int order=1, std::pmr::memory_resource *mr=nullptr)
 Remove polynomial trend (y = detrend(x, order)).
Value nk::stats::isoutlier_of (const Value &x, std::pmr::memory_resource *mr=nullptr)
 Outlier mask (tf = isoutlier(x)).
Value nk::stats::rmoutliers_of (const Value &x, std::pmr::memory_resource *mr=nullptr)
 Remove outliers (y = rmoutliers(x)).
Value nk::stats::fillmissing_of (const Value &x, const std::string &method, double constVal=0.0, std::pmr::memory_resource *mr=nullptr)
 Fill missing values (y = fillmissing(x, method, constVal)).
Value nk::stats::rmmissing_of (const Value &x, std::pmr::memory_resource *mr=nullptr)
 Remove rows / cols containing missing values (y = rmmissing(x)).
Value nk::stats::standardizeMissing_of (const Value &x, double sentinel, std::pmr::memory_resource *mr=nullptr)
 Convert sentinel value to missing (y = standardizeMissing(x, sentinel)).
Value nk::stats::range_of (const Value &x, int dim=0, std::pmr::memory_resource *mr=nullptr)
 Range = max - min along dim (r = range(x, dim)).
Value nk::stats::mad_of (const Value &x, int flag=0, int dim=0, std::pmr::memory_resource *mr=nullptr)
 Mean absolute deviation (y = mad(x, flag, dim)).
Value nk::stats::geomean_of (const Value &x, int dim=0, std::pmr::memory_resource *mr=nullptr)
 Geometric mean (g = geomean(x, dim)).
Value nk::stats::harmmean_of (const Value &x, int dim=0, std::pmr::memory_resource *mr=nullptr)
 Harmonic mean (h = harmmean(x, dim)).
Value nk::stats::moment_of (const Value &x, int order, int dim=0, std::pmr::memory_resource *mr=nullptr)
 k-th central moment (m = moment(x, k, dim)).
Value nk::stats::trimmean_of (const Value &x, double pct, int dim=0, bool useFloor=false, std::pmr::memory_resource *mr=nullptr)
 Trimmed mean (m = trimmean(x, pct, dim)).
std::tuple< Value, Value, Value > nk::stats::prepareCurveData (const Value &x, const Value &y, const Value &w, std::pmr::memory_resource *mr=nullptr)
 Curve-data cleanup ([xo, yo, wo] = prepareCurveData(x, y, w)).
std::tuple< Value, Value, Value > nk::stats::prepareSurfaceData (const Value &x, const Value &y, const Value &z, std::pmr::memory_resource *mr=nullptr)
 Surface-data cleanup ([xo, yo, zo] = prepareSurfaceData(x, y, z)).
std::tuple< Value, Value, Value, Value, Value, Value, Value > nk::stats::datastats (const Value &x, std::pmr::memory_resource *mr=nullptr)
 Dataset descriptive summary (datastats(x)).
std::tuple< Value, Value > nk::stats::ecdf (const Value &y, std::pmr::memory_resource *mr=nullptr)
 Empirical cumulative distribution function ([f, x] = ecdf(y)).
std::tuple< Value, Value, Value > nk::stats::ksdensity (const Value &x, const Value &pts, double bw_user, std::pmr::memory_resource *mr=nullptr)
 Kernel density estimate ([f, xi, bw] = ksdensity(x, pts, bw_user)).
std::tuple< Value, Value > nk::stats::ecdfhist (const Value &f, const Value &x, int m=10, std::pmr::memory_resource *mr=nullptr)
 Histogram from empirical CDF ([n, c] = ecdfhist(f, x, m)).
NormalizeResult nk::stats::normalize (const Value &A, const std::string &method, const Value &param=Value::Empty, std::pmr::memory_resource *mr=nullptr)
 Normalizes data using z-score, min-max, scale, or center methods ([N, C, S] = normalize(...)).
Value nk::stats::rescale (const Value &A, double lo, double hi, std::pmr::memory_resource *mr=nullptr, double inputMin=std::numeric_limits< double >::quiet_NaN(), double inputMax=std::numeric_limits< double >::quiet_NaN())
 Linear range remap (Y = rescale(A, lo, hi)).
Value nk::stats::zscore (const Value &A, std::pmr::memory_resource *mr=nullptr)
 Z-score normalisation (Y = zscore(A)).
std::pair< Value, Value > nk::stats::tiedrank (const Value &x, std::pmr::memory_resource *mr=nullptr)
 Tie-corrected ranks ([r, tieadj] = tiedrank(x)).
std::tuple< Value, Value, Value > nk::stats::autocorr (const Value &y, int numLags=-1, double numSTD=2.0, std::pmr::memory_resource *mr=nullptr)
 Sample autocorrelation function ([acf, lags, bounds] = autocorr(y)).
std::tuple< Value, Value, Value > nk::stats::crosscorr (const Value &y1, const Value &y2, int numLags=-1, double numSTD=2.0, std::pmr::memory_resource *mr=nullptr)
 Sample cross-correlation function ([xcf, lags, bounds] = crosscorr(y1, y2)).
std::tuple< Value, Value, Value > nk::stats::parcorr (const Value &y, int numLags=-1, double numSTD=2.0, std::pmr::memory_resource *mr=nullptr)
 Sample partial autocorrelation function ([pacf, lags, bounds] = parcorr(y)).
std::pair< Value, Value > nk::stats::corrcov (const Value &C, std::pmr::memory_resource *mr=nullptr)
 Correlation matrix from covariance ([R, sigma] = corrcov(C)).
Value nk::stats::tabulate (const Value &x, std::pmr::memory_resource *mr=nullptr)
 Frequency table (T = tabulate(x)).
std::pair< Value, Value > nk::stats::cholcov (const Value &SIGMA, std::pmr::memory_resource *mr=nullptr)
 Cholesky-like factor of a covariance matrix ([T, p] = cholcov(SIGMA)).
std::tuple< Value, double, double > nk::stats::crosstab (const Value &x, const Value &y_opt=Value::Empty, std::pmr::memory_resource *mr=nullptr)
 Contingency table ([T, chi2, p] = crosstab(x, y_opt)).
std::vector< Value > nk::stats::grpstats (const Value &X, const Value &group, const std::vector< std::string > &fn_names, std::pmr::memory_resource *mr=nullptr)
 Per-group statistics (grpstats(X, group, fn_names)).
Value nk::stats::nearcorr (const Value &A, std::pmr::memory_resource *mr=nullptr)
 Nearest correlation matrix (Y = nearcorr(A)).
Grp2idxResult nk::stats::grp2idx (const Value &s, std::pmr::memory_resource *mr=nullptr)
 Grouping variable → index vector ([G, GN, GL] = grp2idx(s)).
Value nk::stats::filloutliers (const Value &A, const Value &fillMethod, const std::string &findMethod="median", double thresholdFactor=std::numeric_limits< double >::quiet_NaN(), std::pmr::memory_resource *mr=nullptr)
 Replace outliers (B = filloutliers(A, fillMethod, findMethod, tf)).

Detailed Description

Descriptive statistics.

Conventions across this header:

  • dim is 1-based.
  • dim == 0 means "use the first non-singleton dim" — the behaviour when the argument is omitted.
  • Vector / scalar inputs ignore dim — the whole input collapses to a scalar.
  • For var/std: normFlag == 0 → divide by N-1 (unbiased, default), normFlag == 1 → divide by N (population).

Definition in file descriptive.hpp.