и посмотреть медиа
Análisis de datos - DA SQL
и посмотреть медиа
Análisis de datos: SQL, Python.
Análisis de datos: SQL, Python.
bot de IA para clonar texto a voz y voz en Telegram. Cree audio utilizando la red neuronal de forma rápida y fácil.
Acerca del análisis de datos: bases de datos, SQL, Python y más para analistas.
Анализ пропорций на Python Допустим, у нас есть гипотеза: "Клиенты, получающие зарплату на счёт в банке, в n раз чаще открывают вклады, чем остальные". И есть собранная из БД аналитическая витрина с полями: ▶️client_id - айди клиента ▶️salary_client - был ли клиент когда-либо зарплатным (да/нет)? ▶️any_deposit - открывал ли клиент хотя бы 1 вклад (да/нет)? ▶️during_salary - открыт ли хотя бы 1 вклад в то время, когда клиент был зарплатным (да/нет)? NULL - если клиент не был зарплатным. Проверяются подобные гипотезы через сравнение пропорций (z-тест). Алгоритм таков: 1️⃣Сначала надо разделить клиентов на 2 группы (зарплатные и незарплатные). То есть просто считаем кол-во да/нет в поле salary_client: import pandas as pd import numpy as np import matplotlib.pyplot as plt import seaborn as sns from statsmodels.stats.proportion import proportions_ztest ###### #ИСТОЧНИК ДАННЫХ + СОЗДАНИЕ DF ###### group_counts = df['salary_client'].value_counts() print(group_counts) 2️⃣Затем найти процент тех, кто открыл вклад в каждой группе. Для зарплатных клиентов надо найти соотношение during_salary (да) /salary_client (да) Для незарплатных: any_deposit (да) / salary_client (нет) На питоне это выглядит так: salary_group = df[df['salary_client'] == 'да'] non_salary_group = df[df['salary_client'] == 'нет'] salary_deposit_rate = (salary_group['during_salary'] == 'да').mean() non_salary_deposit_rate = (non_salary_group['any_deposit'] == 'да').mean() print(salary_deposit_rate) print(non_salary_deposit_rate) 3️⃣И далее уже подключается статистика: нужно посчитать P-value, чтобы убедиться в стат значимости. salary_count = len(salary_group) salary_deposit_count = (salary_group['during_salary'] == 'да').sum() non_salary_count = len(non_salary_group) non_salary_deposit_count = (non_salary_group['any_deposit'] == 'да').sum() c1 = np.array([salary_deposit_count, non_salary_deposit_count]) c2 = np.array([salary_count, non_salary_count]) stat, pval = proportions_ztest(c1, c2, alternative='larger') print(f"p-value: {pval}") 🟠Теперь что касательно интерпретации результатов. Если мы выяснили в п.2, что доля клиентов как-то заметно отличается (например, 55% против 25%), то имеет смысл считать p-value, потому что разница ощутима и надо проверить, не случайность ли это. Если p-value > 0.05, то такая разница может быть случайной и нет смысла на этом заострять внимание. Если p-value < 0.05, то, следовательно, всё наоборот.
Открыть канал и посмотреть медиаSolo los usuarios registrados pueden compartir su opinión.
¡Sé el primero en compartir tu experiencia con este recurso!