Data Analyst Professional · Модуль 7 · Урок 25 із 51
Кореляція, причинність і типові пастки
Кореляція описує association у спостережених даних. Вона не доводить, що зміна X спричиняє Y: зв’язок може виникнути через confounder, selection, trend, aggregation, reverse causality або випадковість.
Почніть зі scatter plot і data-generating process
Перед coefficient перевірте форму, segments, outliers, range restriction і time order. Pearson вимірює linear association; Spearman — monotonic association ranks і стійкіший до деяких nonlinear/outlier cases, але жоден не є доказом causality.
SELECT
CORR(load_time_ms::numeric, satisfaction::numeric) AS pearson_r,
COUNT(*) AS n
FROM seowork_lab.stat_observations;Повідомляйте N, plot, coefficient, scope, missing handling та uncertainty. r≈0 не виключає U‑shaped або segment-specific relationship.
П’ять причин хибного висновку
Z впливає і на X, і на Y; наприклад segment змінює load та conversion.
Y може впливати на X або обидва взаємодіють.
Дві series ростуть у часі без прямого зв’язку.
Аналіз лише survivors/responders створює association.
Додайте multiple comparisons і data dredging: якщо перевірити сотні pairs, частина виглядатиме «значущою» випадково.
Aggregation може перевернути історію
Загальна correlation або rate може відрізнятися від результату в кожному segment через різні mix/weights. Завжди порівнюйте overall і stratified views та пояснюйте denominator.
SELECT segment,
CORR(load_time_ms::numeric, converted::int::numeric) AS r,
AVG(converted::int)::numeric(8,4) AS conversion_rate,
COUNT(*) AS n
FROM seowork_lab.stat_observations
GROUP BY segment
UNION ALL
SELECT 'ALL',
CORR(load_time_ms::numeric, converted::int::numeric),
AVG(converted::int)::numeric(8,4),
COUNT(*)
FROM seowork_lab.stat_observations;Що потрібно для причинного твердження
| Рівень доказу | Що дозволено сказати |
|---|---|
| Observational association | «X і Y пов’язані у цьому dataset» |
| Adjusted observational model | «association зберігається після measured controls»; unmeasured confounding лишається |
| Randomized experiment | за коректного design/implementation оцінює causal effect intervention |
| Natural/quasi-experiment | можливий causal estimate лише з явними identification assumptions |
До аналізу зафіксуйте treatment, outcome, unit, assignment, exposure window, guardrails, exclusions і stopping rule. Після — перевірте randomization, attrition, contamination та practical effect size.
Практика
- Побудуйте scatter load_time × satisfaction та позначте segment.
- Порахуйте overall і segment-level correlations.
- Порівняйте variant A/B raw conversion, але не називайте це effect без перевірки assignment.
- Намалюйте causal question: treatment, outcome, confounders, mediators.
- Напишіть коректний висновок, limitation і наступний experiment.
Офіційні джерела
Модуль завершено
Ви описуєте uncertainty, не плутаєте association з causality, шукаєте confounding і пропонуєте дизайн, що справді може перевірити причинну гіпотезу.
Закріпіть матеріал уроку
Три сценарні питання. Для зарахування уроку потрібно дати щонайменше дві правильні відповіді.