modelo_cliente = ols('satisfaccion ~ tiempo_uso + quejas + grupo', data=df_cliente).fit() print(modelo_cliente.summary())
La diferencia entre el percentil 75 (Q3) y el percentil 25 (Q1). Es fundamental para detectar outliers mediante diagramas de caja ( boxplots ). Implementación en Python
fig, ax = plt.subplots(1,2, figsize=(12,4)) sns.histplot(normal_data, bins=40, kde=True, ax=ax[0], color='purple') ax[0].set_title('Normal estándar') sns.histplot(expon_data, bins=40, kde=True, ax=ax[1], color='orange') ax[1].set_title('Exponencial (λ=0.5)') plt.show()
# Simulación np.random.seed(123) n = 300 grupo = np.random.choice(['nuevo', 'antiguo'], size=n, p=[0.4,0.6]) tiempo_uso = np.where(grupo=='nuevo', np.random.exponential(2, n), np.random.normal(12,3,n)) quejas = np.random.poisson(lam=np.where(grupo=='nuevo', 0.5, 0.2), size=n) satisfaccion = 7 - 0.2*quejas + 0.1*tiempo_uso + np.where(grupo=='antiguo', 0.5, 0) + np.random.normal(0,0.8,n) satisfaccion = np.clip(satisfaccion, 1, 10).astype(int)
modelo_cliente = ols('satisfaccion ~ tiempo_uso + quejas + grupo', data=df_cliente).fit() print(modelo_cliente.summary())
La diferencia entre el percentil 75 (Q3) y el percentil 25 (Q1). Es fundamental para detectar outliers mediante diagramas de caja ( boxplots ). Implementación en Python modelo_cliente = ols('satisfaccion ~ tiempo_uso + quejas +
fig, ax = plt.subplots(1,2, figsize=(12,4)) sns.histplot(normal_data, bins=40, kde=True, ax=ax[0], color='purple') ax[0].set_title('Normal estándar') sns.histplot(expon_data, bins=40, kde=True, ax=ax[1], color='orange') ax[1].set_title('Exponencial (λ=0.5)') plt.show() ax = plt.subplots(1
# Simulación np.random.seed(123) n = 300 grupo = np.random.choice(['nuevo', 'antiguo'], size=n, p=[0.4,0.6]) tiempo_uso = np.where(grupo=='nuevo', np.random.exponential(2, n), np.random.normal(12,3,n)) quejas = np.random.poisson(lam=np.where(grupo=='nuevo', 0.5, 0.2), size=n) satisfaccion = 7 - 0.2*quejas + 0.1*tiempo_uso + np.where(grupo=='antiguo', 0.5, 0) + np.random.normal(0,0.8,n) satisfaccion = np.clip(satisfaccion, 1, 10).astype(int) 0.6]) tiempo_uso = np.where(grupo=='nuevo'