Σ
SDCalc
IntermedioTutoriales·15 min

Calcular la Desviación Estándar en Excel y Python

Tutoriales paso a paso para calcular la desviación estándar en Excel (STDEV.S, STDEV.P) y Python (numpy, pandas, statistics). Con ejemplos de código.

Excel: Panorama General

Microsoft Excel proporciona funciones integradas para calcular tanto la desviación estándar muestral como la poblacional. Estas funciones están disponibles en todas las versiones modernas de Excel.

Funciones de Excel

FunciónTipoDescripción
`STDEV.S()`MuestralDesviación estándar muestral (divide entre n-1)
`STDEV.P()`PoblacionalDesviación estándar poblacional (divide entre N)
`STDEV()`MuestralFunción heredada, igual que STDEV.S
`STDEVP()`PoblacionalFunción heredada, igual que STDEV.P

Ejemplos en 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

Consejo Profesional

Usa STDEV.S para la mayoría de los análisis del mundo real. Solo usa STDEV.P cuando estés seguro de que tienes la población completa.

Python: Panorama General

Python ofrece múltiples formas de calcular la desviación estándar. Las bibliotecas más comunes son NumPy, Pandas y el módulo integrado statistics.

Usando 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

¿Qué es ddof?

ddof significa “Delta de Grados de Libertad” (Delta Degrees of Freedom). Establecer ddof=1 le indica a NumPy que divida entre (n-1) para la DE muestral. El valor predeterminado ddof=0 da la DE poblacional.

Usando 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

Comparación Rápida

HerramientaDE MuestralDE Poblacional
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()`