statslibx 0.1.0__py3-none-any.whl → 0.1.1__py3-none-any.whl
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.
- {statslib → statslibx}/__init__.py +4 -3
- {statslib → statslibx}/descriptive.py +182 -31
- statslibx/inferential.py +788 -0
- {statslib → statslibx}/utils.py +347 -48
- {statslibx-0.1.0.dist-info → statslibx-0.1.1.dist-info}/METADATA +1 -1
- statslibx-0.1.1.dist-info/RECORD +8 -0
- statslibx-0.1.1.dist-info/top_level.txt +1 -0
- statslib/inferential.py +0 -547
- statslibx-0.1.0.dist-info/RECORD +0 -8
- statslibx-0.1.0.dist-info/top_level.txt +0 -1
- {statslibx-0.1.0.dist-info → statslibx-0.1.1.dist-info}/WHEEL +0 -0
{statslib → statslibx}/utils.py
RENAMED
|
@@ -823,67 +823,366 @@ class UtilsStats:
|
|
|
823
823
|
|
|
824
824
|
def help(self):
|
|
825
825
|
"""
|
|
826
|
-
Muestra ayuda completa de la clase
|
|
826
|
+
Muestra ayuda completa de la clase DescriptiveStats
|
|
827
827
|
"""
|
|
828
828
|
help_text = """
|
|
829
|
-
|
|
829
|
+
╔════════════════════════════════════════════════════════════════════════════╗
|
|
830
|
+
║ 📊 CLASE UtilsStats - AYUDA COMPLETA ║
|
|
831
|
+
╚════════════════════════════════════════════════════════════════════════════╝
|
|
830
832
|
|
|
831
|
-
|
|
833
|
+
📝 DESCRIPCIÓN:
|
|
834
|
+
Clase para análisis estadístico descriptivo univariado y multivariado.
|
|
835
|
+
Proporciona herramientas para análisis exploratorio de datos, medidas de
|
|
836
|
+
tendencia central, dispersión, forma de distribución y regresión lineal.
|
|
832
837
|
|
|
833
|
-
|
|
838
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
834
839
|
|
|
835
|
-
|
|
836
|
-
• check_normality() # Test de normalidad
|
|
837
|
-
• calculate_confidence_intervals() # Intervalos de confianza
|
|
838
|
-
• detect_outliers() # Detección de outliers
|
|
839
|
-
• calculate_effect_size() # Tamaño del efecto
|
|
840
|
-
• get_descriptive_stats() # Estadísticas descriptivas
|
|
840
|
+
📋 MÉTODOS PRINCIPALES:
|
|
841
841
|
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
|
|
845
|
-
• plot_multiple_distributions_with_ci() # Múltiples distribuciones
|
|
846
|
-
• plot_correlation_matrix() # Matriz de correlación
|
|
847
|
-
• plot_scatter_matrix() # Matriz de dispersión
|
|
842
|
+
┌────────────────────────────────────────────────────────────────────────────┐
|
|
843
|
+
│ 1. 📊 ANÁLISIS ESTADÍSTICO │
|
|
844
|
+
└────────────────────────────────────────────────────────────────────────────┘
|
|
848
845
|
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
• set_save_fig_options() # Opciones para guardar
|
|
846
|
+
• .check_normality(data, alpha=0.05)
|
|
847
|
+
Verifica normalidad usando test Shapiro-Wilk
|
|
848
|
+
Retorna: dict con estadístico, p-value e interpretación
|
|
853
849
|
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
|
|
850
|
+
• .calculate_confidence_intervals(data, confidence_level=0.95,
|
|
851
|
+
method='parametric')
|
|
852
|
+
Calcula intervalos de confianza para la media
|
|
853
|
+
Métodos: 'parametric' o 'bootstrap'
|
|
857
854
|
|
|
858
|
-
|
|
855
|
+
• .detect_outliers(data, method='iqr', **kwargs)
|
|
856
|
+
Detecta valores atípicos
|
|
857
|
+
Métodos: 'iqr', 'zscore', 'isolation_forest'
|
|
859
858
|
|
|
860
|
-
|
|
861
|
-
|
|
859
|
+
• .calculate_effect_size(group1, group2, method='cohen')
|
|
860
|
+
Calcula tamaño del efecto entre grupos
|
|
861
|
+
Métodos: 'cohen' (Cohen's d) o 'hedges' (Hedges' g)
|
|
862
862
|
|
|
863
|
-
|
|
864
|
-
|
|
863
|
+
• .get_descriptive_stats(data, column=None)
|
|
864
|
+
Estadísticas descriptivas completas en un dict
|
|
865
865
|
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
confidence_level=0.95,
|
|
870
|
-
bins=20
|
|
871
|
-
)
|
|
866
|
+
┌────────────────────────────────────────────────────────────────────────────┐
|
|
867
|
+
│ 2. 🎨 VISUALIZACIÓN DE DISTRIBUCIONES │
|
|
868
|
+
└────────────────────────────────────────────────────────────────────────────┘
|
|
872
869
|
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
|
|
876
|
-
|
|
877
|
-
|
|
870
|
+
• .plot_distribution(data, column=None, plot_type='hist',
|
|
871
|
+
backend='seaborn', bins=30, figsize=None,
|
|
872
|
+
save_fig=None, filename=None)
|
|
873
|
+
|
|
874
|
+
Grafica distribución de una variable
|
|
875
|
+
|
|
876
|
+
plot_type: 'hist', 'kde', 'box', 'violin', 'all'
|
|
877
|
+
backend: 'matplotlib', 'seaborn', 'plotly'
|
|
878
|
+
|
|
879
|
+
• .plot_distribution_with_ci(data, column=None, confidence_level=0.95,
|
|
880
|
+
ci_method='parametric', bins=30)
|
|
881
|
+
|
|
882
|
+
Distribución con intervalos de confianza visualizados
|
|
883
|
+
|
|
884
|
+
• .plot_multiple_distributions_with_ci(data_dict, confidence_level=0.95)
|
|
885
|
+
|
|
886
|
+
Compara múltiples distribuciones con sus IC
|
|
887
|
+
|
|
888
|
+
┌────────────────────────────────────────────────────────────────────────────┐
|
|
889
|
+
│ 3. 🎨 VISUALIZACIÓN MULTIVARIADA │
|
|
890
|
+
└────────────────────────────────────────────────────────────────────────────┘
|
|
891
|
+
|
|
892
|
+
• .plot_correlation_matrix(data, method='pearson', backend='seaborn',
|
|
893
|
+
figsize=None, save_fig=None)
|
|
894
|
+
|
|
895
|
+
Matriz de correlación con heatmap
|
|
896
|
+
Métodos: 'pearson', 'spearman', 'kendall'
|
|
897
|
+
|
|
898
|
+
• .plot_scatter_matrix(data, columns=None, backend='seaborn',
|
|
899
|
+
figsize=None, save_fig=None)
|
|
900
|
+
|
|
901
|
+
Matriz de gráficos de dispersión (pairplot)
|
|
902
|
+
Backends: 'seaborn', 'plotly', 'pandas'
|
|
903
|
+
|
|
904
|
+
┌────────────────────────────────────────────────────────────────────────────┐
|
|
905
|
+
│ 4. ⚙️ CONFIGURACIÓN │
|
|
906
|
+
└────────────────────────────────────────────────────────────────────────────┘
|
|
907
|
+
|
|
908
|
+
• .set_plot_backend(backend)
|
|
909
|
+
Establece backend por defecto: 'matplotlib', 'seaborn', 'plotly'
|
|
910
|
+
|
|
911
|
+
• .set_default_figsize(figsize)
|
|
912
|
+
Establece tamaño de figura por defecto: (ancho, alto)
|
|
913
|
+
|
|
914
|
+
• .set_save_fig_options(save_fig=False, fig_format='png',
|
|
915
|
+
fig_dpi=300, figures_dir='figures')
|
|
916
|
+
|
|
917
|
+
Configura guardado automático de figuras
|
|
918
|
+
|
|
919
|
+
┌────────────────────────────────────────────────────────────────────────────┐
|
|
920
|
+
│ 5. 🛠️ UTILIDADES │
|
|
921
|
+
└────────────────────────────────────────────────────────────────────────────┘
|
|
922
|
+
|
|
923
|
+
• .validate_dataframe(data)
|
|
924
|
+
Valida y convierte datos a DataFrame
|
|
925
|
+
|
|
926
|
+
• .format_number(num, decimals=6, scientific=False)
|
|
927
|
+
Formatea números con precisión específica
|
|
928
|
+
|
|
929
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
930
|
+
|
|
931
|
+
💡 EJEMPLOS DE USO:
|
|
878
932
|
|
|
879
|
-
|
|
880
|
-
|
|
933
|
+
┌─ Ejemplo 1: Configuración Inicial ──────────────────────────────────────┐
|
|
934
|
+
│ from utils import UtilsStats │
|
|
935
|
+
│ import pandas as pd │
|
|
936
|
+
│ import numpy as np │
|
|
937
|
+
│ │
|
|
938
|
+
│ # Inicializar │
|
|
939
|
+
│ utils = UtilsStats() │
|
|
940
|
+
│ │
|
|
941
|
+
│ # Configurar visualización │
|
|
942
|
+
│ utils.set_plot_backend('seaborn') │
|
|
943
|
+
│ utils.set_default_figsize((12, 6)) │
|
|
944
|
+
│ │
|
|
945
|
+
│ # Configurar guardado automático │
|
|
946
|
+
│ utils.set_save_fig_options( │
|
|
947
|
+
│ save_fig=True, │
|
|
948
|
+
│ fig_format='png', │
|
|
949
|
+
│ fig_dpi=300, │
|
|
950
|
+
│ figures_dir='mis_graficos' │
|
|
951
|
+
│ ) │
|
|
952
|
+
└──────────────────────────────────────────────────────────────────────────┘
|
|
881
953
|
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
|
|
885
|
-
|
|
886
|
-
|
|
887
|
-
|
|
888
|
-
|
|
954
|
+
┌─ Ejemplo 2: Análisis de Normalidad ─────────────────────────────────────┐
|
|
955
|
+
│ # Generar datos │
|
|
956
|
+
│ datos_normales = np.random.normal(0, 1, 1000) │
|
|
957
|
+
│ datos_no_normales = np.random.exponential(2, 1000) │
|
|
958
|
+
│ │
|
|
959
|
+
│ # Test de normalidad │
|
|
960
|
+
│ resultado1 = utils.check_normality(datos_normales) │
|
|
961
|
+
│ print(f"Normales: {resultado1['interpretation']}") │
|
|
962
|
+
│ print(f"p-value: {resultado1['shapiro_pvalue']:.4f}") │
|
|
963
|
+
│ │
|
|
964
|
+
│ resultado2 = utils.check_normality(datos_no_normales) │
|
|
965
|
+
│ print(f"No normales: {resultado2['interpretation']}") │
|
|
966
|
+
└──────────────────────────────────────────────────────────────────────────┘
|
|
967
|
+
|
|
968
|
+
┌─ Ejemplo 3: Intervalos de Confianza ────────────────────────────────────┐
|
|
969
|
+
│ # Método paramétrico │
|
|
970
|
+
│ ci_param = utils.calculate_confidence_intervals( │
|
|
971
|
+
│ datos_normales, │
|
|
972
|
+
│ confidence_level=0.95, │
|
|
973
|
+
│ method='parametric' │
|
|
974
|
+
│ ) │
|
|
975
|
+
│ │
|
|
976
|
+
│ print(f"Media: {ci_param['mean']:.3f}") │
|
|
977
|
+
│ print(f"IC 95%: [{ci_param['ci_lower']:.3f}, " │
|
|
978
|
+
│ f"{ci_param['ci_upper']:.3f}]") │
|
|
979
|
+
│ │
|
|
980
|
+
│ # Método bootstrap (para datos no normales) │
|
|
981
|
+
│ ci_boot = utils.calculate_confidence_intervals( │
|
|
982
|
+
│ datos_no_normales, │
|
|
983
|
+
│ confidence_level=0.95, │
|
|
984
|
+
│ method='bootstrap' │
|
|
985
|
+
│ ) │
|
|
986
|
+
└──────────────────────────────────────────────────────────────────────────┘
|
|
987
|
+
|
|
988
|
+
┌─ Ejemplo 4: Detección de Outliers ──────────────────────────────────────┐
|
|
989
|
+
│ # Método IQR (rango intercuartílico) │
|
|
990
|
+
│ datos = np.random.normal(100, 15, 1000) │
|
|
991
|
+
│ datos = np.append(datos, [200, 210, -50]) # Agregar outliers │
|
|
992
|
+
│ │
|
|
993
|
+
│ outliers_iqr = utils.detect_outliers(datos, method='iqr') │
|
|
994
|
+
│ print(f"Outliers IQR: {outliers_iqr.sum()}") │
|
|
995
|
+
│ │
|
|
996
|
+
│ # Método Z-score │
|
|
997
|
+
│ outliers_z = utils.detect_outliers( │
|
|
998
|
+
│ datos, │
|
|
999
|
+
│ method='zscore', │
|
|
1000
|
+
│ threshold=3 │
|
|
1001
|
+
│ ) │
|
|
1002
|
+
│ print(f"Outliers Z-score: {outliers_z.sum()}") │
|
|
1003
|
+
│ │
|
|
1004
|
+
│ # Isolation Forest (machine learning) │
|
|
1005
|
+
│ outliers_if = utils.detect_outliers( │
|
|
1006
|
+
│ datos, │
|
|
1007
|
+
│ method='isolation_forest', │
|
|
1008
|
+
│ contamination=0.05 │
|
|
1009
|
+
│ ) │
|
|
1010
|
+
└──────────────────────────────────────────────────────────────────────────┘
|
|
1011
|
+
|
|
1012
|
+
┌─ Ejemplo 5: Tamaño del Efecto ──────────────────────────────────────────┐
|
|
1013
|
+
│ # Comparar dos grupos │
|
|
1014
|
+
│ grupo_control = np.random.normal(100, 15, 100) │
|
|
1015
|
+
│ grupo_tratamiento = np.random.normal(110, 15, 100) │
|
|
1016
|
+
│ │
|
|
1017
|
+
│ efecto = utils.calculate_effect_size( │
|
|
1018
|
+
│ grupo_control, │
|
|
1019
|
+
│ grupo_tratamiento, │
|
|
1020
|
+
│ method='cohen' │
|
|
1021
|
+
│ ) │
|
|
1022
|
+
│ │
|
|
1023
|
+
│ print(f"Cohen's d: {efecto['effect_size']:.3f}") │
|
|
1024
|
+
│ print(f"Interpretación: {efecto['interpretation']}") │
|
|
1025
|
+
│ print(f"Diferencia de medias: {efecto['mean_diff']:.2f}") │
|
|
1026
|
+
└──────────────────────────────────────────────────────────────────────────┘
|
|
1027
|
+
|
|
1028
|
+
┌─ Ejemplo 6: Gráficos de Distribución ───────────────────────────────────┐
|
|
1029
|
+
│ df = pd.DataFrame({ │
|
|
1030
|
+
│ 'edad': np.random.normal(35, 10, 500), │
|
|
1031
|
+
│ 'salario': np.random.lognormal(10.5, 0.5, 500) │
|
|
1032
|
+
│ }) │
|
|
1033
|
+
│ │
|
|
1034
|
+
│ # Histograma simple │
|
|
1035
|
+
│ fig1 = utils.plot_distribution( │
|
|
1036
|
+
│ df, │
|
|
1037
|
+
│ column='edad', │
|
|
1038
|
+
│ plot_type='hist', │
|
|
1039
|
+
│ bins=30 │
|
|
1040
|
+
│ ) │
|
|
1041
|
+
│ │
|
|
1042
|
+
│ # Panel completo (histograma, box, violin, Q-Q) │
|
|
1043
|
+
│ fig2 = utils.plot_distribution( │
|
|
1044
|
+
│ df, │
|
|
1045
|
+
│ column='salario', │
|
|
1046
|
+
│ plot_type='all', │
|
|
1047
|
+
│ backend='seaborn' │
|
|
1048
|
+
│ ) │
|
|
1049
|
+
│ │
|
|
1050
|
+
│ # Con Plotly (interactivo) │
|
|
1051
|
+
│ fig3 = utils.plot_distribution( │
|
|
1052
|
+
│ df, │
|
|
1053
|
+
│ column='edad', │
|
|
1054
|
+
│ plot_type='violin', │
|
|
1055
|
+
│ backend='plotly' │
|
|
1056
|
+
│ ) │
|
|
1057
|
+
└──────────────────────────────────────────────────────────────────────────┘
|
|
1058
|
+
|
|
1059
|
+
┌─ Ejemplo 7: Distribución con Intervalos de Confianza ───────────────────┐
|
|
1060
|
+
│ # Visualizar distribución con IC │
|
|
1061
|
+
│ fig = utils.plot_distribution_with_ci( │
|
|
1062
|
+
│ df, │
|
|
1063
|
+
│ column='edad', │
|
|
1064
|
+
│ confidence_level=0.95, │
|
|
1065
|
+
│ ci_method='parametric', │
|
|
1066
|
+
│ bins=30, │
|
|
1067
|
+
│ save_fig=True, │
|
|
1068
|
+
│ filename='edad_con_ic' │
|
|
1069
|
+
│ ) │
|
|
1070
|
+
│ │
|
|
1071
|
+
│ # Comparar múltiples distribuciones │
|
|
1072
|
+
│ data_dict = { │
|
|
1073
|
+
│ 'Grupo A': df['edad'][:200], │
|
|
1074
|
+
│ 'Grupo B': df['edad'][200:400], │
|
|
1075
|
+
│ 'Grupo C': df['edad'][400:] │
|
|
1076
|
+
│ } │
|
|
1077
|
+
│ │
|
|
1078
|
+
│ fig = utils.plot_multiple_distributions_with_ci( │
|
|
1079
|
+
│ data_dict, │
|
|
1080
|
+
│ confidence_level=0.95 │
|
|
1081
|
+
│ ) │
|
|
1082
|
+
└──────────────────────────────────────────────────────────────────────────┘
|
|
1083
|
+
|
|
1084
|
+
┌─ Ejemplo 8: Matriz de Correlación ──────────────────────────────────────┐
|
|
1085
|
+
│ # Crear datos correlacionados │
|
|
1086
|
+
│ df = pd.DataFrame({ │
|
|
1087
|
+
│ 'A': np.random.normal(0, 1, 100), │
|
|
1088
|
+
│ 'B': np.random.normal(0, 1, 100), │
|
|
1089
|
+
│ 'C': np.random.normal(0, 1, 100) │
|
|
1090
|
+
│ }) │
|
|
1091
|
+
│ df['D'] = df['A'] * 0.8 + np.random.normal(0, 0.2, 100) │
|
|
1092
|
+
│ │
|
|
1093
|
+
│ # Matriz de correlación con seaborn │
|
|
1094
|
+
│ fig = utils.plot_correlation_matrix( │
|
|
1095
|
+
│ df, │
|
|
1096
|
+
│ method='pearson', │
|
|
1097
|
+
│ backend='seaborn', │
|
|
1098
|
+
│ figsize=(10, 8) │
|
|
1099
|
+
│ ) │
|
|
1100
|
+
│ │
|
|
1101
|
+
│ # Con Plotly (interactiva) │
|
|
1102
|
+
│ fig = utils.plot_correlation_matrix( │
|
|
1103
|
+
│ df, │
|
|
1104
|
+
│ method='spearman', │
|
|
1105
|
+
│ backend='plotly' │
|
|
1106
|
+
│ ) │
|
|
1107
|
+
└──────────────────────────────────────────────────────────────────────────┘
|
|
1108
|
+
|
|
1109
|
+
┌─ Ejemplo 9: Matriz de Dispersión ───────────────────────────────────────┐
|
|
1110
|
+
│ # Pairplot completo │
|
|
1111
|
+
│ fig = utils.plot_scatter_matrix( │
|
|
1112
|
+
│ df, │
|
|
1113
|
+
│ columns=['A', 'B', 'C', 'D'], │
|
|
1114
|
+
│ backend='seaborn' │
|
|
1115
|
+
│ ) │
|
|
1116
|
+
│ │
|
|
1117
|
+
│ # Con Plotly │
|
|
1118
|
+
│ fig = utils.plot_scatter_matrix( │
|
|
1119
|
+
│ df, │
|
|
1120
|
+
│ backend='plotly' │
|
|
1121
|
+
│ ) │
|
|
1122
|
+
└──────────────────────────────────────────────────────────────────────────┘
|
|
1123
|
+
|
|
1124
|
+
┌─ Ejemplo 10: Estadísticas Descriptivas Completas ───────────────────────┐
|
|
1125
|
+
│ # Obtener todas las estadísticas │
|
|
1126
|
+
│ stats = utils.get_descriptive_stats(df, column='edad') │
|
|
1127
|
+
│ │
|
|
1128
|
+
│ print(f"Media: {stats['mean']:.2f}") │
|
|
1129
|
+
│ print(f"Mediana: {stats['median']:.2f}") │
|
|
1130
|
+
│ print(f"Desv. Est.: {stats['std']:.2f}") │
|
|
1131
|
+
│ print(f"IQR: {stats['iqr']:.2f}") │
|
|
1132
|
+
│ print(f"Asimetría: {stats['skewness']:.3f}") │
|
|
1133
|
+
│ print(f"Curtosis: {stats['kurtosis']:.3f}") │
|
|
1134
|
+
└──────────────────────────────────────────────────────────────────────────┘
|
|
1135
|
+
|
|
1136
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
1137
|
+
|
|
1138
|
+
🎯 CARACTERÍSTICAS CLAVE:
|
|
1139
|
+
|
|
1140
|
+
✓ Múltiples backends de visualización (matplotlib, seaborn, plotly)
|
|
1141
|
+
✓ Guardado automático de figuras en alta resolución
|
|
1142
|
+
✓ Análisis estadísticos robustos
|
|
1143
|
+
✓ Detección de outliers con 3 métodos
|
|
1144
|
+
✓ Intervalos de confianza paramétricos y bootstrap
|
|
1145
|
+
✓ Visualizaciones profesionales listas para publicación
|
|
1146
|
+
✓ Manejo automático de valores faltantes
|
|
1147
|
+
✓ Integración perfecta con pandas y numpy
|
|
1148
|
+
✓ Gráficos interactivos con Plotly
|
|
1149
|
+
|
|
1150
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
1151
|
+
|
|
1152
|
+
📊 BACKENDS DE VISUALIZACIÓN:
|
|
1153
|
+
|
|
1154
|
+
🔹 Matplotlib:
|
|
1155
|
+
• Rápido y ligero
|
|
1156
|
+
• Ideal para gráficos simples
|
|
1157
|
+
• Mejor para exportar a archivos
|
|
1158
|
+
|
|
1159
|
+
🔹 Seaborn:
|
|
1160
|
+
• Gráficos estadísticos elegantes
|
|
1161
|
+
• Temas predefinidos atractivos
|
|
1162
|
+
• Mejor para análisis exploratorio
|
|
1163
|
+
|
|
1164
|
+
🔹 Plotly:
|
|
1165
|
+
• Gráficos interactivos
|
|
1166
|
+
• Zoom, pan, hover tooltips
|
|
1167
|
+
• Ideal para presentaciones y dashboards
|
|
1168
|
+
|
|
1169
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
1170
|
+
|
|
1171
|
+
💡 CONSEJOS Y MEJORES PRÁCTICAS:
|
|
1172
|
+
|
|
1173
|
+
1. Siempre verificar normalidad antes de usar métodos paramétricos
|
|
1174
|
+
2. Usar bootstrap para IC cuando los datos no son normales
|
|
1175
|
+
3. Detectar outliers antes de calcular estadísticas
|
|
1176
|
+
4. Guardar figuras en alta resolución (300 DPI) para publicaciones
|
|
1177
|
+
5. Usar Plotly para presentaciones interactivas
|
|
1178
|
+
6. Usar seaborn para análisis exploratorio rápido
|
|
1179
|
+
|
|
1180
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
1181
|
+
|
|
1182
|
+
📚 DOCUMENTACIÓN ADICIONAL:
|
|
1183
|
+
Para más información sobre métodos específicos, use:
|
|
1184
|
+
help(UtilsStats.nombre_metodo)
|
|
1185
|
+
|
|
1186
|
+
╚════════════════════════════════════════════════════════════════════════════╝
|
|
1187
|
+
"""
|
|
889
1188
|
print(help_text)
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
statslibx/__init__.py,sha256=p1AydN8u_zWgm1rJBJb8TVQkRUzQMA3iNDwfFZn8k00,1117
|
|
2
|
+
statslibx/descriptive.py,sha256=Hu7VuOGXs6oOq-zxQNiBKg7UtkNdNQ1Qy3PP-wEO5_k,36971
|
|
3
|
+
statslibx/inferential.py,sha256=slLh32Ny4doLA0EA8pYRUGQSuMI8oBUCMBu-CTX-7FY,41732
|
|
4
|
+
statslibx/utils.py,sha256=vnfs5LmWEKsB9p8Fs2Di3btReepkB1RYAwQfT-eZs6c,61856
|
|
5
|
+
statslibx-0.1.1.dist-info/METADATA,sha256=ujX3UiJWx5ibgNv7OaJevK5YYeIaxudPkKzlFWBChO0,1737
|
|
6
|
+
statslibx-0.1.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
7
|
+
statslibx-0.1.1.dist-info/top_level.txt,sha256=eeYZXyFm0hIjuI0ba3wF6XW938Mv9tv7Nk9qgjYfCtU,10
|
|
8
|
+
statslibx-0.1.1.dist-info/RECORD,,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
statslibx
|