iyulab/u-analytics

GitHub: iyulab/u-analytics

面向工业质量工程的 Rust 统计分析库,提供 SPC 控制图、过程能力分析、威布尔可靠性分析和变点检测等完整功能。

Stars: 0 | Forks: 0

# u-analytics [![Crates.io](https://img.shields.io/crates/v/u-analytics.svg)](https://crates.io/crates/u-analytics) [![docs.rs](https://docs.rs/u-analytics/badge.svg)](https://docs.rs/u-analytics) [![CI](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/ad6eed5bd6161337.svg)](https://github.com/iyulab/u-analytics/actions/workflows/ci.yml) [![License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE) 统计过程控制、过程能力分析、Weibull 可靠性、 变点检测、相关性、回归、分布分析以及 工业质量工程中的假设检验。 ## 模块 | 模块 | 描述 | |--------|-------------| | `spc` | 控制图(X̄-R, X̄-S, I-MR, P, NP, C, U, Laney P'/U', G, T)及 Nelson/WE 运行规则 | | `capability` | 过程能力指数(Cp, Cpk, Pp, Ppk, Cpm)、Sigma 水平以及 Box-Cox 非正态能力 | | `weibull` | Weibull 参数估计(MLE, MRR)及可靠性分析(R(t), MTBF, B-life) | | `detection` | 变点检测(CUSUM, EWMA) | | `smoothing` | 时间序列平滑(SES, Holt 线性趋势, Holt-Winters 季节性) | | `correlation` | 相关性分析(Pearson, Spearman, Kendall, 偏相关, 相关矩阵) | | `regression` | 回归分析(简单 OLS, 多元 OLS, VIF 多重共线性) | | `distribution` | 分布分析(ECDF, 直方图分箱 — Sturges/Scott/FD, QQ 图, KS 检验) | | `testing` | 假设检验(T 检验, ANOVA, 卡方, 正态性 — SW/AD/JB) | ## 功能 ### 统计过程控制 (SPC) 用于监控过程稳定性的控制图: - **计量型控制图**: X̄-R, X̄-S, 单值-MR - **计数型控制图**: P, NP, C, U - **过度离散调整**: Laney P' 和 U'(φ 系数校正组间变异) - **稀有事件**: G 图(几何分布)和 T 图(指数分布),适用于低缺陷过程 - **运行规则**: Nelson(8 条规则),Western Electric(4 条规则) ``` use u_analytics::spc::{XBarRChart, ControlChart}; let mut chart = XBarRChart::new(5); chart.add_sample(&[25.0, 26.0, 24.5, 25.5, 25.0]); chart.add_sample(&[25.2, 24.8, 25.1, 24.9, 25.3]); chart.add_sample(&[25.1, 25.0, 24.7, 25.3, 24.9]); if chart.is_in_control() { println!("Process is stable"); } ``` ``` use u_analytics::spc::{laney_p_chart, g_chart}; // Laney P' chart for overdispersed proportion data // samples: (defective count, subgroup size) let samples = vec![(3u64, 100u64), (5, 120), (2, 95)]; let chart = laney_p_chart(&samples).unwrap(); println!("p̄ = {:.4}, φ = {:.4}", chart.p_bar, chart.phi); // G chart for rare events (e.g., days between nonconformances) let inter_event_counts = vec![12.0, 8.0, 25.0, 5.0, 18.0]; let gchart = g_chart(&inter_event_counts).unwrap(); ``` ### 过程能力 量化过程相对于规格性能的能力指数: - **短期**: Cp, Cpk, Cpu, Cpl - **长期**: Pp, Ppk, Ppu, Ppl - **Taguchi**: Cpm - **Sigma 水平**: PPM ↔ Sigma 转换(1.5σ 偏移惯例) - **非正态**: Box-Cox 变换 + 变换尺度上的能力分析 ``` use u_analytics::capability::{ProcessCapability, sigma_to_ppm}; let spec = ProcessCapability::new(Some(220.0), Some(200.0)).unwrap(); let data = [210.0, 209.5, 210.2, 209.8, 210.1, 210.3, 209.7, 210.0]; let indices = spec.compute(&data, 0.15).unwrap(); println!("Cp = {:.2}, Cpk = {:.2}", indices.cp.unwrap(), indices.cpk.unwrap()); println!("6σ PPM = {:.1}", sigma_to_ppm(6.0)); // 3.4 ``` ``` use u_analytics::capability::boxcox_capability; // Non-normal data: auto-estimate λ, transform spec limits, compute Ppk let skewed_data = vec![0.5, 1.2, 0.8, 2.1, 0.3, 1.7, 0.9, 1.4]; let result = boxcox_capability(&skewed_data, Some(5.0), Some(0.1)).unwrap(); println!("λ = {:.3}, Ppk = {:.3}", result.lambda, result.indices.ppk.unwrap()); ``` ### Weibull 可靠性 参数估计和可靠性工程指标: - **MLE**: 极大似然估计 - **MRR**: 中位秩回归 - **可靠性**: R(t), 失效率, MTBF, B-life ``` use u_analytics::weibull::{weibull_mle, ReliabilityAnalysis}; let failure_times = [150.0, 200.0, 250.0, 300.0, 350.0, 400.0]; let fit = weibull_mle(&failure_times).unwrap(); let ra = ReliabilityAnalysis::from_mle(&fit); println!("R(200h) = {:.1}%", ra.reliability(200.0) * 100.0); println!("MTBF = {:.0}h", ra.mtbf()); println!("B10 life = {:.0}h", ra.b_life(0.10).unwrap()); ``` ### 变点检测 用于检测过程均值偏移的算法: - **CUSUM**: 累积和图(Page, 1954) - **EWMA**: 指数加权移动平均(Roberts, 1959) ``` use u_analytics::detection::Cusum; let cusum = Cusum::new(10.0, 1.0).unwrap(); let data = [10.1, 9.9, 10.0, 10.2, 12.0, 12.1, 11.9, 12.3]; let signals = cusum.signal_points(&data); ``` ## 测试状态 ``` 446 lib tests + 68 doc-tests = 514 total 0 clippy warnings ``` ## 依赖 - [`u-numflow`](https://crates.io/crates/u-numflow) -- 统计、特殊函数、概率分布 ## 参考文献 - Montgomery, D.C. (2019). *Introduction to Statistical Quality Control*, 8th ed. - Nelson, L.S. (1984). "The Shewhart Control Chart -- Tests for Special Causes" - Abernethy, R.B. (2006). *The New Weibull Handbook*, 5th ed. - Page, E.S. (1954). "Continuous Inspection Schemes", *Biometrika* - Roberts, S.W. (1959). "Control Chart Tests Based on Geometric Moving Averages" - Laney, D.B. (2002). "Improved Control Charts for Attributes", *Quality Engineering* 14(4), 531–537 - Stephens, M.A. (1974). "EDF Statistics for Goodness of Fit", *JASA* 69(347), 730–737 - Box, G.E.P. & Cox, D.R. (1964). "An Analysis of Transformations", *JRSS-B* 26(2), 211–252 ## 相关 - [u-numflow](https://crates.io/crates/u-numflow) -- 数学原语 - [u-insight](https://github.com/iyulab/u-insight) -- 带 C FFI 的统计分析引擎 - [u-metaheur](https://crates.io/crates/u-metaheur) -- 元启发式算法 - [u-geometry](https://crates.io/crates/u-geometry) -- 计算几何 - [u-schedule](https://crates.io/crates/u-schedule) -- 调度框架 ## 许可证 MIT
标签:Rust, SPC, 代码示例, 假设检验, 六西格玛, 变点检测, 可视化界面, 可靠性分析, 回归分析, 威布尔分布, 工业工程, 工程计算, 控制图, 数学库, 数据分析, 数据管道, 时间序列, 正态性检验, 统计分析, 网络流量审计, 质量控制, 软件工程, 过程控制, 过程能力, 通知系统, 通知系统, 通知系统, 预测分析