Ковариация — это статистическая мера, которая показывает, как две случайные величины изменяются вместе. Если вы анализируете зависимость между акциями и индексом рынка, оцениваете связь между рекламными расходами и продажами или просто изучаете данные в учебном проекте, умение рассчитывать ковариацию в Microsoft Excel сэкономит вам часы ручной работы. В отличие от корреляции, ковариация не нормализуется и может принимать любые значения — как положительные, так и отрицательные.
Многие ошибочно думают, что для расчёта ковариации нужны специализированные программы вроде Python или R. На самом деле, Excel справляется с этой задачей не хуже — главное знать, какие функции использовать и как правильно подготовить данные. В этой статье мы разберём три метода расчёта (включая ручной через формулу), покажем на реальных примерах, как интерпретировать результаты, и предостережём от типичных ошибок, которые искажают итоговые значения.
Вы узнаете:
- 🔹 Какую функцию выбрать:
COVARIANCE.PилиCOVARIANCE.S— и в чём их принципиальная разница - 🔹 Как рассчитать ковариацию вручную через формулу средних значений (пошаговый разбор)
- 🔹 Почему ваш результат может быть неверным — 5 скрытых ловушек в данных
- 🔹 Практические примеры: анализ акций, маркетинговые метрики, учебные задачи
1. Что такое ковариация и зачем её считать в Excel
Ковариация (Covariance) измеряет степень совместной изменчивости двух переменных. Если значения одной переменной растут вместе с другой — ковариация положительная. Если одна растёт, а другая падает — отрицательная. Ноль означает отсутствие линейной зависимости.
От корреляции ковариация отличается тем, что:
- 📏 Не нормализуется: её значения зависят от масштаба данных (например, если данные в долларах, а не в рублях, ковариация будет другой).
- 📊 Чувствительна к выбросам: одно аномальное значение может сильно исказить результат.
- 🔄 Показывает направление связи, но не её силу (для этого нужен коэффициент корреляции).
Где применяется на практике:
- 💰 Финансы: оценка риска портфеля акций (как ценные бумаги движутся относительно друг друга).
- 📈 Маркетинг: связь между рекламным бюджетом и конверсией.
- 🎓 Наука: проверка гипотез о зависимости переменных в экспериментах.
⚠️ Внимание: Ковариация не доказывает причинно-следственную связь! Например, высокая ковариация между продажами мороженого и количеством утоплений не означает, что одно вызывает другое — просто оба параметра зависят от температуры воздуха.
2. Функции Excel для расчёта ковариации: COVARIANCE.P vs COVARIANCE.S
В Excel 2010 и новее есть две специализированные функции:
COVARIANCE.P(массив1; массив2)— для генеральной совокупности (все возможные данные).COVARIANCE.S(массив1; массив2)— для выборки (часть данных).
Разница в формуле: COVARIANCE.P делит на n (количество пар), а COVARIANCE.S — на n-1 (коррекция Бесселя). Для больших массивов (>30 пар) разница минимальна, но в маленьких выборках может существенно исказить результат.
| Функция | Формула | Когда использовать |
|---|---|---|
COVARIANCE.P | Σ[(xᵢ - x̄)(yᵢ - ȳ)] / n | Анализ всех доступных данных (например, исторические котировки акций за 10 лет). |
COVARIANCE.S | Σ[(xᵢ - x̄)(yᵢ - ȳ)] / (n-1) | Оценка по части данных (например, тестовая выборка из 20 клиентов). |
Пример использования:
=COVARIANCE.P(A2:A10; B2:B10) // Для генеральной совокупности
=COVARIANCE.S(A2:A10; B2:B10) // Для выборки
⚠️ Внимание: В Excel 2007 и старше вместо этих функций использоваласьCOVAR(без суффиксов). Она эквивалентнаCOVARIANCE.S, но устарела и может давать ошибки в новых версиях.
3. Пошаговый расчёт ковариации в Excel на примере
Рассмотрим практический пример: анализ зависимости между рекламными расходами (X) и продажами (Y) за 6 месяцев.
| Месяц | Рекламный бюджет, тыс. ₽ (X) | Продажи, ед. (Y) |
|---|---|---|
| Январь | 15 | 120 |
| Февраль | 20 | 150 |
| Март | 10 | 90 |
| Апрель | 25 | 200 |
| Май | 30 | 210 |
| Июнь | 18 | 130 |
Шаг 1. Введите данные в два столбца (например, A2:B7).
Шаг 2. Используйте функцию:
=COVARIANCE.P(B2:B7; C2:C7)
Результат: 191.6667 — положительная ковариация означает, что с ростом рекламного бюджета продажи тоже растут.
Шаг 3 (опционально). Проверьте ручным способом:
- Посчитайте средние:
=СРЗНАЧ(B2:B7)→ 19.67;=СРЗНАЧ(C2:C7)→ 150. - Найдите отклонения от среднего для каждой пары (например, для января:
15-19.67 = -4.67и120-150 = -30). - Перемножьте отклонения:
(-4.67)*(-30) = 140.1. - Суммируйте все произведения и разделите на количество пар (6).
Данные введены без пропусков|Столбцы имеют одинаковое количество строк|Использована правильная функция (P или S)|Результат совпадает с ручным расчётом-->
4. Ручное вычисление ковариации через формулу Excel
Если вам нужно понять математику процесса или у вас устаревшая версия Excel, можно рассчитать ковариацию вручную:
Формула:
Cov(X,Y) = Σ[(xᵢ - x̄)(yᵢ - ȳ)] / n, где:
xᵢ, yᵢ— отдельные значения;x̄, ȳ— средние по выборке;n— количество пар.
Алгоритм в Excel:
- Найдите средние:
=СРЗНАЧ(массив_X)и=СРЗНАЧ(массив_Y). - Создайте столбцы отклонений:
=X2-$X$среднееи=Y2-$Y$среднее. - Перемножьте отклонения:
=отклонение_X2 * отклонение_Y2. - Суммируйте произведения:
=СУММ(столбец_произведений). - Разделите на
n(илиn-1для выборки).
Критическая ошибка: если в данных есть пропуски или текстовые значения, Excel проигнорирует их, но количество пар (n) рассчитает неправильно. Всегда проверяйте =СЧЁТ(массив_X) и =СЧЁТ(массив_Y) — они должны совпадать.
Почему ручной метод точнее автоматического?
При ручном расчёте вы контролируете каждый шаг и можете выявить аномалии (например, выбросы или ошибки в данных), которые автоматические функции скрывают. Кроме того, так проще отлаживать формулы в сложных моделях.
5. Типичные ошибки и как их избежать
Даже опытные пользователи Excel допускают ошибки при расчёте ковариации. Вот 5 самых распространённых:
- Несовпадение размеров массивов: Если в одном столбце 10 строк, а в другом — 9, Excel вернёт ошибку
#Н/Д. Проверяйте=СЧЁТА(массив1)и=СЧЁТА(массив2). - Использование абсолютных ссылок: При копировании формулы с
$A$1на другие ячейки ссылки не обновятся. Используйте относительные (A1) или смешанные ($A1) ссылки. - Игнорирование выбросов: Одно аномальное значение (например, опечатка
1000вместо100) может исказить результат в 10 раз. Всегда стройте график рассеивания перед анализом. - Путаница между P и S: Если вы анализируете выборку, но используете
COVARIANCE.P, результат будет занижен. Для небольших данных (<100 пар) это критично. - Текст вместо чисел: Ячейки с текстом (например, "Н/Д") или датами в неправильном формате приводят к ошибке
#ЗНАЧ!. Используйте=ЕЧИСЛО()для проверки.
⚠️ Внимание: Если ковариация получилась равной нулю, это не всегда означает отсутствие связи. Возможно, зависимость нелинейная (например, параболическая) — проверьте график или используйте корреляцию Спирмена.
6. Продвинутые приёмы: ковариационная матрица и визуализация
Для анализа нескольких переменных одновременно используйте ковариационную матрицу. Она показывает ковариации всех пар переменных в наборе данных.
Как построить матрицу в Excel:
- Выделите пустую область размером
n×n(гдеn— количество переменных). - Введите формулу массива:
=КОВАРИАЦИЯ.Г(B2:D10; B2:D10)и нажмите
Ctrl+Shift+Enter(в новых версиях Excel формула работает без массива).
Пример для 3 переменных (X, Y, Z):
| X | Y | Z | |
|---|---|---|---|
| X | 50.2 | 19.1 | -12.4 |
| Y | 19.1 | 150.0 | 8.3 |
| Z | -12.4 | 8.3 | 45.7 |
Визуализация:
- 📊 Диаграмма рассеивания: Выделите два столбца →
Вставка → Точечная диаграмма. Наклон точки вверх-право? Ковариация положительная. - 🔶 Тепловая карта: Для ковариационной матрицы используйте
Условное форматирование → Цветовые шкалы.
7. Альтернативные методы: Power Query и VBA
Если вам нужно автоматизировать расчёт ковариации для больших данных, рассмотрите:
1. Power Query (Excel 2016+):
- Импортируйте данные →
Данные → Из таблицы/диапазона. - Добавьте пользовательский столбец с формулой ковариации (используйте язык M).
- Обновите запрос при изменении исходных данных.
2. VBA-макрос:
Function CustomCovariance(rng1 As Range, rng2 As Range, Optional isSample As Boolean = False) As Double
Dim n As Long, i As Long, sumXY As Double
Dim avg1 As Double, avg2 As Double
n = rng1.Rows.Count
avg1 = Application.WorksheetFunction.Average(rng1)
avg2 = Application.WorksheetFunction.Average(rng2)
For i = 1 To n
sumXY = sumXY + (rng1.Cells(i, 1).Value - avg1) * (rng2.Cells(i, 1).Value - avg2)
Next i
If isSample Then n = n - 1
CustomCovariance = sumXY / n
End Function
Используйте в ячейке как: =CustomCovariance(A2:A10; B2:B10; TRUE) для выборки.
3. Анализ данных (надстройка):
Включите Файл → Параметры → Надстройки → Анализ данных → выберите Ковариация в списке инструментов.
FAQ: Частые вопросы по ковариации в Excel
Можно ли рассчитать ковариацию для более чем двух переменных?
Да, но только попарно. Ковариационная матрица (см. раздел 6) показывает ковариации всех возможных пар в наборе данных. Для многомерного анализа используйте главные компоненты (PCA) — в Excel для этого есть надстройка XLSTAT.
Почему моя ковариация отрицательная, хотя на графике зависимость кажется положительной?
Возможно, в данных есть нелинейная зависимость (например, парабола) или выбросы, которые "перетягивают" среднее. Проверьте:
- Постройте график рассеивания с линией тренда (
Добавить элемент диаграммы → Линия тренда). - Используйте корреляцию Спирмена (
=КОРРЕЛ(массив1; массив2)) для нелинейных связей.
Как интерпретировать значение ковариации 0.5?
Само по себе значение ковариации малоинформативно — важно его знак и масштаб:
- Знак: положительный (0.5) означает, что переменные тенденциозно растут/падают вместе.
- Масштаб: сравнивайте с дисперсиями переменных. Если дисперсия X = 1, а Y = 100, то 0.5 — это слабая связь.
Для интерпретации силы связи преобразуйте ковариацию в корреляцию: =Cov(X,Y) / (СТАНДОТКЛОН(X) * СТАНДОТКЛОН(Y)).
Можно ли рассчитать ковариацию в Google Sheets?
Да, функции аналогичны:
=COVARIANCE.P(массив1; массив2)=COVARIANCE.S(массив1; массив2)
Отличие: в Google Sheets разделитель аргументов — запятая (,), а не точка с запятой (;).
Что делать, если в данных есть пропуски?
Пропуски искажают расчёт, так как COVARIANCE игнорирует пары, где хотя бы одно значение отсутствует. Решения:
- Удалите строки с пропусками:
Данные → Фильтр → отфильтруйте пустые ячейки. - Заполните пропуски средним:
=ЕСЛИ(ЕПУСТО(A2); СРЗНАЧ($A$2:$A$10); A2). - Используйте Power Query для очистки данных перед анализом.