Funzionamento
Questa pagina descrive il flusso interno di standard_deviation e il modo in cui la funzione delega quasi tutto il lavoro a variance. A differenza di Panoramica, qui l’obiettivo non e ripetere i parametri, ma mostrare perche il comportamento pratico della deviazione standard coincide quasi interamente con quello della varianza.
I frammenti seguenti sono estratti dal codice attuale di src/mespy/stats_utils.py. Anche se _as_float_vector non compare direttamente nel corpo di standard_deviation, entra in gioco subito attraverso variance(...); lo stesso vale per _validate_weights quando w e presente.
Sequenza di esecuzione
L’implementazione segue questa sequenza:
Riceve
x,weddofsenza effettuare validazioni locali.Delega il calcolo della varianza a
variance.Applica
np.sqrt(...)al valore restituito.Converte il risultato in
floatPython.
Wrapper minimale sopra variance
def standard_deviation(
x: ArrayLike,
w: ArrayLike | None = None,
ddof: int | float = 0,
) -> float:
return float(np.sqrt(variance(x, w=w, ddof=ddof)))
Questo frammento mostra che standard_deviation non reimplementa nessuna parte della logica statistica.
Non valida direttamente
x: la validazione avviene dentrovariance(...).Non gestisce direttamente i pesi: anche questo controllo e delegato.
Non distingue con rami propri tra caso pesato e non pesato: eredita i due rami gia presenti nella varianza.
Formula implementata
La definizione operativa e semplicemente
oppure, nel caso pesato,
Per questo motivo tutto cio che influenza la varianza influenza automaticamente anche la deviazione standard.
ddofviene passato senza modifiche avariance(...).Se il denominatore della varianza diventa non positivo, l’errore nasce prima della radice quadrata.
Se i pesi sono invalidi, il fallimento avviene nel validatore comune dei pesi, non in
standard_deviationstessa.
Interazioni importanti con variance
Il comportamento pratico della funzione si capisce meglio leggendo questa dipendenza esplicita.
standard_deviation(x)equivale a prendere la radice quadrata della varianza non pesata conddof=0.standard_deviation(x, w=w)equivale a prendere la radice quadrata della varianza pesata costruita con gli stessi pesi.standard_deviation(x, ddof=1)non introduce una nuova convenzione: chiede semplicemente avariance(...)di usare un denominatore corretto.Di conseguenza, per capire davvero errori, casi limite e ruolo di
ddof, la pagina di riferimento restavariance.