Skip to main content

A statistics library for various statistical calculations

Project description

DataCentral - Librería para Análisis Estadístico

Descripción

DataCentral es una librería Python diseñada para realizar análisis estadístico básico sobre conjuntos de datos. Proporciona funcionalidades para calcular medidas de tendencia central, dispersión y variabilidad, tanto para datos agrupados como no agrupados.

Instalación

pip install DataCentral

Requisitos

  • Python 3.6 o superior
  • No requiere dependencias externas adicionales

Uso Básico

Importar la librería

from datacentral import DataCentral
import math

# Crear una instancia con datos
datos = [23, 45, 67, 89, 12, 34, 56, 78, 90, 11]
descripcion = "Edades de participantes en el estudio"
dc = DataCentral(datos, descripcion)

Métodos Disponibles

Constructor

DataCentral(data, description)

Parámetros:

  • data (list): Lista de valores numéricos (mínimo 2 elementos)
  • description (str): Descripción textual del conjunto de datos

Ejemplo:

try:
    datos = [15, 22, 30, 35, 42, 50, 55, 60]
    dc = DataCentral(datos, "Edades de empleados")
except (TypeError, ValueError) as e:
    print(f"Error: {e}")

1. Media Aritmética (mean())

Calcula el promedio de los datos.

mean(grouped=False, decimal_places=2)

Parámetros:

  • grouped (bool): True para datos agrupados, False para no agrupados
  • decimal_places (int): Número de decimales para redondear

Ejemplos:

# Datos no agrupados
media_no_agrupada = dc.mean(grouped=False, decimal_places=2)
print(f"Media no agrupada: {media_no_agrupada}")

# Datos agrupados
media_agrupada = dc.mean(grouped=True, decimal_places=2)
print(f"Media agrupada: {media_agrupada}")

2. Mediana (median())

Encuentra el valor central de los datos ordenados.

median(grouped=False)

Parámetros:

  • grouped (bool): True para datos agrupados, False para no agrupados

Ejemplos:

# Datos no agrupados
mediana_no_agrupada = dc.median(grouped=False)
print(f"Mediana no agrupada: {mediana_no_agrupada}")

# Datos agrupados
mediana_agrupada = dc.median(grouped=True)
print(f"Mediana agrupada: {mediana_agrupada}")

3. Moda (mode())

Encuentra el valor o valores más frecuentes.

mode(grouped=False)

Parámetros:

  • grouped (bool): True para datos agrupados, False para no agrupados

Ejemplos:

# Datos no agrupados
moda_no_agrupada = dc.mode(grouped=False)
print(f"Moda no agrupada: {moda_no_agrupada}")

# Datos agrupados
moda_agrupada = dc.mode(grouped=True)
print(f"Moda agrupada: {moda_agrupada}")

4. Varianza (variance())

Calcula la varianza de los datos.

variance(grouped=False, decimal_places=2)

Parámetros:

  • grouped (bool): True para datos agrupados, False para no agrupados
  • decimal_places (int): Número de decimales para redondear

Ejemplo:

varianza = dc.variance(grouped=False, decimal_places=3)
print(f"Varianza: {varianza}")

5. Desviación Estándar (standard_deviation())

Calcula la desviación estándar (raíz cuadrada de la varianza).

standard_deviation(grouped=False, decimal_places=2)

Parámetros:

  • grouped (bool): True para datos agrupados, False para no agrupados
  • decimal_places (int): Número de decimales para redondear

Ejemplo:

desviacion = dc.standard_deviation(grouped=False, decimal_places=3)
print(f"Desviación estándar: {desviacion}")

6. Coeficiente de Variación (coefficient_of_variation())

Calcula el coeficiente de variación (CV) como porcentaje.

coefficient_of_variation(grouped=False, decimal_places=2)

Parámetros:

  • grouped (bool): True para datos agrupados, False para no agrupados
  • decimal_places (int): Número de decimales para redondear

Ejemplo:

cv = dc.coefficient_of_variation(grouped=False, decimal_places=2)
print(f"Coeficiente de variación: {cv}%")

7. Desviación Media (mean_deviation())

Calcula la desviación absoluta promedio respecto a la media.

mean_deviation(grouped=False, decimal_places=2)

Parámetros:

  • grouped (bool): True para datos agrupados, False para no agrupados
  • decimal_places (int): Número de decimales para redondear

Ejemplo:

desv_media = dc.mean_deviation(grouped=False, decimal_places=3)
print(f"Desviación media: {desv_media}")

8. Desviación Mediana (median_deviation())

Calcula la desviación absoluta promedio respecto a la mediana.

median_deviation(grouped=False, decimal_places=2)

Parámetros:

  • grouped (bool): True para datos agrupados, False para no agrupados
  • decimal_places (int): Número de decimales para redondear

Ejemplo:

desv_mediana = dc.median_deviation(grouped=False, decimal_places=3)
print(f"Desviación mediana: {desv_mediana}")

Atributos de la Clase

Atributo Descripción Tipo
data Lista original de datos list
description Descripción del conjunto de datos str
n Número total de elementos int
amplitude Amplitud de intervalo para datos agrupados float
intervalos Número de intervalos para datos agrupados int

Ejemplo Completo

from datacentral import DataCentral

# Crear conjunto de datos
calificaciones = [85, 92, 78, 90, 88, 76, 95, 89, 84, 91, 87, 93, 79, 86, 94]
estadisticas = DataCentral(calificaciones, "Calificaciones de estudiantes")

# Calcular todas las medidas
print(f"Descripción: {estadisticas.description}")
print(f"Número de datos: {estadisticas.n}")
print(f"Media: {estadisticas.mean(grouped=False, decimal_places=2)}")
print(f"Mediana: {estadisticas.median(grouped=False)}")
print(f"Moda: {estadisticas.mode(grouped=False)}")
print(f"Varianza: {estadisticas.variance(grouped=False, decimal_places=3)}")
print(f"Desviación estándar: {estadisticas.standard_deviation(grouped=False, decimal_places=3)}")
print(f"Coeficiente de variación: {estadisticas.coefficient_of_variation(grouped=False, decimal_places=2)}%")
print(f"Desviación media: {estadisticas.mean_deviation(grouped=False, decimal_places=3)}")
print(f"Desviación mediana: {estadisticas.median_deviation(grouped=False, decimal_places=3)}")

# Para datos agrupados
print(f"\nPara datos agrupados:")
print(f"Media: {estadisticas.mean(grouped=True, decimal_places=2)}")
print(f"Mediana: {estadisticas.median(grouped=True)}")
print(f"Moda: {estadisticas.mode(grouped=True)}")

Manejo de Errores

La librería incluye validaciones que generan excepciones específicas:

try:
    # Error: datos no es una lista
    dc = DataCentral("no es una lista", "descripción")
except TypeError as e:
    print(f"TypeError: {e}")

try:
    # Error: lista vacía
    dc = DataCentral([], "descripción")
except ValueError as e:
    print(f"ValueError: {e}")

try:
    # Error: menos de 2 elementos
    dc = DataCentral([1], "descripción")
except ValueError as e:
    print(f"ValueError: {e}")

Notas Importantes

  1. Ordenamiento automático: Los métodos que lo requieren ordenan automáticamente los datos.
  2. Agrupación de datos: Cuando se usa grouped=True, la librería calcula automáticamente la amplitud y número de intervalos usando la regla de Sturges.
  3. Redondeo: Todos los métodos que aceptan decimal_places redondean el resultado al número de decimales especificado.
  4. Datos agrupados vs no agrupados: Algunas medidas pueden tener fórmulas diferentes según el tipo de datos.

Limitaciones

  • Diseñada para análisis estadístico básico
  • No incluye pruebas de hipótesis
  • No incluye análisis de correlación o regresión
  • La agrupación automática usa la regla de Sturges exclusivamente

Licencia

MIT License

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

eviastatistics-0.1.0.tar.gz (5.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

eviastatistics-0.1.0-py3-none-any.whl (6.0 kB view details)

Uploaded Python 3

File details

Details for the file eviastatistics-0.1.0.tar.gz.

File metadata

  • Download URL: eviastatistics-0.1.0.tar.gz
  • Upload date:
  • Size: 5.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.11

File hashes

Hashes for eviastatistics-0.1.0.tar.gz
Algorithm Hash digest
SHA256 ca26b69b172a28ca5f1c834c2843bd8433eab5c3b41431d1d1ae08d45973042b
MD5 857e0e469b77820e3c73404e2e2beefb
BLAKE2b-256 848733d70264762452d187e6688678f0d058e16d365beee7a17d29b70ac13412

See more details on using hashes here.

File details

Details for the file eviastatistics-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: eviastatistics-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 6.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.11

File hashes

Hashes for eviastatistics-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 fb1a2edd0f34f7674d74b86e03cf157c84b4b07f970186d21a0d8bc2bf2657fa
MD5 4c135255d173eb7c264abe884874c653
BLAKE2b-256 8c6ca3bf5192d6e30b41868eaa9417e5bbf9de67449817a37f136a850b5fcf0c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page