Logo
TGCATALOG
Catalog Collections Blog
Data analysis - DA SQL

Data analysis - DA SQL

Data analysis: SQL, Python.

No ratings
582
29.10.2026
582
29.10.2026
No ratings
582
29.10.2026
Safe redirect via bot
О канале

Data analysis: SQL, Python.

Подписчиков 1,700
Тематика Technology
Язык English
Ссылка t.me/business_stats

We also recommend

Kekaton AI | Voiceover and voice clone
Kekaton AI | Voiceover and voice clone
Bot

AI bot for text-to-speech and voice cloning in Telegram. Create audio using neural network quickly and easily.

Description

About data analysis: databases, SQL, Python and more for analysts.

Latest posts

Data analysis - DA SQL
Data analysis - 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']) По итогу получим аномалии с учетом сглаженного тренда, которые чувствительны к последним изменениям.
Data analysis - DA SQL
FAQ

Open Data analysis - DA SQL in Telegram and press the Start button. No separate registration is required.

Yes. The service is designed to be straightforward: open the resource, follow the on-screen instructions and start using it.

No. You can use Data analysis - DA SQL directly in Telegram unless the resource description says otherwise.

Access depends on the resource. Check the current information in Telegram after opening Data analysis - DA SQL.

The exact features depend on the resource. Open Data analysis - DA SQL to see its current functions, content and access conditions.
Subscriber dynamics
+-0.5% last 30 days
Current
1,700
Month ago
1,709
Average growth
+0 / day
Updated
18 hours ago

Reviews for channel Data analysis - DA SQL

Log in to leave a review

Only registered users can share their opinion.

No reviews yet

Be the first to share your impression of this resource!

Similar resources

Loading
Switch to Light Theme
Home Catalog Collections Blog Login