sábado, 8 de febrero de 2025

Estadistica en Python. Primeros pasos

 

statistics — Mathematical statistics functions

Added in version 3.4.

Código fuente: Lib/statistics.py


Este módulo proporciona funciones para calcular estadísticas matemáticas de datos numéricos (de tipo Real).

Este módulo no pretende ser competidor o sustituto de bibliotecas de terceros como NumPy o SciPy, ni de paquetes completos de software propietario para estadistas profesionales como Minitab, SAS o Matlab. Este módulo se ubica a nivel de calculadoras científicas y gráficas.

A menos que se indique explícitamente lo contrario, las funciones de este módulo manejan objetos int, float, Decimal y Fraction. No se garantiza un correcto funcionamiento con otros tipos (numéricos o no). El comportamiento de estas funciones con colecciones mixtas que contengan objetos de diferente tipo no está definido y depende de la implementación. Si tus datos de entrada consisten en una mezcla de varios tipos, puedes usar map() para asegurarte de que el resultado sea consistente, por ejemplo: map(float, input_data).

Algunos conjuntos de datos utilizan valores NaN (no es un número) para representar los datos que faltan. Dado que los valores NaN tienen una semántica de comparación inusual, provocan comportamientos sorprendentes o indefinidos en las funciones estadísticas que ordenan los datos o que cuentan las ocurrencias. Las funciones afectadas son median(), median_low(), median_high(), median_grouped(), mode(), multimode(), y quantiles(). Los valores NaN deben eliminarse antes de llamar a estas funciones:

>>from statistics import median
>>from math import isnan
>>from itertools import filterfalse

>>data = [20.7, float('NaN'),19.2, 18.3, float('NaN'), 14.4]
>>sorted(data)  # This has surprising behavior 
>>>[20.7, nan, 14.4, 18.3, 19.2, nan]
>>median(data)  # This result is unexpected
>>>16.35

>>sum(map(isnan, data))    # Number of missing values
>>>2
>>clean = list(filterfalse(isnan, data))  # Strip NaN values
>>clean
>>>[20.7, 19.2, 18.3, 14.4]
>>sorted(clean)  # Sorting now works as expected
>>>[14.4, 18.3, 19.2, 20.7]
>>median(clean)       # This result is now well defined
>>>18.75

Lectura del código por PPI:

  • En primer lugar del modulo statistics se importa la función especifica para calcular la mediana
  • Del modulo matemático se importa la función Isnan
  • De un modulo llamado herramientas de iteracion se importa un filtro falso
  • Se crea una lista con valores tipo float, la lista se llama "data"
  • la mediana de la lista es 16.35
  • Cantidad de valores perdidos: 2
  • Con el filtro se eliminan de la lista los valores Nan
  • Se recalcula la mediana luego de eliminar los valores Nan, la nueva mediana es: 18.75

 

Promedios y medidas de tendencia central

Estas funciones calculan el promedio o el valor típico de una población o muestra.

mean()

Media aritmética («promedio») de los datos.

fmean()

Fast, floating-point arithmetic mean, with optional weighting.

geometric_mean()

Media geométrica de los datos.

harmonic_mean()

Media armónica de los datos.

kde()

Estimate the probability density distribution of the data.

kde_random()

Random sampling from the PDF generated by kde().

median()

Mediana (valor central) de los datos.

median_low()

Mediana baja de los datos.

median_high()

Mediana alta de los datos.

median_grouped()

Median (50th percentile) of grouped data.

mode()

Moda única (valor más común) de datos discretos o nominales.

multimode()

Lista de modas (valores más comunes) de datos discretos o nominales.

quantiles()

Divide los datos en intervalos equiprobables.

 

Medidas de dispersión

Estas funciones calculan una medida de cuánto tiende a desviarse la población o muestra de los valores típicos o promedios.

pstdev()

Desviación típica poblacional de los datos.

pvariance()

Varianza poblacional de los datos.

stdev()

Desviación típica muestral de los datos.

variance()

Varianza muestral de los datos.

 

Estadísticas para relaciones entre dos entradas

Estas funciones calculan estadísticas sobre las relaciones entre dos entradas.

covariance()

Covarianza muestral de dos variables.

correlation()

Coeficiente de correlación de Pearson y Spearman.

linear_regression()

Pendiente e intersección para regresión lineal simple.

Detalles de las funciones

Nota: Las funciones no requieren que se ordenen los datos que se les proporcionan. Sin embargo, para facilitar la lectura, la mayoría de los ejemplos muestran secuencias ordenadas.

statistics.mean(data)

Retorna la media aritmética muestral de data, que puede ser una secuencia o un iterable.

La media aritmética es la suma de los valores dividida entre el número de observaciones. Es comúnmente denominada «promedio», aunque hay muchas formas de definir el promedio matemáticamente. Es una medida de tendencia central de los datos.

Se lanza una excepción StatisticsError si data está vacío.

Algunos ejemplos de uso:

>>mean([1, 2, 3, 4, 4])
>>>2.8
>>mean([-1.0, 2.5, 3.25, 5.75])
>>>2.625

>>from fractions import Fraction as F
>>mean([F(3, 7), F(1, 21), F(5, 3), F(1, 3)])
>>Fraction(13, 21)

>>from decimal import Decimal as D
>>mean([D("0.5"), D("0.75"), D("0.625"), D("0.375")])
>>Decimal('0.5625')

 Nota

La media se ve muy afectada por los outliers y no es necesariamente un ejemplo típico de los puntos de datos. Para una medida más robusta, aunque menos eficiente, de la tendencia central, véase median().

La media muestral proporciona una estimación no sesgada de la media real de la población. Por lo tanto, al calcular el promedio de todas las muestras posibles, mean(sample) converge con el promedio real de toda la población. Si data representa a una población completa, en lugar de a una muestra, entonces mean(data) equivale a calcular la media poblacional verdadera μ.

 

No hay comentarios.:

Publicar un comentario

Entradas recientes

Thinkcspy. Funciones / Resumen de flujo de ejecución

  6.7. Resumen de flujo de ejecución Cuando trabaja con funciones, es realmente importante conocer el pedido en el que se ejecutan las decl...

Entradas Populares