statslibx 0.1.0__tar.gz → 0.1.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: statslibx
3
- Version: 0.1.0
3
+ Version: 0.1.1
4
4
  Summary: Librería de estadística descriptiva e inferencial para Python
5
5
  Home-page: https://github.com/Immanuel3008/StatsLibrary
6
6
  Author: Emmanuel Ascendra Perez
@@ -9,7 +9,7 @@ except FileNotFoundError:
9
9
 
10
10
  setup(
11
11
  name="statslibx",
12
- version="0.1.0",
12
+ version="0.1.1",
13
13
  author="Emmanuel Ascendra Perez",
14
14
  author_email="ascendraemmanuel@gmail.com",
15
15
  description="Librería de estadística descriptiva e inferencial para Python",
@@ -4,7 +4,7 @@ Autor: Emmanuel Ascendra
4
4
  Versión: 0.1.0
5
5
  """
6
6
 
7
- __version__ = "0.1.0"
7
+ __version__ = "0.1.1"
8
8
  __author__ = "Emmanuel Ascendra"
9
9
 
10
10
  # Importar las clases principales
@@ -26,10 +26,11 @@ __all__ = [
26
26
  # Mensaje de bienvenida (opcional)
27
27
  def welcome():
28
28
  """Muestra información sobre la librería"""
29
- print(f"StatsLib v{__version__}")
29
+ print(f"StatsLibx v{__version__}")
30
30
  print(f"Librería de estadística descriptiva e inferencial")
31
31
  print(f"Autor: {__author__}")
32
32
  print(f"\nClases disponibles:")
33
33
  print(f" - DescriptiveStats: Estadística descriptiva")
34
34
  print(f" - InferentialStats: Estadística inferencial")
35
- print(f"\nPara más información: help(statslib)")
35
+ print(f" - UtilsStats: Utilidades Extras")
36
+ print(f"\nPara más información: help(statslibx)")
@@ -311,47 +311,198 @@ class DescriptiveStats:
311
311
  Muestra ayuda completa de la clase DescriptiveStats
312
312
  """
313
313
  help_text = """
314
- 📈 CLASE DescriptiveStats - AYUDA COMPLETA
314
+ ╔════════════════════════════════════════════════════════════════════════════╗
315
+ ║ 📊 CLASE DescriptiveStats - AYUDA COMPLETA ║
316
+ ╚════════════════════════════════════════════════════════════════════════════╝
315
317
 
316
- Clase para análisis estadístico descriptivo univariado y multivariado
318
+ 📝 DESCRIPCIÓN:
319
+ Clase para análisis estadístico descriptivo univariado y multivariado.
320
+ Proporciona herramientas para análisis exploratorio de datos, medidas de
321
+ tendencia central, dispersión, forma de distribución y regresión lineal.
317
322
 
318
- 🔧 MÉTODOS PRINCIPALES:
323
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
319
324
 
320
- 1. 📊 ESTADÍSTICAS UNIVARIADAS:
321
- • .mean(), .median(), .mode() # Tendencia central
322
- • .std(), .variance() # Dispersión
323
- • .skewness(), .kurtosis() # Forma de distribución
324
- • .quantile(0.25) # Cuantiles
325
- • .outliers('columna') # Detección de outliers
325
+ 📋 MÉTODOS PRINCIPALES:
326
326
 
327
- 2. 🔗 ESTADÍSTICAS MULTIVARIADAS:
328
- .correlation() # Matriz de correlación
329
- • .covariance() # Matriz de covarianza
327
+ ┌────────────────────────────────────────────────────────────────────────────┐
328
+ 1. 📊 ESTADÍSTICAS UNIVARIADAS │
329
+ └────────────────────────────────────────────────────────────────────────────┘
330
330
 
331
- 3. 📋 RESUMEN COMPLETO:
332
- • .summary() # Resumen descriptivo completo
333
- • .summary(show_plot=True) # Con visualizaciones
331
+ 🔹 Medidas de Tendencia Central:
332
+ • .mean(column=None) Media aritmética
333
+ • .median(column=None) Mediana (valor central)
334
+ • .mode(column=None) → Moda (valor más frecuente)
334
335
 
335
- 4. 📈 REGRESIÓN LINEAL:
336
- • .linear_regression(y, X) # Regresión simple/múltiple
336
+ 🔹 Medidas de Dispersión:
337
+ • .std(column=None) Desviación estándar
338
+ • .variance(column=None) → Varianza
339
+ • .quantile(q, column=None) → Cuantiles/Percentiles
337
340
 
338
- 💡 EJEMPLOS DE USO:
341
+ 🔹 Medidas de Forma:
342
+ • .skewness(column=None) → Asimetría (sesgo)
343
+ • .kurtosis(column=None) → Curtosis (apuntamiento)
339
344
 
340
- # Inicializar
341
- estadisticas = DescriptiveStats(mi_dataframe)
345
+ 🔹 Detección de Valores Atípicos:
346
+ .outliers(column, method='iqr', threshold=1.5)
347
+ Métodos: 'iqr' (rango intercuartílico) o 'zscore' (puntuación z)
342
348
 
343
- # Análisis univariado
344
- media = estadisticas.mean('edad')
345
- resumen = estadisticas.summary()
349
+ ┌────────────────────────────────────────────────────────────────────────────┐
350
+ 2. 🔗 ESTADÍSTICAS MULTIVARIADAS │
351
+ └────────────────────────────────────────────────────────────────────────────┘
346
352
 
347
- # Regresión
348
- modelo = estadisticas.linear_regression(
349
- y='ventas',
350
- X=['publicidad', 'precio'],
351
- show_plot=True
352
- )
353
- print(modelo.summary())
354
- """
353
+ .correlation(method='pearson', columns=None)
354
+ Matriz de correlación entre variables
355
+ Métodos: 'pearson', 'spearman', 'kendall'
356
+
357
+ • .covariance(columns=None)
358
+ Matriz de covarianza entre variables
359
+
360
+ ┌────────────────────────────────────────────────────────────────────────────┐
361
+ │ 3. 📋 RESUMEN COMPLETO │
362
+ └────────────────────────────────────────────────────────────────────────────┘
363
+
364
+ • .summary(columns=None, show_plot=False, plot_backend='seaborn')
365
+ Resumen descriptivo completo con todas las estadísticas
366
+
367
+ Incluye: conteo, media, mediana, moda, desv. est., varianza,
368
+ mínimo, Q1, Q3, máximo, IQR, asimetría, curtosis
369
+
370
+ ┌────────────────────────────────────────────────────────────────────────────┐
371
+ │ 4. 📈 REGRESIÓN LINEAL │
372
+ └────────────────────────────────────────────────────────────────────────────┘
373
+
374
+ • .linear_regression(y, X, engine='statsmodels',
375
+ fit_intercept=True, show_plot=False,
376
+ plot_backend='seaborn', handle_missing='drop')
377
+
378
+ Regresión lineal simple o múltiple con análisis completo
379
+
380
+ Parámetros:
381
+ y : Variable dependiente (str)
382
+ X : Variable(s) independiente(s) (str o list)
383
+ engine : 'statsmodels' o 'scikit-learn'
384
+ fit_intercept : Incluir intercepto (bool)
385
+ show_plot : Mostrar gráficos diagnósticos (bool)
386
+ handle_missing : 'drop', 'error', 'warn'
387
+
388
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
389
+
390
+ 💡 EJEMPLOS DE USO:
391
+
392
+ ┌─ Ejemplo 1: Inicialización ─────────────────────────────────────────────┐
393
+ │ import pandas as pd │
394
+ │ from descriptive import DescriptiveStats │
395
+ │ │
396
+ │ # Con DataFrame │
397
+ │ df = pd.read_csv('datos.csv') │
398
+ │ stats = DescriptiveStats(df) │
399
+ │ │
400
+ │ # Con array numpy │
401
+ │ import numpy as np │
402
+ │ datos = np.random.normal(0, 1, 1000) │
403
+ │ stats = DescriptiveStats(datos) │
404
+ └──────────────────────────────────────────────────────────────────────────┘
405
+
406
+ ┌─ Ejemplo 2: Análisis Univariado ────────────────────────────────────────┐
407
+ │ # Estadísticas de una columna │
408
+ │ media = stats.mean('edad') │
409
+ │ mediana = stats.median('edad') │
410
+ │ desv_est = stats.std('edad') │
411
+ │ │
412
+ │ # Cuartiles │
413
+ │ q25 = stats.quantile(0.25, 'edad') │
414
+ │ q75 = stats.quantile(0.75, 'edad') │
415
+ │ │
416
+ │ # Detectar outliers │
417
+ │ outliers_mask = stats.outliers('edad', method='iqr', threshold=1.5) │
418
+ │ print(f"Outliers detectados: {outliers_mask.sum()}") │
419
+ └──────────────────────────────────────────────────────────────────────────┘
420
+
421
+ ┌─ Ejemplo 3: Resumen Completo ───────────────────────────────────────────┐
422
+ │ # Resumen de todas las variables numéricas │
423
+ │ resumen = stats.summary() │
424
+ │ print(resumen) │
425
+ │ │
426
+ │ # Resumen de columnas específicas con visualización │
427
+ │ resumen = stats.summary( │
428
+ │ columns=['edad', 'salario', 'experiencia'], │
429
+ │ show_plot=True, │
430
+ │ plot_backend='seaborn' │
431
+ │ ) │
432
+ └──────────────────────────────────────────────────────────────────────────┘
433
+
434
+ ┌─ Ejemplo 4: Análisis Multivariado ──────────────────────────────────────┐
435
+ │ # Matriz de correlación │
436
+ │ corr_pearson = stats.correlation(method='pearson') │
437
+ │ corr_spearman = stats.correlation(method='spearman') │
438
+ │ │
439
+ │ # Matriz de covarianza │
440
+ │ cov_matrix = stats.covariance() │
441
+ │ │
442
+ │ # Correlación entre variables específicas │
443
+ │ corr_subset = stats.correlation( │
444
+ │ method='pearson', │
445
+ │ columns=['edad', 'salario', 'experiencia'] │
446
+ │ ) │
447
+ └──────────────────────────────────────────────────────────────────────────┘
448
+
449
+ ┌─ Ejemplo 5: Regresión Lineal Simple ────────────────────────────────────┐
450
+ │ # Regresión simple: salario ~ experiencia │
451
+ │ modelo = stats.linear_regression( │
452
+ │ y='salario', │
453
+ │ X='experiencia', │
454
+ │ engine='statsmodels', │
455
+ │ show_plot=True │
456
+ │ ) │
457
+ │ │
458
+ │ # Ver resultados │
459
+ │ print(modelo.summary()) │
460
+ │ │
461
+ │ # Acceder a coeficientes │
462
+ │ print(f"Intercepto: {modelo.intercept_}") │
463
+ │ print(f"Pendiente: {modelo.coef_[0]}") │
464
+ │ print(f"R²: {modelo.r_squared}") │
465
+ └──────────────────────────────────────────────────────────────────────────┘
466
+
467
+ ┌─ Ejemplo 6: Regresión Lineal Múltiple ──────────────────────────────────┐
468
+ │ # Regresión múltiple: salario ~ experiencia + edad + educacion │
469
+ │ modelo = stats.linear_regression( │
470
+ │ y='salario', │
471
+ │ X=['experiencia', 'edad', 'educacion'], │
472
+ │ engine='statsmodels', │
473
+ │ fit_intercept=True, │
474
+ │ handle_missing='drop' │
475
+ │ ) │
476
+ │ │
477
+ │ print(modelo.summary()) │
478
+ │ │
479
+ │ # Hacer predicciones │
480
+ │ import numpy as np │
481
+ │ X_nuevo = np.array([[5, 30, 16], [10, 35, 18]]) # experiencia, edad │
482
+ │ predicciones = modelo.predict(X_nuevo) │
483
+ └──────────────────────────────────────────────────────────────────────────┘
484
+
485
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
486
+
487
+ 🎯 CARACTERÍSTICAS CLAVE:
488
+
489
+ ✓ Análisis univariado completo
490
+ ✓ Análisis multivariado (correlación, covarianza)
491
+ ✓ Detección de outliers con múltiples métodos
492
+ ✓ Regresión lineal con statsmodels o scikit-learn
493
+ ✓ Manejo automático de valores faltantes
494
+ ✓ Soporte para pandas DataFrame y numpy arrays
495
+ ✓ Salidas formateadas profesionales
496
+ ✓ Visualizaciones opcionales
497
+
498
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
499
+
500
+ 📚 DOCUMENTACIÓN ADICIONAL:
501
+ Para más información sobre métodos específicos, use:
502
+ help(DescriptiveStats.nombre_metodo)
503
+
504
+ ╚════════════════════════════════════════════════════════════════════════════╝
505
+ """
355
506
  print(help_text)
356
507
 
357
508
  class DescriptiveSummary: