← Все курсы · Курс по статистике · Все руководства
Корреляция против причинно-следственной связи: три объяснения любой закономерности
К концу этой страницы у вас выработается одна привычка: каждый раз, когда две вещи соприкасаются, вы произносите вслух три возможных объяснения, прежде чем действовать. X вызывает Y. Y вызывает X. Третья причина движет обоими. Вы также узнаете тихую четвертую, совпадение в небольшой выборке и один дешевый тест, который разделяет объяснения без проведения эксперимента. Это около двадцати минут.
Вот что на самом деле делать с этим сегодня. Возьмите последний график, который вы видели, где две линии двигались вместе, и произнесите три объяснения по порядку, на одном дыхании каждое. Если какой-либо из них выживет вслух, это открытие не будет готово к отправке в качестве причины.
Вкратце: корреляция — это один факт, за которым стоят четыре возможные истории. Только одна из этих историй — «X вызывает Y», и сама корреляция не может сказать вам, какая история правдива.
Одна картинка несет в себе всю идею, поэтому она стоит на первом месте. Та же наблюдаемая связь между X и Y и четырьмя историями, каждая из которых могла ее породить.
- Три объяснения и тихое четвертое
- Проработанный пример: реальная корреляция, которую можно вычислить
- Что на самом деле измеряет коэффициент корреляции
- Дешевый тест: держи третью вещь неподвижно
- Обратная причинно-следственная связь и почему время решает ее
- Полное до и после
- Пограничные случаи, которые делают корреляции ложными
- Почему это работает
- Использование этого в вашем собственном проекте
- Все на одном экране
1. Три объяснения и тихое четвертое
Перед пояснением: информационная панель показывает, что клиенты, которые открывают ваши письма, тратят больше. Маркетинг хочет удвоить объем электронной почты. Каковы еще варианты того, как могла бы возникнуть эта закономерность, если бы электронная почта ничего не вызывала?
Корреляция означает, что две вещи движутся вместе. Когда X высокий, Y имеет тенденцию быть высоким или иметь тенденцию быть низким. Вот и весь факт. Вопрос в том, почему, и существует ровно четыре истории-кандидата.
- X вызывает Y. Открытие электронной почты заставляет людей тратить больше. Это история, которую хотят все.
- Y вызывает X. Люди, которые уже тратят много, более заинтересованы, поэтому открывают больше писем. Те же данные, стрелка перевернута, совершенно другое действие.
- Третья вещь движет обоими. Лояльные клиенты не только открывают электронные письма, но и тратят их. Лояльность — это двигатель, и открытие электронной почты — это просто шаг вперед. Третья вещь имеет имя: сбивать с толку, что, говоря повседневными словами, является скрытой общей причиной, благодаря которой две невинные вещи кажутся связанными.
- Совпадение. В небольшой выборке несвязанные вещи совпадают только по счастливой случайности. Об этом молчат, потому что никто не предлагает его на собрании, и это самая распространенная история из всех, когда выборка мала. В разделе 7 ему присвоен номер.
Привычка, которую продает эта страница, стоит около десяти секунд. Прежде чем действовать по какому-либо шаблону, произнесите вслух все четыре истории по порядку и отметьте, какие из них вы не можете исключить. Большинство паттернов погибают на третьей истории, и те, которые выживают во всех четырех, достойны эксперимента.
2. Проработанный пример: реальную корреляцию, которую можно вычислить
Прежде чем объяснить: продажи мороженого и утопления растут и падают одновременно, месяц за месяцем, почти в каждом кратком изложении этой классической книги. Никто не верит, что мороженое топит людей. Так что же третье?
Вот целый год для одного озерного городка. Двенадцать строк, три столбца: средняя температура, продажи мороженого в тысячах долларов и утопление.
| Месяц | Средняя температура (°F) | Продажи мороженого (тысяч долларов) | Утопления |
|---|---|---|---|
| Ян | 36 | 8 | 1 |
| февраль | 38 | 9 | 0 |
| Мар | 46 | 14 | 0 |
| апрель | 55 | 19 | 1 |
| Может | 65 | 27 | 4 |
| июнь | 74 | 35 | 3 |
| июль | 81 | 42 | 5 |
| август | 79 | 40 | 4 |
| сентябрь | 70 | 30 | 5 |
| октябрь | 58 | 21 | 0 |
| ноябрь | 47 | 14 | 1 |
| декабрь | 39 | 10 | 0 |
Прочтите вместе колонку о продажах и колонку о утоплениях. Июль: самые высокие продажи, наибольшее количество утонувших. Январь и декабрь: самые низкие продажи, почти нет. Две колонки явно движутся вместе, и корреляция между ними рассчитывается как 0.86. Вот код, который создает все корреляции на этой странице, так что вы можете запустить его самостоятельно.
import pandas as pd
df = pd.DataFrame({
"month": ["Jan","Feb","Mar","Apr","May","Jun",
"Jul","Aug","Sep","Oct","Nov","Dec"],
"avg_temp_f": [36,38,46,55,65,74,81,79,70,58,47,39],
"ice_cream_k": [8,9,14,19,27,35,42,40,30,21,14,10],
"drownings": [1,0,0,1,4,3,5,4,5,0,1,0],
})
print(df[["avg_temp_f","ice_cream_k","drownings"]].corr().round(2))
avg_temp_f ice_cream_k drownings
avg_temp_f 1.00 0.99 0.86
ice_cream_k 0.99 1.00 0.86
drownings 0.86 0.86 1.00
Теперь прочитайте всю сетку, а не только одну ячейку. Мороженое и утопление составляют 0,86. Но температура коррелирует с мороженым в 0.99 и с утоплениями в 0.86. Третье не нуждалось в охоте. Он прямо здесь, в выходных данных, коррелирует с обоими подозреваемыми сильнее, чем они должны коррелировать друг с другом. Жара отправляет людей к ларьку с мороженым, а жара отправляет людей в озеро, и этим двум толпам никогда не придется встретиться.
Представьте себе, как вы запускаете эту сетку из трех столбцов на своих собственных данных: ваша метрика, предмет, с которым она движется, и одна переменная, которая, как вы тихо подозреваете, стоит за обоими. Конфаундер обычно заявляет о себе именно так, как строка с самыми большими числами.
3. Что на самом деле измеряет коэффициент корреляции
До пояснения: из автомата вышло число 0,86. Что это за мера и как будут выглядеть значения 1,0, 0 и отрицательные 0,86?
Коэффициент корреляции, записанный r, измеряет линейное совместное движение: насколько плотно две колонны вместе следуют по прямой линии. Он изменяется от −1 до 1. При значении 1 знание одного значения точно говорит о другом, и оба значения растут вместе. При −1 то же самое, но одно падает, а другое растет. При 0 знание одного не говорит вам ничего линейного о другом. Наше значение 0,86 означает, что месячные пары расположены близко к восходящей линии с некоторым разбросом.
Три ограничения на то, что говорит р, каждое из которых имеет значение в реальной работе.
- Он слеп к направлению. р(продажи, утопления) и р(утопления, продажи) — одно и то же число. Статистика понятия не имеет, какой столбец, по вашему мнению, является причиной. Любую стрелку, которую вы видите в нем, вы нарисовали сами.
- Он видит только прямые линии. Идеальная U-образная зависимость, где Y высока на обоих крайних значениях X, может привести к тому, что р будет близок к нулю. Значение р, близкое к нулю, означает «нет линейного рисунка», а не «нет узора». Это одна из причин наносить точки, прежде чем доверять числу.
- О размере ничего не сказано. Значение р, равное 0,9, может описывать эффект, слишком малый, чтобы иметь значение, поскольку р измеряет точность отслеживания, а не крутизну. Плотный набор крошечных изменений по-прежнему имеет высокие оценки.
Слово, обозначающее переменную р, имеющую бизнес-результат, часто употребляется так, как если бы это был показатель силы причины. Это показатель точности отслеживания, рассчитанный без знания причины. Большая часть этой страницы посвящена разделению этих двух идей.
4. Дешевый тест: держите третью вещь неподвижно
Прежде чем объяснить: если температура действительно является движущей силой обеих колонок, что должно случиться с корреляцией мороженого и утоплений между месяцами, когда все имеют примерно одинаковую температуру?
Оно должно уменьшиться до нуля. Если всем рулит жара, то среди столь же жарких месяцев не осталось водителя, и продажи и потопы должны бродить самостоятельно. Этот прогноз можно проверить на уже имеющихся у вас данных, и это самая дешевая причинно-следственная проверка, которая есть у аналитика: сегментируйте предполагаемый источник помех и посмотрите, сохранится ли шаблон.
warm = df[df.avg_temp_f >= 65] # May through Sep, 5 months
cool = df[df.avg_temp_f < 65] # the other 7 months
print(round(warm.ice_cream_k.corr(warm.drownings), 2))
print(round(cool.ice_cream_k.corr(cool.drownings), 2))
0.1
0.02
Корреляция составила 0,86 в течение всего года. В теплые месяцы это 0.10. В прохладные месяцы это 0.02. Как только температура поддерживается примерно на одном уровне, связь между мороженым и утоплением исчезает. Паттерн не пережил раскол, а это именно то, что предсказывает «третье, что движет обоими», и то, чего не делает «X вызывает Y».
Прежде чем читать дальше, скажите своими словами, почему корреляция, исчезающая внутри каждой полосы, очищает мороженое. Если вы можете это сказать, вы владеете методом.
Вот версия, которую я бы сказал. Годовая корреляция была построена на одном контрасте: в теплые месяцы наблюдаются высокие продажи и большое количество утоплений, в прохладные месяцы — низкие продажи и небольшое количество утоплений. В теплые месяцы в среднем случается 4,2 случая утопления против 0,43 в прохладные месяцы. Устраните этот контраст, сравнивая только подобное с подобным, и ничего не останется, так что контраст, то есть температура, и составлял всю взаимосвязь.
5. Обратная причинно-следственная связь и почему время решает ее
До пояснения: вторая история была «Y вызывает X». Что всегда должна делать причина, чего не может сделать ее следствие?
Приходите первым. Следствие не может произойти раньше причины. Итак, стандартная проверка обратной причинно-следственной связи — это выбор времени: выровняйте две серии во времени и спросите, какая из них движется первой.
Возьмем пример электронной почты из раздела 1. Если открытие электронных писем приводит к расходам, открытие должно предшествовать покупке, а открытия в этом месяце должны предсказывать расходы в следующем месяце лучше, чем наоборот. Если данные показывают, что расходы растут до того, как повышаются открытые ставки, стрелка, которую вы хотели, мертва по прибытии. На практике это означает вычисление корреляции с задержкой: сдвиньте один столбец на месяц и пересчитайте. Это то же самое corr() вызовите по сдвинутой колонке, так что это ничего не стоит.
Два честных предостережения. Во-первых, время может исключить стрелку, но не может подтвердить ее, поскольку искажающий фактор также может перемещать обе серии последовательно. Похолодания заканчиваются, затем восстанавливается мороженое, затем восстанавливается плавание. Во-вторых, некоторые пары подпитывают друг друга в обоих направлениях, например, практика и уверенность, а корреляция с запаздыванием показывает обе стрелки одновременно. Когда это произойдет, запишите оба, потому что это истинная форма.
6. Полное до и после
Те же данные, одни и те же выводы, записанные дважды. Разница в том, что читатель имеет право делать после прочтения.
До
Ice cream sales are strongly correlated with drownings
(r = 0.86). Reducing summer ice cream promotions should
be considered as a drowning-prevention measure.
Каждое слово перед скобками оправдано, а предложение после него — вымысел. Номер реальный. Переход от «коррелированности» к «уменьшению X изменит Y» является полной ошибкой, и ничто в данных не подтверждает это.
после
Monthly ice cream sales are associated with drownings
(r = 0.86, n = 12 months).
Checked: temperature is a confounder. It correlates with
both series (0.99 with sales, 0.86 with drownings), and
within temperature bands the association disappears
(r = 0.10 warm months, r = 0.02 cool months).
Read: both rise in hot months because heat drives both.
No causal claim. If prevention budget depends on this,
the variable to act on is warm-month lake supervision,
not sales.
В последующей версии видны три привычки. Там написано "связанный с", который претендует на совместное движение и не более того. Он называет проверяемый им искажающий фактор и показывает чек, что делает описание заслуживающим доверия, а не просто осторожным. И там указан размер выборки, чтобы читатель мог самостоятельно оценить историю совпадений. Называть то, что вы проверили, а что не смогли проверить, — это такая же дисциплина, как и Документирование ограничений данных, применяется к одному предложению.
7. Пограничные случаи, которые делают корреляции ложными
Прежде чем объяснить: имея всего 12 строк, как часто два совершенно несвязанных столбца показывают корреляцию, равную 0,5, просто по счастливой случайности?
Чаще, чем кажется возможным. Я сгенерировал 1000 пар случайных столбцов с 12 значениями, чистый шум без какой-либо связи, и посчитал: 106 из 1000 пар достигните значения р 0,5 или выше, а 10 из них достигнут значения 0,7 или выше. Примерно одна случайная пара из десяти выглядит умеренно коррелированной при таком размере выборки. Это история совпадений с числом, и именно поэтому захватывающая корреляция в сводке из 12 строк заслуживает подозрения, прежде чем праздновать.
import random
random.seed(11)
hits = 0
for _ in range(1000):
x = pd.Series(random.random() for _ in range(12))
y = pd.Series(random.random() for _ in range(12))
if abs(x.corr(y)) >= 0.5:
hits += 1
print(hits) # 106
Еще четыре способа, которыми реальная корреляция вводит в заблуждение, каждый из которых назван.
Обе серии просто трендовые. Все, что растет с течением времени, коррелирует со всем, что растет с течением времени: доход, численность персонала и количество гидов на этом сайте будут прекрасно коррелировать друг с другом. Корреляция между двумя трендовыми рядами в основном связана с календарем. Прежде чем поверить в это, сравните ежемесячные изменения, а не уровни.
Узор переворачивается, когда вы его разделяете. Отношения могут указывать в одну сторону в каждой подгруппе и в противоположную в целом, поскольку размеры групп различаются. Это парадокс Симпсона, и тот же ход сегментации из раздела 4 преподносит еще более неприятный сюрприз: совокупный ответ и ответ каждой подгруппы могут действительно не совпадать. Вот почему сегментирование по важным, как вам известно, переменным не является обязательным.
Вы сохранили только выживших. Корреляции, рассчитанные для отфильтрованной группы, например лучших клиентов или игр с большим количеством отзывов, могут быть созданы или уничтожены самим фильтром. Если обе переменные помогли строке пройти фильтр, выжившие покажут связь, которой нет у всей популяции.
Один выброс удерживает целое число. При небольшом количестве строк одна крайняя пара может сама по себе создать сильное р. Прежде чем цитировать число, нанесите точки один раз. Если история разваливается, когда вы закрываете одну точку большим пальцем, значит, это никогда не была история. Построение графика перед вычислением является основным шагом Исследовательский анализ данных.
Почему это работает
Тест на сегментацию, описанный в разделе 4, представляет собой версию очень старого результата, придуманную действующим аналитиком. Симпсон формально показал, что ассоциация между двумя переменными может изменить размер, исчезнуть или измениться, когда в таблицу добавляется третья переменная, и что сводная таблица сама по себе не может сказать вам, какое чтение является правильным (Симпсон, 1951, Журнал Королевского статистического общества, серия B, 13(2), 238–241). Практическим следствием является привычка, которой учит эта страница: ни одну ассоциацию нельзя безопасно интерпретировать до тех пор, пока третьи переменные-кандидаты не будут неподвижны и шаблон не будет перепроверен.
История совпадений также не вызывает смутного беспокойства. Небольшие выборки дают экстремальную арифметическую статистику, поскольку оценки, рассчитанные по небольшому количеству значений, сильно колеблются, и любой процесс, который выявляет наиболее сильные закономерности, например, панель мониторинга, отсортированная по корреляции, сначала выявляет случайности небольшой выборки (Гельман & Цена, 1999, Статистика в медицине, 18(23), 3221–3234). Приведенное выше моделирование 106 из 1000 показывает, что эффект становится видимым при н = 12.
И причина, по которой эта страница продолжает просить вас ответить, прежде чем она объяснит: предложение самому придумать объяснение, прежде чем его получить, надежно улучшает понимание и запоминание этого материала в большом количестве контролируемых исследований (Бисра, Лю, Несбит, Салими и Винн, 2018, Обзор педагогической психологии, 30(3), 703–725). Догадавшись о третьей вещи, прежде чем показала корреляционная сетка, это то, почему температура придет на ум в следующий раз, когда две ваши собственные колонны сдвинутся вместе.
Использование этого в вашем собственном проекте
Вспомните одно утверждение в отправленном вами отчете, которое тихо опирается на «X управляет Y». Проверять каждую такую претензию сразу – это уныло, и вы ее не доведете до конца. Вместо этого сделайте это по порядку.
- Произнесите четыре истории вслух для этого одного утверждения: X вызывает Y, Y вызывает X, третья вещь движет обоими - совпадение. Десять секунд. Обратите внимание, какие из них вы не можете исключить.
- Запустите корреляционную сетку из трех столбцов: X, Y и ваш лучший кандидат в конфликтные ситуации. Если кандидат сильно коррелирует с обоими, его повышают до главного подозреваемого.
- Сегмент подозреваемого и пересчитать корреляцию X и Y внутри каждой полосы. Исчез: образец принадлежит подозреваемому. Выжил: подозреваемый оправдан, а причинно-следственные связи все еще живы.
- Проверьте время если обратная причинно-следственная связь правдоподобна: сдвиньте один ряд и посмотрите, какое направление предсказывает лучше.
- Перепишите предложение как "связанный с" назовите проверенные вами конфаундеры, укажите. Если после всего этого в утверждении все еще нужен причинный глагол, следующим честным шагом будет эксперимент: случайным образом разделить испытуемых, изменить X только для одной группы и сравнить. Рандомизация — единственный шаг, который заставляет замолчать сразу всех мешающих факторов, известных и неизвестных, и это именно то, что представляет собой А/Б-тест. Курс по статистике есть урок по правильному использованию.
Если у вас под рукой есть бумага, один дополнительный рисунок стоит пяти минут. Четыре панели фигуры нарисуйте сами, по памяти: X к Y, Y к X, Z вниз к обеим и точки случайности. Затем напишите свои собственные X, Y и Z из живого проекта на третьей панели. Перерисовка — это попытка извлечения, а заполнение собственных переменных — этап переноса.
Все на одном экране
Это лист поиска. Закройте правую колонку, проработайте левую и произнесите каждый ответ вслух, прежде чем проверять его.
| концепция | Что это значит |
|---|---|
| Корреляция | Две вещи движутся вместе. Один факт, четыре возможных истории. |
| Четыре истории | X вызывает Y. Y вызывает X. Третья причина движет обоими. Совпадение. |
| сбивать с толку | Скрытая общая причина, из-за которой две невинные вещи кажутся связанными. |
| r | Линейное совместное движение, от -1 до 1. Точность отслеживания, а не сила причины. |
| Чего я не вижу | Направление, кривые и размер эффекта. |
| В поисках сбивающего с толку | Сетка корреляции с кандидатом: она должна коррелировать с обоими. |
| Самый дешевый тест | Сегмент подозреваемого. Схема исчезает: она принадлежит подозреваемому. Выжил: подозреваемый оправдан. |
| Что доказывает сегментация | Устраняет одного названного подозреваемого за каждое разделение. Никогда не доказывает причину. |
| Проверка обратной причинно-следственной связи | Сроки. Причина должна двигаться в первую очередь. Пересчитать р с задержкой. |
| Совпадение при н = 12 | Примерно в 1 из 10 случайных пар обнаруживается |р| ≥ 0,5. Указывайте н в каждой записи. |
| Трендовые серии | Все, что растет, соотносится со всем, что растет. Сравнивайте изменения, а не уровни. |
| Парадокс Симпсона | Подгруппы и сумма могут искренне расходиться во мнениях. Прежде чем интерпретировать, сегментируйте. |
| Что решает это | Эксперимент. Случайное задание одновременно заставляет замолчать известных и неизвестных сбивающих с толку людей. |
| Привычка отчитываться | «Связано с», назовите проверенные вами конфаундеры, укажите н. |
Еще одна мысль, и мне бы искренне хотелось услышать ответы других людей. Моя температурная колонка призналась в этом в тот момент, когда я распечатал полную корреляционную сетку вместо одной ячейки, о которой меня спрашивали. Какую корреляцию ваша команда в настоящее время считает причиной, и какую из четырех историй еще никто не произнес вслух?
Ссылки
- Симпсон, Э. Х. (1951). Интерпретация взаимодействия в таблицах сопряженности. Журнал Королевского статистического общества, серия B, 13(2), 238–241.
- Гельман А. и Прайс П.Н. (1999). Все карты оценок параметров вводят в заблуждение. Статистика в медицине, 18(23), 3221–3234.
- Бисра К., Лю К., Несбит Дж. К., Салими Ф. и Винн П. Х. (2018). Побуждение к самообъяснению: метаанализ. Обзор педагогической психологии, 30(3), 703–725.
Статистика для аналитиков составляет 123 страницы, проверки, которые стоят между связью в данных и утверждением о причине.
Статистика для аналитиков, $19 →Теперь у вас есть четыре истории и тест на сегментирование. Курс по статистике здесь вы запускаете повторы: корреляцию, факторы, искажающие факторы, распределения и А/Б-тестирование с проработанными примерами, обучающими карточками и пробным экзаменом. Ничего устанавливать, учетная запись не требуется.
Откройте набор статистики →