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

Предположим, изначально у нас было одно полное облако точек. Мы разделили его на три непересекающихся подмножества (обозначены цветами). В каждом из цветных облаков есть значимая взаимосвязь между переменными \(X\) и \(Y\), которую обнаруживают любые регрессионные методы (приведены три: классический МНК, квантильная регрессия при \(q=0{,}5\) и локально линейная регрессия первой степени).

Ложные значимые эффекты на подвыборках

Однако если взглянуть на изначальное облако из всех точек всех трёх цветов, то эффекта никакого не будет (эта ничтожно слабая и малозначимая зависимость показана толстой чёрной линией). Получается парадокс: если индивид относится к зелёной подвыборке, то в ней влияние \(X\) на \(Y\) есть. То же верно и для всех остальных подвыборок. Везде эффект положительный! Однако одновременно для всех точек никакого эффекта нет.

Вся выборка Синие Зелёные Красные
Зависимая переменная: Y
X 0.013 0.839*** 0.482*** 0.598***
Стд. ошиб. X (0.030) (0.024) (0.048) (0.046)
t-стат. X 0.431 35.6*** 7.7*** 13.6***
Константа 0.004 0.013 −1.202*** 1.245***
Стд. ошиб. конст. (0.031) (0.019) (0.055) (0.053)
Наблюдений 1000 386 307 307
R2 0.0002 0.756 0.252 0.361
Стд. ошиб. остат. 0.981 0.373 0.667 0.640
Примечание: *p<0.1, **p<0.05, ***p<0.01

В скобках приведены робастные стандартные ошибки в форме Дэвидсона—Маккиннона (HC3).

Вывод: чем более избирательно исследователь будет составлять выборку для исследования («пожилое коренное население, которое до этого трудилось на работах, не требующих высокой квалификации»), тем больше вероятность, что он что-нибудь да обнаружит... и что эта находка будет ложной.

Код для репликации в R:

library(lmtest)
library(sandwich)
n <- 1000
set.seed(100)
x <- rnorm(n)
y <- rnorm(n)
th <- 0.7
g1 <- (y < x + th) & (y > x - th)
g2 <- (y <= x - th)
g3 <- (y >= x + th)
coeftest(lm(y~x), vcov. = vcovHC)
coeftest(lm(y~x, subset=g1), vcov. = vcovHC)
coeftest(lm(y~x, subset=g2), vcov. = vcovHC)
coeftest(lm(y~x, subset=g3), vcov. = vcovHC)