Содержание курса 09 / 22

09 / 22 · Несколько случайных величин

Совместные распределения и независимость

Несколько случайных величин сразу: совместное, маргинальные и условные распределения в таблице и в виде плотностей, независимость случайных величин, ковариация и корреляция и почему нулевая корреляция не означает независимости, дисперсия среднего коррелированных оценок (почему ансамбли перестают улучшаться) и суммы независимых величин как свёртки.

На этой странице 12

Данные редко приходят по одному числу. У пациента есть давление и возраст, у дома — цена и площадь, у обучающего примера — вектор признаков и метка, у предложения — слово и следующее за ним. Чтобы спросить, как одна из этих величин зависит от другой, нужны вероятности всех их сочетаний — совместное распределение (joint distribution). В этой заметке мы определяем его, восстанавливаем по нему распределение каждой величины в отдельности и распределение одной величины при известной другой, определяем независимость случайных величин и вводим ковариацию и корреляцию — числа, которые описывают, насколько согласованно меняются две величины, причём описывают лишь отчасти.

Обозначения. pX,Y(x,y)=P(X=x,Y=y)p_{X,Y}(x, y) = P(X = x, Y = y) — совместная функция вероятности, fX,Y(x,y)f_{X,Y}(x, y) — совместная плотность; pXp_X, fXf_X — маргинальные распределения (marginal); pY∣X(y∣x)p_{Y \mid X}(y \mid x) и fY∣X(y∣x)f_{Y \mid X}(y \mid x) — условные (conditional). Cov⁡(X,Y)\operatorname{Cov}(X, Y) — ковариация, ρ(X,Y)\rho(X, Y) — корреляция.

Совместное и маргинальные распределения#

Для дискретных величин совместная функция вероятности — это таблица: по одной клетке на каждую пару значений, и в сумме клетки дают 1. Бросим две кости; пусть XX — значение первой, а YY — большее из двух значений. Таблица, суммы её строк и столбцов и одна её перенормированная строка — три объекта этой заметки:

Рисунок

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

Таблица 6 × 6 совместного распределения с суммамиВ строке x стоят нули левее диагонали, x на диагонали и единицы правее. Суммы строк равны 6, суммы столбцов 1, 3, 5, 7, 9, 11. Условное распределение при X = 3: 0, 0, 3/6, 1/6, 1/6, 1/6.Y — большая из двух костейX \ Y1234561234561111110211110031110004110000510000061P(X)666666P(Y)13579112P(Y | X = 3)003/61/61/61/63Таблица 6 × 6 совместного распределения с суммамиВ строке x стоят нули левее диагонали, x на диагонали и единицы правее. Суммы строк равны 6, суммы столбцов 1, 3, 5, 7, 9, 11. Условное распределение при X = 3: 0, 0, 3/6, 1/6, 1/6, 1/6.Y — большая из двух костейX \ Y1234561234561111110211110031110004110000510000061P(X)666666P(Y)13579112P(Y | X = 3)003/61/61/61/63
Строки — значение первой кости X, столбцы — большее из двух значений Y; в клетке — P(X = x, Y = y), умноженная на 36 (1). Сумма строки — P(X = x) = 6/36 для каждой грани, сумма столбца — P(Y = y) = (2y − 1)/36: большее из двух значений чаще бывает большим (2). Если известно, что X = 3, остаётся строка 3: Y = 3, если вторая кость не больше 3, иначе Y равно второй кости; деление на сумму строки даёт P(Y | X = 3) = 3/6, 1/6, 1/6, 1/6 (3).

Распределение одной только XX восстанавливается суммированием по значениям YY, а распределение YY — суммированием по XX:

pX(x)=∑ypX,Y(x,y),pY(y)=∑xpX,Y(x,y).p_X(x) = \sum_y p_{X,Y}(x, y), \qquad p_Y(y) = \sum_x p_{X,Y}(x, y) .

Их называют маргинальными, потому что их записывают на полях (margins) таблицы. Маргинальные распределения не определяют совместное: величины X′X' и Y′Y', выбранные независимо с теми же маргинальными распределениями, что у XX и YY, имеют те же суммы строк и столбцов, но совсем другую таблицу — без единого нуля.

Для непрерывных величин таблица превращается — если она существует — в совместную плотность fX,Y≥0f_{X,Y} \ge 0, интеграл которой по плоскости равен 1; вероятности — это объёмы, P((X,Y)∈A)=∬AfX,Y dx dyP((X, Y) \in A) = \iint_A f_{X,Y}\, dx\, dy, а маргинальные плотности получаются интегрированием по другой переменной, fX(x)=∫fX,Y(x,y) dyf_X(x) = \int f_{X,Y}(x, y)\, dy. У точки, равномерно распределённой в единичном круге, fX,Y=1/πf_{X,Y} = 1/\pi внутри круга. Её первая координата распределена неравномерно: интегрирование по вертикальной хорде, проходящей через xx, даёт fX(x)=2π1−x2f_X(x) = \frac{2}{\pi} \sqrt{1 - x^2} — плотность больше около центра, где хорды длинные. Непрерывность маргинальных распределений не гарантирует существования совместной плотности. Для стандартной нормальной ZZ обе величины ZZ и Z2Z^2 непрерывны, но пара (Z,Z2)(Z, Z^2) лежит на параболе — кривой нулевой площади, — так что никакая функция на плоскости не даёт её вероятностей интегрированием. Формулы этой заметки с fX,Yf_{X,Y} предполагают, что совместная плотность существует.

Условные распределения#

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

pY∣X(y∣x)=pX,Y(x,y)pX(x),fY∣X(y∣x)=fX,Y(x,y)fX(x).p_{Y \mid X}(y \mid x) = \frac{p_{X,Y}(x, y)}{p_X(x)}, \qquad f_{Y \mid X}(y \mid x) = \frac{f_{X,Y}(x, y)}{f_X(x)} .

Обе дроби определены там, где знаменатель положителен: pX(x)>0p_X(x) > 0 или fX(x)>0f_X(x) > 0. Непрерывный вариант определён лишь с точностью до значений xx из множества нулевой вероятности, и это не меняет ни одной вероятности, вычисленной с его помощью. В таблице условие X=3X = 3 оставляет строку 3, и YY принимает значение 3 с вероятностью 3/63/6, а каждое из значений 4, 5, 6 — с вероятностью 1/61/6. Непрерывный вариант отвечает на вопрос, оставшийся открытым в заметке об условной вероятности: условие X=xX = x — событие нулевой вероятности — определяется через плотности. Для точки в круге при условии X=xX = x координата YY равномерно распределена на хорде [−1−x2,1−x2][-\sqrt{1 - x^2}, \sqrt{1 - x^2}]. Если переписать определение, получится формула умножения для распределений (chain rule), fX,Y(x,y)=fX(x) fY∣X(y∣x)f_{X,Y}(x, y) = f_X(x)\, f_{Y \mid X}(y \mid x): генеративная модель часто задаёт совместное распределение именно так — распределением xx и условным распределением yy при данном xx.

Независимость случайных величин#

XX и YY независимы, если любое событие, связанное с XX, не зависит от любого события, связанного с YY; это равносильно тому, что совместное распределение равно произведению маргинальных:

pX,Y(x,y)=pX(x) pY(y)для всех x,y,p_{X,Y}(x, y) = p_X(x)\, p_Y(y) \quad \text{для всех } x, y ,

или то же самое для плотностей. Равносильная формулировка: любое условное распределение YY при X=xX = x совпадает с маргинальным распределением YY — знание XX ничего не говорит об YY. Первая кость и большее значение зависимы: уже P(X=3,Y=1)=0P(X = 3, Y = 1) = 0, тогда как P(X=3) P(Y=1)=16⋅136P(X = 3)\, P(Y = 1) = \frac16 \cdot \frac1{36}. Координаты точки в круге тоже зависимы: если XX близка к 1, то YY обязана быть близка к 0.

Для независимых величин математическое ожидание произведения распадается в произведение математических ожиданий: E[g(X) h(Y)]=E[g(X)] E[h(Y)]E[g(X)\, h(Y)] = E[g(X)]\, E[h(Y)], поскольку двойная сумма или двойной интеграл разбивается на произведение двух. Именно этот шаг использовался в предыдущей заметке, чтобы перемножать производящие функции моментов.

Ковариация и корреляция#

Ковариация (covariance) показывает, склонны ли две величины одновременно оказываться выше своих средних:

Cov⁡(X,Y)=E[(X−μX)(Y−μY)]=E[XY]−E[X] E[Y].\operatorname{Cov}(X, Y) = E\big[(X - \mu_X)(Y - \mu_Y)\big] = E[XY] - E[X]\, E[Y] .

Она существует, когда обе дисперсии конечны. Она положительна, когда большим значениям XX сопутствуют большие значения YY, и отрицательна, когда малые. Она линейна по каждому аргументу, и Cov⁡(X,X)=Var⁡(X)\operatorname{Cov}(X, X) = \operatorname{Var}(X). Раскрытие квадрата суммы даёт правило, обещанное в предыдущей заметке:

Var⁡(X+Y)=Var⁡(X)+Var⁡(Y)+2Cov⁡(X,Y),\operatorname{Var}(X + Y) = \operatorname{Var}(X) + \operatorname{Var}(Y) + 2 \operatorname{Cov}(X, Y) ,

поэтому дисперсии складываются ровно тогда, когда ковариация равна нулю, в частности для независимых величин, у которых ковариация равна E[X]E[Y]−E[X]E[Y]=0E[X]E[Y] - E[X]E[Y] = 0.

Ковариация измеряется в единицах XX, умноженных на единицы YY. Деление на стандартные отклонения даёт безразмерную корреляцию (correlation; коэффициент корреляции)

ρ(X,Y)=Cov⁡(X,Y)σXσY∈[−1,1],\rho(X, Y) = \frac{\operatorname{Cov}(X, Y)}{\sigma_X \sigma_Y} \in [-1, 1] ,

определённую при 0<Var⁡(X)<∞0 < \operatorname{Var}(X) < \infty и 0<Var⁡(Y)<∞0 < \operatorname{Var}(Y) < \infty, то есть не для константы. Она равна ±1\pm 1, только если в точности Y=aX+bY = aX + b. Для костей E[Y]=161/36E[Y] = 161/36, Cov⁡(X,Y)=35/24\operatorname{Cov}(X, Y) = 35/24 и ρ=0.61\rho = 0.61.

Из независимости следует нулевая корреляция; обратное неверно. Если Z∼N(0,1)Z \sim N(0, 1), то Cov⁡(Z,Z2)=E[Z3]=0\operatorname{Cov}(Z, Z^2) = E[Z^3] = 0, хотя Z2Z^2 — функция от ZZ. Корреляция видит только линейную часть зависимости:

Ещё два предостережения. Корреляция, вычисленная по объединённым группам, может иметь другой знак, чем корреляция внутри каждой группы, как в парадоксе Симпсона из вводной заметки. И корреляция — не причинность: продажи мороженого и число утонувших коррелируют, потому что и то и другое растёт летом.

Усреднение коррелированных оценок#

Ковариация объясняет, почему усреднение помогает не всегда. Возьмём nn оценок одной и той же величины, каждая с дисперсией σ2\sigma^2, причём у каждой пары корреляция равна ρ\rho: модели в ансамбле (ensemble), измерения одним и тем же прибором, разметки от пересекающихся групп разметчиков. Дисперсия их среднего равна

Var⁡(1n∑i=1nXi)=1n2(nσ2+n(n−1)ρσ2)=ρσ2+(1−ρ) σ2n.\operatorname{Var}\Big(\frac1n \sum_{i=1}^n X_i\Big) = \frac{1}{n^2}\Big(n \sigma^2 + n(n-1) \rho \sigma^2\Big) = \rho \sigma^2 + \frac{(1 - \rho)\, \sigma^2}{n} .

Второе слагаемое стремится к нулю с ростом nn, первое — нет. При ρ=0.5\rho = 0.5 среднее 10 оценок оставляет дисперсию 0.55σ20.55\sigma^2, а среднее 100 оценок — 0.505σ20.505\sigma^2: нижний предел равен ρσ2\rho\sigma^2. Ансамбли почти одинаковых моделей почти ничего не выигрывают, поэтому случайный лес (random forest) декоррелирует свои деревья, обучая каждое на бутстрэп-выборке (bootstrap sample) и выбирая каждое разбиение среди случайного подмножества признаков. По той же формуле много примеров от одного и того же пользователя или почти точные дубликаты (near-duplicates) в тестовой выборке сужают погрешность (error bar) гораздо меньше, чем можно было бы ожидать по их числу.

Суммы независимых величин#

Распределение X+YX + Y для независимых XX и YY собирает все способы получить каждую сумму:

P(X+Y=z)=∑xP(X=x) P(Y=z−x),fX+Y(z)=∫fX(x) fY(z−x) dx.P(X + Y = z) = \sum_x P(X = x)\, P(Y = z - x), \qquad f_{X+Y}(z) = \int f_X(x)\, f_Y(z - x)\, dx .

Эта операция — свёртка (convolution) двух распределений. Две кости дают треугольную функцию вероятности суммы; две независимые U(0,1)U(0, 1) — треугольную плотность на [0,2][0, 2], причём P(U1+U2≤0.5)=0.52/2=0.125P(U_1 + U_2 \le 0.5) = 0.5^2/2 = 0.125. Повторные свёртки делают форму всё более гладкой и колоколообразной; точный смысл этому придаёт центральная предельная теорема.

Что изменилось#

По одной величинеСовместное распределение
Описываеткаждую величину отдельновсе сочетания значений
Позволяет найтимаргинальные — суммированием по остальным величинам, условные — перенормировкой
Зависимостьне виднанезависимость: совместное = произведение маргинальных; ковариация и корреляция описывают линейную часть
Дисперсия суммыскладывали, предполагая независимостьVar⁡(X)+Var⁡(Y)+2Cov⁡(X,Y)\operatorname{Var}(X) + \operatorname{Var}(Y) + 2\operatorname{Cov}(X, Y)
Среднее коррелированных оценокσ2/n\sigma^2/nρσ2+(1−ρ)σ2/n\rho\sigma^2 + (1 - \rho)\sigma^2/n

Ограничения#

  • Совместные распределения быстро растут. У десяти бинарных величин 2102^{10} клеток, у ста — больше 103010^{30}; реальные модели предполагают структуру — например, условную независимость в наивном байесовском классификаторе или в графических моделях (graphical models) — или параметрическое семейство, такое как многомерное нормальное распределение.
  • Корреляция описывает только линейную зависимость. Она может быть нулевой для величин, одна из которых полностью определяет другую, и чувствительна к выбросам; взаимная информация (mutual information) или ранговые корреляции улавливают больше.
  • Ни корреляция, ни какое-либо совместное распределение не раскрывают причинности. Одно и то же совместное распределение наблюдательных данных совместимо с разными причинными структурами.

Что нужно запомнить#

  • Совместное распределение даёт вероятность каждого сочетания значений; маргинальные распределения получаются суммированием или интегрированием по остальным величинам; условные — перенормировкой среза.
  • XX и YY независимы, если совместное распределение равно произведению маргинальных; тогда E[g(X)h(Y)]=E[g(X)]E[h(Y)]E[g(X)h(Y)] = E[g(X)]E[h(Y)].
  • Cov⁡(X,Y)=E[XY]−E[X]E[Y]\operatorname{Cov}(X, Y) = E[XY] - E[X]E[Y]; Var⁡(X+Y)=Var⁡(X)+Var⁡(Y)+2Cov⁡(X,Y)\operatorname{Var}(X + Y) = \operatorname{Var}(X) + \operatorname{Var}(Y) + 2\operatorname{Cov}(X, Y); ρ=Cov⁡/(σXσY)∈[−1,1]\rho = \operatorname{Cov}/(\sigma_X\sigma_Y) \in [-1, 1].
  • Из независимости следует некоррелированность, но не наоборот: ZZ и Z2Z^2 некоррелированы.
  • Среднее nn оценок с попарной корреляцией ρ\rho имеет дисперсию ρσ2+(1−ρ)σ2/n\rho\sigma^2 + (1 - \rho)\sigma^2/n.
  • Распределение суммы независимых величин — свёртка их распределений.

Код#

Таблица с рисунка в точных дробях и остальные числа — симуляцией:

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

Дальше#

Для двух величин ковариация — одно число; для dd величин — матрица d×dd \times d. Одно семейство совместных распределений полностью описывается своими средними и этой матрицей, сохраняет свой вид при линейных отображениях, маргинализации и переходе к условным распределениям и лежит в основе линейной регрессии, гауссовских процессов и латентных пространств генеративных моделей: это многомерное нормальное распределение.

Литература#

  • 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. Корреляция между деревьями и ошибка леса.