Ковариация простыми словами
Карьерник — квиз-тренажёр в Telegram с 1500+ вопросами для собесов аналитика. SQL, Python, A/B, метрики. Бесплатно.
Короткое объяснение
Ковариация (covariance) — мера того, насколько две переменные изменяются вместе.
- Положительная covariance: когда X выше среднего, Y тоже выше. Движутся в одну сторону.
- Отрицательная: X выше → Y ниже. Движутся в противоположные.
- Нулевая: нет линейной связи.
Формула
cov(X, Y) = Σ(xᵢ − x̄)(yᵢ − ȳ) / (n − 1)Для каждой пары (x, y):
- Считаем отклонение X от среднего
- Считаем отклонение Y от среднего
- Перемножаем
- Суммируем и усредняем
Пример
Продажи мороженого (X) и температура (Y) за 5 дней:
День | X (мороженое) | Y (температура)
1 | 100 | 20
2 | 150 | 25
3 | 200 | 30
4 | 120 | 22
5 | 180 | 28
x̄ = 150, ȳ = 25Ковариация ≈ +200. Положительная — когда теплее, продаётся больше мороженого.
Проблема covariance
Значение зависит от единиц.
- Если измеряем в шт × °C → cov = 200
- Если в тыс шт × K → cov = совсем другое число
Это плохо для интерпретации и сравнения.
Решение — Correlation
Correlation = covariance / (σₓ × σᵧ) → нормализованная, в [−1, +1].
Подробнее: correlation vs covariance.
Зачем нужна covariance
1. Промежуточный расчёт для correlation
Формула correlation включает covariance.
2. Covariance matrix
Для многомерных данных:
X Y Z
X [var_X, cov_XY, cov_XZ]
Y [cov_YX, var_Y, cov_YZ]
Z [cov_ZX, cov_ZY, var_Z]Используется в:
- PCA — разложение covariance matrix
- Linear regression (β = (XᵀX)⁻¹ XᵀY)
- Risk models в финансах
- Multivariate analysis
3. Прямое использование в формулах
Некоторые формулы (variance суммы, портфельный риск) используют covariance напрямую.
4. Portfolio theory
Harry Markowitz Nobel Prize: оптимальный портфель минимизирует дисперсию через covariance matrix.
В Python
import numpy as np
x = [100, 150, 200, 120, 180]
y = [20, 25, 30, 22, 28]
# covariance (delta degrees of freedom = 1 → sample)
np.cov(x, y)[0, 1] # ≈ 205
# covariance matrix
np.cov([x, y])
# в pandas
df[['x', 'y']].cov()Интерпретация
- cov(X, Y) > 0: положительная связь
- cov(X, Y) < 0: отрицательная
- cov(X, Y) ≈ 0: нет линейной связи
Но НЕ говорит:
- Насколько сильная связь (нужен correlation)
- Линейная или нелинейная
- Причинно-следственная связь
Covariance vs correlation
| Covariance | Correlation | |
|---|---|---|
| Диапазон | −∞ до +∞ | −1 до +1 |
| Единицы | X × Y | без единиц |
| Интерпретация | сложная | простая |
| Для отчётов | редко | часто |
| В формулах | часто | реже |
Правило: для intuition и отчётов — correlation. Для math и моделей — covariance.
Частые ошибки
1. Сравнивать covariance у разных пар
«Cov(A, B) = 50 vs Cov(C, D) = 100» — это не значит, что вторая пара «сильнее связана». Разные масштабы.
2. Zero covariance = independence
Нет. Zero covariance = нет ЛИНЕЙНОЙ связи. Могут быть нелинейные.
3. Использовать covariance для feature selection
Correlation удобнее — не зависит от масштаба.
4. Путать sample и population covariance
В статистике обычно sample (делим на n−1). В ML иногда population (делим на n).
На собесе
«Что такое covariance?» Мера совместного отклонения X и Y от их средних.
«Чем отличается от корреляции?» Correlation = cov / (σₓ × σᵧ). Нормализована в [−1, +1].
«Когда covariance = 0?» Когда нет линейной связи. Может быть нелинейная.
«Зачем нужна covariance matrix?» PCA, regression, portfolio theory.
Связанные темы
FAQ
Covariance может быть отрицательной?
Да. Значит X и Y движутся в противоположные стороны.
Где применяется на практике?
PCA, линейная регрессия, portfolio optimization, ML-алгоритмы.
Covariance или correlation?
Для интерпретации — correlation. Для математических операций — covariance.
Sample или population?
Для анализа выборки — sample (n−1). В некоторых ML-алгоритмах — population.
Тренируйте статистику — откройте тренажёр с 1500+ вопросами для собесов.