Короткий ответ
Scatter plot визуализирует связь между двумя числовыми переменными; видимая на графике корреляция может объясняться скрытым общим фактором (конфаундером), обратной причинностью или случайностью, поэтому сама по себе не доказывает причинность.
Как это работает подробнее
Каждая точка — одно наблюдение с координатами (x, y); визуальный паттерн (линейный, кластеры) подсказывает силу и направление связи между переменными.
Пример кода
example.py
import pandas as pd
import numpy as np
np.random.seed(2)
temp = np.random.normal(25, 5, 200)
ice_cream_sales = temp * 10 + np.random.normal(0, 20, 200)
drownings = temp * 0.5 + np.random.normal(0, 3, 200)
df = pd.DataFrame({"temp": temp, "ice_cream_sales": ice_cream_sales, "drownings": drownings})
print(df[["ice_cream_sales", "drownings"]].corr())Что использовать на практике
- Рекомендация. Scatter plot и коэффициент корреляции — это стартовая гипотеза.
- Рекомендация. Для вывода о причинности нужно учитывать возможные конфаундеры, опираться на знание предметной области и, в идеале, проверять связь контролируемым экспериментом.
Подводные камни
- Риск. Прямое утверждение «X вызывает Y» на основе только scatter plot.
- Риск. Игнорирование очевидного конфаундера.
- Риск. Использование коэффициента Пирсона для явно нелинейной зависимости, что занижает оценку силы связи.