Función Pandas Series.var()
Series.var()Es una función de Pandas utilizada para calcular la varianza de una Series. La varianza es el cuadrado de la desviación estándar, mide la dispersión de los datos y es un indicador básico del análisis estadístico.
Cuanto mayor es la varianza, más dispersos están los datos; cuanto menor es la varianza, más concentrados están los datos. Se aplica ampliamente en análisis estadístico, aprendizaje automático, procesamiento de señales y otros campos.
Sintaxis básica y parámetros
var()Es una función miembro del objeto Series, que se invoca directamente mediante el operador de punto.
Formato de sintaxis
Series.var(axis=None, skipna=True, level=None, numeric_only=None, ddof=1, **kwargs)
Descripción de parámetros
| Parámetro | Tipo | Descripción | Valor predeterminado |
|---|---|---|---|
| axis | int | Especifica el eje. Series solo tiene una fila de datos; este parámetro es principalmente para la compatibilidad con DataFrame. | None |
| skipna | bool | Si es True, omite los valores NaN al calcular; si es False, el resultado devolverá NaN cuando encuentre NaN. | True |
| level | int o str | Si Series tiene un índice multinivel (MultiIndex), especifica el nivel a calcular. | None |
| numeric_only | bool | Si es True, solo calcula con datos numéricos; de lo contrario, intenta convertir a numérico. | False |
| ddof | int | Parámetro de ajuste de grados de libertad. ddof=1 usa la varianza muestral (n-1); ddof=0 usa la varianza poblacional (n). | 1 |
Valor de retorno
- Tipo de retorno:
float - Descripción: Devuelve la varianza de los elementos de la Series. Por defecto usa la varianza muestral (dividida por n-1).
Ejemplos
Vamos a dominar completamente mediante una serie de ejemplos de simple a complejo,Series.var()su uso.
Ejemplo 1: Uso básico - Comprender el concepto de varianza
La varianza es el cuadrado de la desviación estándar y mide el grado de desviación de los datos respecto a la media.
Ejemplo
# Dos conjuntos de datos
group_a = pd.Series([85, 86, 87, 88, 89])
group_b = pd.Series([70, 75, 85, 95, 100])
print("Datos del grupo A (más concentrados):")
print(group_a)
print(f"Media: {group_a.mean():.2f}")
print(f"Varianza: {group_a.var():.2f}")
print(f"Desviación estándar: {group_a.std():.2f}")
print()
print("Datos del grupo B (más dispersos):")
print(group_b)
print(f"Media: {group_b.mean():.2f}")
print(f"Varianza: {group_b.var():.2f}")
print(f"Desviación estándar: {group_b.std():.2f}")
print()
print("Nota: la varianza es el cuadrado de la desviación estándar (2.50^2 = 6.25, 12.50^2 = 156.25)")
Resultado de la ejecución:
A组数据(较集中): 0 85 1 86 2 87 3 88 4 89 dtype: int64 平均值:85.00 方差:2.50 标准差:1.58 B组数据(较分散): 0 70 1 75 2 85 3 95 4 100 dtype: int64 平均值:85.00 方差:156.25 标准差:12.50 注意:方差是标准差的平方 (1.58^2 ≈ 2.50, 12.50^2 = 156.25)
Análisis del código:
- La varianza del grupo A es 2.50, los datos están muy concentrados.
- La varianza del grupo B es 156.25, los datos están muy dispersos.
- Varianza = desviación estándar² (el valor aproximado se debe al ajuste de ddof=1).
Ejemplo 2: El efecto del parámetro ddof
ddofEl parámetro controla si se usa la varianza muestral o la varianza poblacional.
Ejemplo
# Crear un conjunto de datos
data = pd.Series([2, 4, 4, 4, 5, 5, 7, 9])
print("Datos:")
print(data)
print()
# ddof=1 por defecto, usa la varianza muestral (dividida por n-1)
sample_var = data.var(ddof=1)
print(f"Varianza muestral (ddof=1): {sample_var:.4f}")
# ddof=0, usa la varianza poblacional (dividida por n)
population_var = data.var(ddof=0)
print(f"Varianza poblacional (ddof=0): {population_var:.4f}")
print()
# Verificación: la raíz cuadrada de la varianza muestral es aproximadamente igual a la desviación estándar muestral
import math
print(f"Raíz cuadrada de la varianza muestral: {math.sqrt(sample_var):.4f}")
print(f"Desviación estándar muestral: {data.std():.4f}")
Resultado de la ejecución:
数据: 0 2 1 4 2 4 3 4 4 5 5 5 6 7 7 9 dtype: int64 样本方差(ddof=1):5.1429 总体方差(ddof=0):4.5000 样本方差的平方根:2.2678 样本标准差:2.2678
Ejemplo 3: Manejo de datos con valores faltantes
Ejemplo
import numpy as np
# Crear una Series con valores faltantes
data_with_nan = pd.Series([10, 20, np.nan, 30, 40, np.nan, 50])
print("Datos con valores faltantes:")
print(data_with_nan)
print()
# skipna=True por defecto
var_skipna = data_with_nan.var()
print(f"Varianza con skipna=True (predeterminado): {var_skipna:.4f}")
# Configurar skipna=False
var_no_skipna = data_with_nan.var(skipna=False)
print(f"Varianza con skipna=False: {var_no_skipna}")
Resultado de la ejecución:
包含缺失值的数据: 0 10.0 1 20.0 2 NaN 3 30.0 4 40.0 5 NaN 6 50.0 dtype: float64 skipna=True(默认)时的方差:250.0000 skipna=False 时的方差:nan
Ejemplo 4: Comparación de la aplicación práctica de la varianza y la desviación estándar
En la aplicación práctica, la varianza y la desviación estándar tienen cada una sus ventajas.
Ejemplo
# Simular los rendimientos mensuales (%) de dos carteras de inversión
portfolio_a = pd.Series([2.5, 3.0, -1.0, 1.5, 2.0, 2.8, -0.5, 1.2, 1.8, 2.2])
portfolio_b = pd.Series([5.0, -3.5, 8.0, -2.0, 6.5, -4.0, 7.0, -1.5, 4.5, -2.0])
print("Cartera de inversión A (rendimiento mensual %):")
print(portfolio_a)
print(f"Varianza: {portfolio_a.var():.4f}")
print(f"Desviación estándar (volatilidad): {portfolio_a.std():.2f}%")
print()
print("Cartera de inversión B (rendimiento mensual %):")
print(portfolio_b)
print(f"Varianza: {portfolio_b.var():.4f}")
print(f"Desviación estándar (volatilidad): {portfolio_b.std():.2f}%")
print()
print("Análisis:")
print("- La cartera A tiene varianza y desviación estándar más pequeñas, su rendimiento es más estable")
print("- La cartera B tiene varianza y desviación estándar más grandes, el riesgo es mayor")
print("- Desde la perspectiva del riesgo, la cartera A es más adecuada para inversores conservadores")
Resultado de la ejecución:
投资组合 A(月度收益 %): 0 2.5 1 3.0 2 1.0 3 1.5 4 2.0 5 2.8 6 0.5 7 1.2 8 1.8 9 2.2 dtype: int64 方差:1.29 标准差(波动率):1.14% 投资组合 B(月度收益 %): 0 5.0 1 -3.5 2 8.0 3 -2.0 4 6.5 5 -4.0 6 7.0 7 -1.5 8 4.5 9 -2.0 dtype: int64 方差:19.56 标准差(波动率):4.42% 分析:组合 B 的风险(波动率)约是组合 A 的 4 倍。
Notas
- La varianza es el cuadrado de la desviación estándar; la relación entre ambas es: std = sqrt(var).
- Por defecto se usa la varianza muestral (ddof=1), adecuada para el análisis estadístico.
- La unidad de la varianza es el cuadrado de la unidad de los datos originales, lo que dificulta su comprensión intuitiva; la desviación estándar conserva la unidad original y es más fácil de interpretar.
- En situaciones donde se necesita usar la varianza para cálculos matemáticos (como el análisis de covarianza), se debe usar la varianza.
Resumen
Series.var()Es una función básica en el análisis estadístico. Sus características principales incluyen:
- Usa la varianza muestral (ddof=1) por defecto.
- La varianza es el cuadrado de la desviación estándar, lo que resulta más conveniente en operaciones matemáticas.
- La desviación estándar conserva la unidad original, lo que facilita la comprensión intuitiva.
- En el ámbito financiero, tanto la varianza como la desviación estándar se utilizan para medir el riesgo (volatilidad).
En la aplicación práctica, si se necesita comprender intuitivamente la dispersión de los datos, es más adecuado usar la desviación estándar; si se necesitan realizar operaciones matemáticas (como calcular la covarianza), es más conveniente usar la varianza.
Otras extensiones
Funciones comunes de Pandas