Σ
SDCalc
IntermedioTutorial·15 min

Calcolare la deviazione standard in Excel e Python

Tutorial passo dopo passo per calcolare la deviazione standard in Excel (STDEV.S, STDEV.P) e Python (numpy, pandas, statistics). Con esempi di codice.

Excel: Panoramica

Microsoft Excel offre funzioni integrate per calcolare sia la deviazione standard campionaria che quella della popolazione. Queste funzioni sono disponibili in tutte le versioni moderne di Excel.

Funzioni di Excel

FunzioneTipoDescrizione
`STDEV.S()`CampionariaDeviazione standard campionaria (divide per n-1)
`STDEV.P()`PopolazioneDeviazione standard della popolazione (divide per N)
`STDEV()`CampionariaFunzione legacy, equivalente a STDEV.S
`STDEVP()`PopolazioneFunzione legacy, equivalente a STDEV.P

Esempi in Excel

Excel Formulas
// Data in cells A1:A10
=STDEV.S(A1:A10)     // Sample SD
=STDEV.P(A1:A10)     // Population SD

// For specific values
=STDEV.S(4, 8, 6, 5, 3)    // Returns 1.924

// Ignoring text and logical values
=STDEV.S(A1:A10)    // Ignores text
=STDEVA(A1:A10)     // Includes text as 0

Suggerimento

Usa STDEV.S per la maggior parte delle analisi reali. Utilizza STDEV.P solo quando sei certo di avere la popolazione completa.

Python: Panoramica

Python offre diversi modi per calcolare la deviazione standard. Le librerie più comuni sono NumPy, Pandas e il modulo integrato statistics.

Usare NumPy

Python (NumPy)
import numpy as np

data = [4, 8, 6, 5, 3]

# Population standard deviation (default)
pop_sd = np.std(data)
print(f"Population SD: {pop_sd}")  # 1.720

# Sample standard deviation
sample_sd = np.std(data, ddof=1)
print(f"Sample SD: {sample_sd}")  # 1.924

Che cos’è ddof?

ddof sta per “Delta Degrees of Freedom” (delta dei gradi di libertà). Impostare ddof=1 dice a NumPy di dividere per (n-1) per la DS campionaria. Il valore predefinito ddof=0 restituisce la DS della popolazione.

Usare Pandas

Python (Pandas)
import pandas as pd

# Create a DataFrame
df = pd.DataFrame({'scores': [85, 90, 78, 92, 88]})

# Sample SD (default in pandas)
sample_sd = df['scores'].std()
print(f"Sample SD: {sample_sd}")

# Population SD
pop_sd = df['scores'].std(ddof=0)
print(f"Population SD: {pop_sd}")

# Multiple columns at once
df.std()  # Returns SD for all numeric columns

Confronto rapido

StrumentoDS campionariaDS della popolazione
Excel`STDEV.S()``STDEV.P()`
NumPy`np.std(data, ddof=1)``np.std(data)`
Pandas`df.std()``df.std(ddof=0)`
Python statistics`stdev()``pstdev()`