fix(spc): Cp/Cpk usa sigma within (MRbar/1.128), Pp/Ppk la stdev campionaria (#19)

Prima Cp/Cpk usava stdev campionaria e Pp/Ppk la population stdev: stesso
indice due volte, proporzionale. Ora Cp/Cpk (capability a breve termine)
usa sigma_within dalla moving range dei valori consecutivi in ordine
cronologico; Pp/Ppk (performance complessiva) resta sulla stdev campionaria
(n-1). MRbar == 0 -> Cp/Cpk None. Stessa sigma_within per UCL/LCL della
carta di controllo a valori individuali (mean +/- 2.66*MRbar), non piu la
stdev globale che allargava i limiti e nascondeva la deriva.

Aggiunto campo opzionale std_dev_within a CapabilityData.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-21 22:27:06 +02:00
parent 8cc5e8266a
commit 7249cb8a8c
3 changed files with 177 additions and 25 deletions
+2 -1
View File
@@ -50,7 +50,8 @@ class CapabilityData(BaseModel):
pp: Optional[float] = None
ppk: Optional[float] = None
mean: float
std_dev: float
std_dev: float # overall sample std dev (n-1), used for Pp/Ppk
std_dev_within: Optional[float] = None # MRbar/1.128, used for Cp/Cpk
n: int
utl: Optional[float] = None
ltl: Optional[float] = None