09 / 22 · Несколько случайных величин
Совместные распределения и независимость
Несколько случайных величин сразу: совместное, маргинальные и условные распределения в таблице и в виде плотностей, независимость случайных величин, ковариация и корреляция и почему нулевая корреляция не означает независимости, дисперсия среднего коррелированных оценок (почему ансамбли перестают улучшаться) и суммы независимых величин как свёртки.
На этой странице 12
Данные редко приходят по одному числу. У пациента есть давление и возраст, у дома — цена и площадь, у обучающего примера — вектор признаков и метка, у предложения — слово и следующее за ним. Чтобы спросить, как одна из этих величин зависит от другой, нужны вероятности всех их сочетаний — совместное распределение (joint distribution). В этой заметке мы определяем его, восстанавливаем по нему распределение каждой величины в отдельности и распределение одной величины при известной другой, определяем независимость случайных величин и вводим ковариацию и корреляцию — числа, которые описывают, насколько согласованно меняются две величины, причём описывают лишь отчасти.
Обозначения. — совместная функция вероятности, — совместная плотность; , — маргинальные распределения (marginal); и — условные (conditional). — ковариация, — корреляция.
Совместное и маргинальные распределения#
Для дискретных величин совместная функция вероятности — это таблица: по одной клетке на каждую пару значений, и в сумме клетки дают 1. Бросим две кости; пусть — значение первой, а — большее из двух значений. Таблица, суммы её строк и столбцов и одна её перенормированная строка — три объекта этой заметки:
Совместное, маргинальные и условное распределения двух костей
Распределение одной только восстанавливается суммированием по значениям , а распределение — суммированием по :
Их называют маргинальными, потому что их записывают на полях (margins) таблицы. Маргинальные распределения не определяют совместное: величины и , выбранные независимо с теми же маргинальными распределениями, что у и , имеют те же суммы строк и столбцов, но совсем другую таблицу — без единого нуля.
Для непрерывных величин таблица превращается — если она существует — в совместную плотность , интеграл которой по плоскости равен 1; вероятности — это объёмы, , а маргинальные плотности получаются интегрированием по другой переменной, . У точки, равномерно распределённой в единичном круге, внутри круга. Её первая координата распределена неравномерно: интегрирование по вертикальной хорде, проходящей через , даёт — плотность больше около центра, где хорды длинные. Непрерывность маргинальных распределений не гарантирует существования совместной плотности. Для стандартной нормальной обе величины и непрерывны, но пара лежит на параболе — кривой нулевой площади, — так что никакая функция на плоскости не даёт её вероятностей интегрированием. Формулы этой заметки с предполагают, что совместная плотность существует.
Условные распределения#
Если зафиксировать значение одной величины и перенормировать то, что осталось, получится распределение другой:
Обе дроби определены там, где знаменатель положителен: или . Непрерывный вариант определён лишь с точностью до значений из множества нулевой вероятности, и это не меняет ни одной вероятности, вычисленной с его помощью. В таблице условие оставляет строку 3, и принимает значение 3 с вероятностью , а каждое из значений 4, 5, 6 — с вероятностью . Непрерывный вариант отвечает на вопрос, оставшийся открытым в заметке об условной вероятности: условие — событие нулевой вероятности — определяется через плотности. Для точки в круге при условии координата равномерно распределена на хорде . Если переписать определение, получится формула умножения для распределений (chain rule), : генеративная модель часто задаёт совместное распределение именно так — распределением и условным распределением при данном .
Независимость случайных величин#
и независимы, если любое событие, связанное с , не зависит от любого события, связанного с ; это равносильно тому, что совместное распределение равно произведению маргинальных:
или то же самое для плотностей. Равносильная формулировка: любое условное распределение при совпадает с маргинальным распределением — знание ничего не говорит об . Первая кость и большее значение зависимы: уже , тогда как . Координаты точки в круге тоже зависимы: если близка к 1, то обязана быть близка к 0.
Для независимых величин математическое ожидание произведения распадается в произведение математических ожиданий: , поскольку двойная сумма или двойной интеграл разбивается на произведение двух. Именно этот шаг использовался в предыдущей заметке, чтобы перемножать производящие функции моментов.
Ковариация и корреляция#
Ковариация (covariance) показывает, склонны ли две величины одновременно оказываться выше своих средних:
Она существует, когда обе дисперсии конечны. Она положительна, когда большим значениям сопутствуют большие значения , и отрицательна, когда малые. Она линейна по каждому аргументу, и . Раскрытие квадрата суммы даёт правило, обещанное в предыдущей заметке:
поэтому дисперсии складываются ровно тогда, когда ковариация равна нулю, в частности для независимых величин, у которых ковариация равна .
Ковариация измеряется в единицах , умноженных на единицы . Деление на стандартные отклонения даёт безразмерную корреляцию (correlation; коэффициент корреляции)
определённую при и , то есть не для константы. Она равна , только если в точности . Для костей , и .
Из независимости следует нулевая корреляция; обратное неверно. Если , то , хотя — функция от . Корреляция видит только линейную часть зависимости:
Корреляция измеряет только линейную зависимость
Ещё два предостережения. Корреляция, вычисленная по объединённым группам, может иметь другой знак, чем корреляция внутри каждой группы, как в парадоксе Симпсона из вводной заметки. И корреляция — не причинность: продажи мороженого и число утонувших коррелируют, потому что и то и другое растёт летом.
Усреднение коррелированных оценок#
Ковариация объясняет, почему усреднение помогает не всегда. Возьмём оценок одной и той же величины, каждая с дисперсией , причём у каждой пары корреляция равна : модели в ансамбле (ensemble), измерения одним и тем же прибором, разметки от пересекающихся групп разметчиков. Дисперсия их среднего равна
Второе слагаемое стремится к нулю с ростом , первое — нет. При среднее 10 оценок оставляет дисперсию , а среднее 100 оценок — : нижний предел равен . Ансамбли почти одинаковых моделей почти ничего не выигрывают, поэтому случайный лес (random forest) декоррелирует свои деревья, обучая каждое на бутстрэп-выборке (bootstrap sample) и выбирая каждое разбиение среди случайного подмножества признаков. По той же формуле много примеров от одного и того же пользователя или почти точные дубликаты (near-duplicates) в тестовой выборке сужают погрешность (error bar) гораздо меньше, чем можно было бы ожидать по их числу.
Суммы независимых величин#
Распределение для независимых и собирает все способы получить каждую сумму:
Эта операция — свёртка (convolution) двух распределений. Две кости дают треугольную функцию вероятности суммы; две независимые — треугольную плотность на , причём . Повторные свёртки делают форму всё более гладкой и колоколообразной; точный смысл этому придаёт центральная предельная теорема.
Что изменилось#
| По одной величине | Совместное распределение | |
|---|---|---|
| Описывает | каждую величину отдельно | все сочетания значений |
| Позволяет найти | маргинальные — суммированием по остальным величинам, условные — перенормировкой | |
| Зависимость | не видна | независимость: совместное = произведение маргинальных; ковариация и корреляция описывают линейную часть |
| Дисперсия суммы | складывали, предполагая независимость | |
| Среднее коррелированных оценок |
Ограничения#
- Совместные распределения быстро растут. У десяти бинарных величин клеток, у ста — больше ; реальные модели предполагают структуру — например, условную независимость в наивном байесовском классификаторе или в графических моделях (graphical models) — или параметрическое семейство, такое как многомерное нормальное распределение.
- Корреляция описывает только линейную зависимость. Она может быть нулевой для величин, одна из которых полностью определяет другую, и чувствительна к выбросам; взаимная информация (mutual information) или ранговые корреляции улавливают больше.
- Ни корреляция, ни какое-либо совместное распределение не раскрывают причинности. Одно и то же совместное распределение наблюдательных данных совместимо с разными причинными структурами.
Что нужно запомнить#
- Совместное распределение даёт вероятность каждого сочетания значений; маргинальные распределения получаются суммированием или интегрированием по остальным величинам; условные — перенормировкой среза.
- и независимы, если совместное распределение равно произведению маргинальных; тогда .
- ; ; .
- Из независимости следует некоррелированность, но не наоборот: и некоррелированы.
- Среднее оценок с попарной корреляцией имеет дисперсию .
- Распределение суммы независимых величин — свёртка их распределений.
Код#
Таблица с рисунка в точных дробях и остальные числа — симуляцией:
import numpy as np
from fractions import Fraction
# two dice: X the first, Y the larger; the joint PMF as a 6 x 6 table of fractions
J = np.full((6, 6), Fraction(0), dtype=object)
for a in range(1, 7):
for b in range(1, 7):
J[a - 1, max(a, b) - 1] += Fraction(1, 36)
pX, pY = J.sum(axis=1), J.sum(axis=0)
print([str(p) for p in pX], [int(p * 36) for p in pY]) # ['1/6', ...] [1, 3, 5, 7, 9, 11]
print([str(v / pX[2]) for v in J[2]]) # ['0', '0', '1/2', '1/6', '1/6', '1/6']
# covariance and correlation of X and Y
v = np.arange(1, 7)
EX, EY = (pX * v).sum(), (pY * v).sum()
EXY = sum(J[i, j] * v[i] * v[j] for i in range(6) for j in range(6))
cov = EXY - EX * EY
varX, varY = (pX * v**2).sum() - EX**2, (pY * v**2).sum() - EY**2
print(EY, cov, round(float(cov) / float(varX * varY) ** 0.5, 3)) # 161/36 35/24 0.608
# uncorrelated but dependent: Z and Z^2
rng = np.random.default_rng(0)
z = rng.normal(size=1_000_000)
print(round(float(np.corrcoef(z, z**2)[0, 1]), 3)) # 0.0
# the average of n estimates with variance 1 and pairwise correlation rho
for rho in (0.0, 0.5, 0.9):
print(rho, [round(rho + (1 - rho) / n, 3) for n in (1, 10, 100)])
# 0.0 [1.0, 0.1, 0.01] 0.5 [1.0, 0.55, 0.505] 0.9 [1.0, 0.91, 0.901]
shared, own = rng.normal(size=(100_000, 1)), rng.normal(size=(100_000, 10))
estimates = np.sqrt(0.5) * shared + np.sqrt(0.5) * own # pairwise correlation 0.5
print(round(float(estimates.mean(axis=1).var()), 3)) # 0.547, against 0.55
# the sum of two independent uniforms has a triangular density
print(round(float((rng.random((2, 1_000_000)).sum(axis=0) <= 0.5).mean()), 4)) # 0.125
Дальше#
Для двух величин ковариация — одно число; для величин — матрица . Одно семейство совместных распределений полностью описывается своими средними и этой матрицей, сохраняет свой вид при линейных отображениях, маргинализации и переходе к условным распределениям и лежит в основе линейной регрессии, гауссовских процессов и латентных пространств генеративных моделей: это многомерное нормальное распределение.
Литература#
- J. K. Blitzstein, J. Hwang. Introduction to Probability, 2nd ed. CRC Press, 2019. Глава 7 (совместные, маргинальные и условные распределения, ковариация и корреляция), глава 8 (свёртки).
- W. Feller. An Introduction to Probability Theory and Its Applications, Vol. 1, 3rd ed. Wiley, 1968. Глава IX (совместные распределения, ковариация, корреляция).
- L. Breiman. Random Forests. Machine Learning, 45(1), 2001. Корреляция между деревьями и ошибка леса.