Logo
TGCATALOG
Catálogo Selecciones Blog
Análisis de datos - DA SQL

Análisis de datos - DA SQL

Análisis de datos: SQL, Python.

Sin valoraciones
582
29.10.2026
582
29.10.2026
Sin valoraciones
582
29.10.2026
Redirección segura vía bot
О канале

Análisis de datos: SQL, Python.

Подписчиков 1,700
Тематика Tecnología
Язык Español
Ссылка t.me/business_stats

También te recomendamos

Kekaton AI  Voz en off y clon de voz
Kekaton AI Voz en off y clon de voz
Bot

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.

Descripción

Acerca del análisis de datos: bases de datos, SQL, Python y más para analistas.

Últimas publicaciones

Análisis de datos - DA SQL
Análisis de datos - DA SQL
🔒Открыть пост
и посмотреть медиа
Выявление аномалий в данных с помощью скользящих средних В продолжение темы раскрою кейс о том, как выявлять аномалии в данных с использованием временных рядов, а конкретно - с помощью скользящих средних (MA): что это должны быть за данные и что за аномалии можно выявить таким способом. 🟠Вернемся к финансовым транзакциям. Для этого метода понадобится уже не просто размер операций, но еще дата и время каждой из этих операций. На основе этого будем применять: ▶️Простую MA (SMA) - среднее значение данных за фиксированный временной интервал. То есть, это как каждый день пересчитывать среднее значение за последние n дней. ▶️Взвешенную MA (WMA) - где более поздние значения имеют больше влияния (вес) на итоговое среднее. ▶️Экспоненциальную MA (EMA). EMA присваивает убывающие веса всем прошлым данным в зависимости от коэффициента (чем больше коэффициент, тем сильнее EMA реагирует на новые данные). 🟠Характер выявляемых аномалий на первый взгляд может быть похожим на аномалии, которые можно выявить стат методами - это отклонения от нормальных значений. Но различия есть: грубо говоря, стат методы выявляют аномалию на всей выборке (условно, платеж в 100 раз больше обычного), а временные ряды (в данном случае MA) учитывают именно нетипичные изменения в рамках "контекста", а не обособленное значение (например, резкий рост расходов). Выявим несколько аномалий: ▶️С помощью SMA, учитывая постепенно меняющиеся клиентские привычки, выявим, не было ли необычно крупного платежа за последнее время. ▶️С помощью WMA выявим, не было ли учащения кол-ва операций в последнее время. WMA из-за своих весов остро реагирует на самые последние скачки в данных. Также считается, что WMA лучше применять для дискретных данных, какими и являются данные о кол-ве транзакций. ▶️С помощью EMA можно выявлять примерно те же аномалии, как и с SMA, только EMA больше адаптирован для шумов и для реакции на последние изменения. 🟠Технически логика выявления аномалий такова: сначала считается среднее значение с помощью той или иной MA. Затем, прибавляя (и вычитая) к среднему 2 (иногда больше или меньше) стандартных отклонения, определяются верхняя и нижняя границы, значения за пределами которых - аномалии. Для начала передадим данные в df. Затем рассчитаем SMA, границы и определим значения, которые выходят за эти границы: import pandas as pd import numpy as np data = { 'date': ДАТЫ, 'amount': СУММА ТРАНЗАКЦИЙ, 'n_tr': КОЛ-ВО ТРАНЗАКЦИЙ } df = pd.DataFrame(data) df['sma'] = df['amount'].rolling(window=7).mean() df['sma_std'] = df['amount'].rolling(window=7).std() df['upper'] = df['sma'] + 2 * df['sma_std'] df['lower'] = df['sma'] - 2 * df['sma_std'] df['anomaly'] = (df['amount'] > df['upper']) | (df['amount'] < df['lower']) Для SMA считается среднее значение за последние 7 дней. Upper и lower - границы. В итоге выведутся суммы транзакций, которые в контексте ближайших 7 дней нетипичны. Для WMA присвоим веса [0.5, 0.25, 0.15, 0.07, 0.03] - последний день значим, затем с каждым днем вес снижается примерно в 2 раза. В сумме веса = 1. Применяться WMA будет для последних 5 дней: weights = np.array([0.5, 0.25, 0.15, 0.07, 0.03]) w_mean = lambda x: np.sum(weights * x) df['wma'] = df['n_tr'].rolling(window=5).apply(w_mean, raw=True) df['wma_std'] = df['n_tr'].rolling(window=5).std() df['upper'] = df['wma'] + 2 * df['wma_std'] df['lower'] = df['wma'] - 2 * df['wma_std'] df['anomaly'] = (df['n_tr'] > df['upper']) | (df['n_tr'] < df['lower']) По итогу получим актуальные нетипичные скачки в кол-ве транзакций. Для EMA используем коэф. alpha=0.3 - умеренная реакция на шумы. df['ema'] = df['amount'].ewm(alpha=0.3, adjust=False).mean() df['ema_std'] = df['amount'].ewm(alpha=0.3).std() df['upper'] = df['ema'] + 2 * df['ema_std'] df['lower'] = df['ema'] - 2 * df['ema_std'] df['anomaly'] = (df['amount'] > df['upper']) | (df['amount'] < df['lower']) По итогу получим аномалии с учетом сглаженного тренда, которые чувствительны к последним изменениям.
Análisis de datos - DA SQL
Evolución de suscriptores
+-0.5% últimos 30 días
Actuales
1,700
Hace un mes
1,709
Crecimiento medio
+0 / día
Actualizado
hace 17 horas

Reseñas de canal Análisis de datos - DA SQL

Inicia sesión para dejar una reseña

Solo los usuarios registrados pueden compartir su opinión.

Aún no hay reseñas

¡Sé el primero en compartir tu experiencia con este recurso!

Recursos similares

Loading
Cambiar a tema claro
Inicio Catálogo Selecciones Blog Entrar