robust_stats

Production-oriented robust statistics, streaming analytics, anomaly detection, and risk toolkit for MoonBit.

statistics
robust
math
data-analysis
moon add hxiuzheng/robust_stats@0.2.1
Download zip
Author
Version
0.2.1
License
Apache-2.0
Last updated
7 hours ago
Downloads
4
README

#moon-robust-stats

CI License

moon-robust-stats 是一个纯 MoonBit、无外部运行时依赖的鲁棒统计工具箱,面向 IoT 监控、工业传感器、量化风控和实验数据分析等包含异常值、缺失值或分布漂移的数据场景。

它将批量统计、流式聚合、滚动时间序列、异常检测、稳健回归、相关性分析、重采样区间和风险诊断组织在统一的 API 中,适合嵌入 MoonBit 服务、命令行工具和数据处理流水线。

#项目定位

传统均值和标准差容易被少量尖峰牵引。本项目提供以中位数、MAD、分位数和稳健估计量为基础的统计组件,让数据分析流程在异常观测存在时仍保持可解释性和可控性。

设计目标:

  • 纯 MoonBit 实现,保持跨原生、WebAssembly 和 JavaScript 目标的一致性。
  • 小型、可组合的 API,便于从单个估计量逐步组装完整分析流程。
  • 确定性随机数与可复现实验,便于回归测试和性能比较。
  • 对空输入、常数序列、极端值、窗口不足和退化矩阵等边界情况提供明确行为。

#核心能力

#鲁棒统计

  • 中位数、分位数、MAD、IQR、截尾均值和稳健尺度估计。
  • Huber、Tukey、S 推断等稳健估计与损失函数。
  • Hampel 过滤、IQR 规则、MAD 规则和多策略异常检测。
  • 缺失值处理、标准化、Winsor 化和数据质量摘要。

#流式与时间序列

  • 在线均值、方差、协方差和分位数摘要。
  • 固定窗口、滚动统计、趋势/波动信号和窗口化异常检测。
  • 支持逐点观测,适用于传感器、日志和监控数据流。

#建模与诊断

  • 稳健线性回归、加权回归和回归诊断。
  • 相关系数、协方差矩阵、矩阵运算和基础线性代数。
  • 聚类、重采样区间、风险指标、阈值评估和可解释诊断。

#安装

在 MoonBit 项目中添加模块依赖:

moon add hxiuzheng/robust_stats@0.2.0

在需要使用的包中导入:

import {
"hxiuzheng/robust_stats",
}

#快速开始

下面的示例计算稳健位置/尺度,并对一组观测执行 Hampel 异常过滤:

import {
"hxiuzheng/robust_stats",
}

fn main {
let readings = [1.0, 2.0, 3.0, 4.0, 100.0]
let center = @robust_stats.median(readings)
let scale = @robust_stats.mad(readings)
let filtered = @robust_stats.hampel_filter(readings, 3)

println("center=" + center.to_string())
println("mad=" + scale.to_string())
println("filtered=" + filtered.to_string())
}

流式检测可以逐点消费数据:

let detector = @robust_stats.WindowedAnomalyDetector::new(31, threshold=3.5)
for value in readings {
if detector.observe(value) {
println("anomaly=" + value.to_string())
}
}

#CLI

仓库包含一个可复现的基准命令:

moon run cmd/benchmark

该命令生成确定性的污染序列,运行核心估计、异常检测、滚动统计、稳健回归和流式路径,并输出耗时、吞吐量和结果摘要。它是性能基准驱动,不是面向 CSV/JSON 文件的通用数据导入 CLI;应用程序可以直接组合库 API 实现自己的输入层。

#架构

项目按统计职责拆分为可组合模块:

层次主要模块职责
基础统计median.mbtquantile.mbtdispersion.mbtranking.mbt位置、尺度、分位数和排序工具
稳健估计estimators.mbtoptimization.mbtoutlier.mbtscaling.mbt稳健估计、损失函数、异常值与尺度变换
流式与时序stream.mbtstreaming_advanced.mbtrolling.mbtsignal.mbttimeseries.mbt在线摘要、窗口计算和信号检测
建模regression.mbtcorrelation.mbtmatrix.mbtlinear_algebra.mbtclustering.mbt回归、相关性、矩阵和聚类
评估与风险resampling.mbtrisk.mbtdiagnostics.mbtevaluation.mbtpipeline.mbt不确定性、风险指标、诊断和流程编排
验证与基准*_test.mbtbenchmark.mbtcmd/benchmark边界测试、回归测试和性能测量

公共 API 集中在根包中;实现细节按模块隔离,便于单独测试和后续扩展。

#基准

基准数据和运行说明位于 benchmarks/README.md。基准使用固定种子生成包含尖峰、漂移、常数片段和缺失值的序列,覆盖以下路径:

  • 批量位置与尺度估计。
  • Hampel/IQR/MAD 异常检测。
  • 滚动统计与窗口化检测。
  • 流式摘要与稳健回归。
  • 协方差、风险指标和重采样区间。

运行基准后应保存完整终端输出、目标平台和 MoonBit 工具链版本;不同硬件之间只比较同一环境下的相对变化。

#测试

本地常用检查:

moon check --deny-warn moon build --target all --deny-warn moon test --target native --deny-warn moon test --target wasm --deny-warn moon test --target wasm-gc --deny-warn

如果本机已安装 Node.js,也可以运行完整目标矩阵:

moon test --target all --deny-warn

测试覆盖核心估计量、流式/窗口状态、异常值策略、退化输入、数值边界、矩阵运算和跨目标行为。新增算法应同时补充正常路径、空/短输入、极端值和退化状态测试。

#CI

GitHub Actions 工作流位于 .github/workflows/test.yml,在 Linux、macOS 和 Windows 上执行:

  • 安装并缓存 stable MoonBit 工具链。
  • 运行依赖更新、格式检查、包信息检查和警告拒绝检查。
  • 构建并测试 native、wasm、wasm-gc 和 all 目标。
  • 运行可复现基准,帮助识别性能回归。

推送到默认分支或提交 Pull Request 后会自动触发 CI。

#许可证

本项目使用 Apache License 2.0 发布。

⚠️ Package is too large to be displayed

This package contains over 1735 items.