Зачем аналитику математика. eda.. eda. pandas.. eda. pandas. python.. eda. pandas. python. анализ данных.. eda. pandas. python. анализ данных. интеграл.. eda. pandas. python. анализ данных. интеграл. логарифм.. eda. pandas. python. анализ данных. интеграл. логарифм. матанализ.. eda. pandas. python. анализ данных. интеграл. логарифм. матанализ. математика для аналитика.. eda. pandas. python. анализ данных. интеграл. логарифм. матанализ. математика для аналитика. пределы роста.. eda. pandas. python. анализ данных. интеграл. логарифм. матанализ. математика для аналитика. пределы роста. производная.

Если ваша работа ограничивается построением дашбордов в Excel и ответами на вопрос «сколько заработали вчера» – матан вам и правда не нужен, но если вы хотите понимать, почему метрики ведут себя именно так, а не иначе, и тем более – прогнозировать их поведение, то без производных, логарифмов и пределов вы не обойдетесь.
В интернете тонны статей «Математика для аналитиков», но они либо уходят в дебри интегрирования по частям, либо ограничиваются уровнем «логарифм – это штука, которая делает большие числа маленькими». Давайте попробуем найти золотую середину.

1 Логарифмы

Логарифм – это не просто функция в pandas, а ответ на вопрос: сколько раз нужно перемножить число само на себя, чтобы получить другое число? Но для аналитика важнее другое: логарифм превращает умножение в сложение, а экспоненциальный рост – в линейный.

Например, вы анализируете time-to-conversion – время от первого касания с пользователем до покупки. Распределение классическое: большинство покупают в первый день, дальше – длинный «хвост» до 30 дней.

Если вы посчитаете среднее арифметическое, получите цифру в примерно 4,5 дня, но среднее здесь бессмысленно: 90% пользователей купили в день 0-1, а остальные 10% растянули выборку почти до бесконечности, тут надо считать медиану на логарифмической шкале.

Расчет на Python:

import numpy as np
import pandas as pd

# Генерируем данные с длинным хвостом
np.random.seed(42)
days = np.random.pareto(2, 10000) * 2 
days = np.clip(days, 0, 60)

df = pd.DataFrame({'days_to_conv': days})

# Считаем метрики
print(f"Среднее: {df['days_to_conv'].mean():.2f}")
print(f"Медиана: {df['days_to_conv'].median():.2f}")
print(f"Среднее геометрическое: {np.exp(np.log1p(df['days_to_conv']).mean()):.2f}")
Зачем аналитику математика - 1

Получаем:
Среднее арифметическое: 4,5 – сдвинуто хвостом, использовать не очень правильно
Медиана: 1,2 – честная «типичная» цифра, результат уже более отражает действительность
Среднее геометрическое: 1,8 – это компромиссный вариант

Вывод: среднее геометрическое (экспонента от среднего логарифмов) часто дает более адекватную оценку центра распределения для величин с мультипликативной природой.

Еще глубже: логарифмирование в регрессии

Когда вы строите регрессию вида log(y) = a * log(x) + b, коэффициент a — это эластичность: то есть на сколько процентов изменится y при изменении x на 1%.

2 Производные: детектор скорости и фаза луны

Производная – это не страшный предел из матана, а просто скорость изменения функции. В дискретном мире (а данные у нас почти всегда дискретны) производная — это diff() / shift().

Простой пример:
Вы запустили рекламу и выручка выросла на 10%, это круто или нет?

Правильный ответ: Смотря какая была производная в прошлом периоде.
Если месяц назад рост был 30%, а теперь 10% – то это сигнал бедствия, хотя абсолютная цифра все еще зеленая.

Производная второго порядка

В аналитике мы редко останавливаемся на первой производной, вторая производная (ускорение) показывает, замедляется рост или ускоряется. Рассмотрим кейс с подписками.
У вас есть помесячные данные по новым платящим пользователям:

Месяц

Новые платящие

Прирост (1-я произв.)

Ускорение (2-я произв.)

Янв

1000

Фев

1100

+100

Мар

1150

+50

-50 (замедление)

Апр

1180

+30

-20 (еще замедление)

Визуально рост есть, но ускорение отрицательное – значит, мы выходим на плато, в этом случае, если не видеть вторую производную, можно упустить момент и начать дергать рычаги, когда поезд уже тормозит.

Расчет на Python:

def calculate_derivatives(series):

    first_deriv = series.diff()  # первая производная - скорость
    second_deriv = first_deriv.diff()  # вторая производная - ускорение
    
    return pd.DataFrame({
        'original': series,
        'velocity': first_deriv,
        'acceleration': second_deriv
    })
Зачем аналитику математика - 2

Производная как оптимизация

Каждый, кто тренировал нейросети или бустинги, пользовался градиентным спуском. Градиент – это вектор частных производных, он показывает направление наискорейшего роста функции, а мы идем в противоположную сторону и получаем минимизацию функции потерь.
В аналитике мы редко пишем градиентный спуск руками, но понимать, что loss падает быстрее всего в направлении антиградиента – must have, ведь иначе вы не поймете, почему скорость обучения (learning rate) вообще существует.

3 Пределы и асимптоты

Предел в аналитике – это точка насыщения, то, к чему стремится процесс, но никогда не достигает (или достигает асимптотически).

Например, вы считаете когортный retention: классическая картина: после 6-7 месяцев падение останавливается, и retention выходит на плато 15-20%.

Это и есть предел – математический, а не философский.
Модель вида Retention(t) = R_inf + (R_0 – R_inf) * exp(-t / tau) отлично описывает такие процессы.
Здесь R_inf – это асимптота, предел, ниже которого retention уже не упадет (при текущем качестве продукта).

Другой пример, вы запустили реферальную программу и количество новых регистраций растет, но рыночная воронка имеет верхний предел – Total Addressable Market (TAM).

Если вы этого предела не знаете, будете удивляться, почему при удвоении бюджета на рефералки рост замедляется.
Ответ простой: вы приближаетесь к асимптоте, модель с пределом:

NewUsers(t) = TAM (1 – exp(-k spend(t)))

Здесь TAM — тот самый предел и его можно оценить эконометрически, подобрав параметры модели.

Еще пример, вспомним теорему Байеса: когда мы обновляем априорную вероятность на основе данных, апостериорная вероятность сходится к какому-то значению при бесконечном количестве наблюдений, это тоже предел и он определяет, насколько мы можем быть уверены в гипотезе.

4 Интегралы

Интеграл – это сумма бесконечно малых приращений, в дискретном мире cumsum(), rolling sum, они же итоги за период.

Пример: LTV клиента за 12 месяцев – это интеграл от функции платежей по времени, если клиент платит каждый месяц, но сумма меняется, LTV = сумма всех платежей за период.

Но есть нюанс: в реальности мы считаем LTV с дисконтированием, деньги сегодня дороже денег через год. Поэтому формула превращается в:

LTV = ∫ p(t) exp(-rt) dt

Где r — ставка дисконтирования,
p(t) — функция платежей.

Расчет на Python:

def discounted_ltv(payments, rate, periods):

    discount_factors = [(1 + rate) ** (-i) for i in range(periods)]
    return sum(p * d for p, d in zip(payments[:periods], discount_factors))
Зачем аналитику математика - 3

Интеграл в когортном анализе

Когда вы считаете накопленный retention (сколько пользователей из когорты осталось к месяцу N), вы фактически интегрируете функцию удержания или ARPU за период – это интеграл от интенсивности платежей.

Пример по-сложнее, в задачах uplift-моделирования (оценка прироста вероятности от воздействия) мы часто считаем площадь под кривой uplift (AUUC). Это аналог AUC-ROC, но для uplift-моделей, но по сути – это интеграл от кумулятивной функции прироста. Без понимания, что мы интегрируем, невозможно интерпретировать метрику.

Интеграл как сглаживание

Интеграл (или скользящая сумма) – это мощный инструмент сглаживания, если ваши данные шумят (например, посещаемость сайта поминутно), вы берете скользящее среднее за час — это интеграл с окном, деленный на длину окна.

Расчет на Python:

# Скользящее среднее как дискретный интеграл с окном
df['smoothed'] = df['raw'].rolling(window=60, center=True).mean()
Зачем аналитику математика - 4

Краткая таблица итогов

Математическое понятие

Что это в коде

Где применяется в аналитике

Логарифм

np.log1p(), np.log()

Логарифмирование распределений, расчет эластичностей, среднее геометрическое

Производная (1-я)

.diff()

Скорость роста, темпы прироста, градиентный спуск

Производная (2-я)

.diff().diff()

Ускорение/замедление тренда, переломные моменты

Предел / Асимптота

Параметр в нелинейных моделях (curve_fit)

Насыщение рынка, предельный retention, емкость аудитории

Интеграл

.cumsum(), .rolling().sum()

LTV, накопленные итоги, площадь под кривой (AUC, AUUC)

Интеграл с весом

np.average(weights=…)

Дисконтированный LTV, взвешенные метрики

Итог: Никто не ждет, что аналитик будет брать интегралы в уме или находить пределы функций без калькулятора, но понимать, что скрывается за вызовом библиотечной функции – это must have:

– Когда вы берете log1p – вы приручаете степенной закон.
– Когда смотрите на вторую производную – ловите момент перед падением.
– Когда оцениваете LTV – интегрируете денежный поток.
– Когда говорите «дальше рост невозможен» – опираетесь на понятие предела.

Математика в аналитике – это не про циферки и формулы, это про ментальные модели, которые позволяют не тупить в критический момент и говорить бизнесу не только что именно произошло, но и почему это произошло, как это исправить и что вообще будет дальше.

📚Более сжатая и простая версия статьи https://t.me/tanyaVSdannye/52
✔️Больше про будни и задачи аналитика в Авито в моем тг канале 🌸Таня и Данные📊

Автор: TanyaVSdannye

Источник