# Статистика для Data Science у 2026: Ймовірність, Перевірка Гіпотез та Питання на Співбесідах > Повний посібник зі статистики для data science: розподіли ймовірностей, перевірка гіпотез, довірчі інтервали та найпоширеніші питання на співбесідах з практичними прикладами на Python. - Published: 2026-08-21 - Updated: 2026-08-21 - Author: Anthony Fillion-Maillet - Reading time: 5 min --- Статистика формує математичний фундамент кожної ролі в data science. Інтерв'юери в компаніях Google, Meta та Netflix перевіряють статистичне мислення, оскільки воно відрізняє кандидатів, які вміють будувати моделі, від тих, хто розуміє, чому ці моделі працюють. > **Що Шукають Інтерв'юери** > > Статистичні питання оцінюють три здібності: перетворення бізнес-проблем у статистичні рамки, вибір правильного тесту для даних та інтерпретацію результатів без надмірних висновків. ## Розподіли Ймовірностей, Які Повинен Знати Кожен Data Scientist Розподіли ймовірностей описують, як точки даних розподіляються по можливих значеннях. Інтерв'юери очікують вільного володіння цими розподілами, оскільки вони лежать в основі вибірки, A/B тестів та припущень моделей. **Нормальний розподіл** (Гауса) зустрічається скрізь: похибки вимірювань, зріст, результати тестів. Його дзвоноподібна крива центрується на середньому, з 68% даних в межах одного стандартного відхилення та 95% в межах двох. Коли розмір вибірки перевищує 30, Центральна Гранична Теорема гарантує, що середні вибірок слідують нормальному розподілу незалежно від форми початкової сукупності. **Біноміальний розподіл** моделює випробування успіх/невдача. Показники клікабельності, події конверсії та перевірки якості pass/fail слідують біноміальним патернам. Для n випробувань з ймовірністю успіху p, математичне сподівання дорівнює np, а дисперсія — np(1-p). **Розподіл Пуассона** підраховує рідкісні події у фіксованих інтервалах: відвідування сайту за хвилину, дефекти на партію, дзвінки на годину. Його єдиний параметр λ представляє як середнє, так і дисперсію. Коли події відбуваються незалежно із постійною середньою частотою, розподіл Пуассона підходить ідеально. ```python # distributions_demo.py import numpy as np from scipy import stats # Normal: customer spend follows N(μ=50, σ=15) normal_samples = stats.norm.rvs(loc=50, scale=15, size=1000) prob_above_80 = 1 - stats.norm.cdf(80, loc=50, scale=15) # P(X > 80) # Binomial: 100 users, 5% conversion rate binom_samples = stats.binom.rvs(n=100, p=0.05, size=1000) prob_at_least_10 = 1 - stats.binom.cdf(9, n=100, p=0.05) # P(X >= 10) # Poisson: 3 support tickets per hour on average poisson_samples = stats.poisson.rvs(mu=3, size=1000) prob_zero_tickets = stats.poisson.pmf(0, mu=3) # P(X = 0) ``` Ці три розподіли охоплюють більшість практичних сценаріїв. Інтерв'юери часто запитують, який розподіл підходить до конкретного бізнес-контексту, тому важливо практикувати зіставлення реальних проблем із відповідною моделлю. ## Перевірка Гіпотез: Рамки для A/B Тестів Перевірка гіпотез забезпечує формальну структуру для прийняття рішень на основі даних. Процес починається з нульової гіпотези (H₀), яка представляє відсутність ефекту або різниці, та альтернативної гіпотези (H₁), яка представляє те, що експеримент має виявити. Типова нульова гіпотеза A/B тесту стверджує: "Нова функція не впливає на коефіцієнт конверсії." Альтернативна стверджує, що ефект існує. Тест обчислює, наскільки ймовірними були б спостережувані дані, якби нульова гіпотеза була істинною. **p-значення** кількісно визначає цю ймовірність. p-значення 0,03 означає, що є 3% шанс побачити такі екстремальні результати, якщо нульова гіпотеза вірна. Коли p-значення падає нижче рівня значущості (зазвичай α = 0,05), нульова гіпотеза відхиляється. ```python # ab_test_analysis.py import numpy as np from scipy import stats # A/B test data: control vs treatment conversion rates control_conversions = 120 control_visitors = 2000 treatment_conversions = 145 treatment_visitors = 2000 # Proportions p_control = control_conversions / control_visitors # 0.060 p_treatment = treatment_conversions / treatment_visitors # 0.0725 # Pooled proportion under null hypothesis p_pooled = (control_conversions + treatment_conversions) / (control_visitors + treatment_visitors) # Standard error se = np.sqrt(p_pooled * (1 - p_pooled) * (1/control_visitors + 1/treatment_visitors)) # Z-statistic z_stat = (p_treatment - p_control) / se # Two-tailed p-value p_value = 2 * (1 - stats.norm.cdf(abs(z_stat))) print(f"Z-statistic: {z_stat:.3f}") # Z-statistic: 1.681 print(f"P-value: {p_value:.4f}") # P-value: 0.0928 ``` При p-значенні 0,0928 цей тест не відхиляє нульову гіпотезу при α = 0,05. Спостережувана різниця може бути випадковою варіацією. Для досягнення статистичної значущості потрібно більше даних або більший розмір ефекту. ## Помилки Типу I та II: Компроміси, Які Досліджують Інтерв'юери Статистичні тести балансують два типи помилок. **Помилка типу I** (хибнопозитивна) виникає при відхиленні істинної нульової гіпотези. **Помилка типу II** (хибнонегативна) виникає при невідхиленні хибної нульової гіпотези. Рівень значущості α безпосередньо контролює ймовірність помилки типу I. Встановлення α = 0,05 означає прийняття 5% шансу хибнопозитивних результатів. Зниження α до 0,01 зменшує хибнопозитивні, але збільшує хибнонегативні результати. **Статистична потужність** (1 - β) вимірює ймовірність правильного відхилення хибної нульової гіпотези. Потужність залежить від розміру ефекту, розміру вибірки та рівня значущості. Галузевий стандарт — 80% потужності, що означає 20% шанс пропустити реальні ефекти. > **Пастка на Співбесіді** > > Кандидати часто плутають "немає значущої різниці" з "різниці не існує." Невідхилення нульової гіпотези не доводить, що вона істинна. Тест може не мати достатньої потужності для виявлення малого, але реального ефекту. Розрахунки розміру вибірки балансують ці занепокоєння. Для A/B тесту, що має на меті 2% зростання конверсії (з 5% до 7%) при 80% потужності та α = 0,05: ```python # sample_size_calculation.py from statsmodels.stats.power import zt_ind_solve_power import numpy as np # Baseline conversion: 5%, expected lift: 2 percentage points baseline = 0.05 expected = 0.07 effect_size = (expected - baseline) / np.sqrt(baseline * (1 - baseline)) # Cohen's h # Required sample size per group n_per_group = zt_ind_solve_power( effect_size=effect_size, alpha=0.05, power=0.80, alternative='two-sided' ) print(f"Sample size per group: {int(np.ceil(n_per_group))}") # ~1,570 per group ``` Тести з недостатньою потужністю марнують ресурси, проводячи експерименти, які не здатні виявити реалістичні ефекти. ## Довірчі Інтервали: Кількісне Визначення Невизначеності 95% довірчий інтервал означає: якби той самий процес вибірки повторювався багато разів, 95% побудованих інтервалів містили б істинний параметр. Довірчі інтервали передають невизначеність краще, ніж самі точкові оцінки. Для середніх із відомою дисперсією сукупності інтервал використовує z-розподіл. Для малих вибірок або невідомої дисперсії застосовується t-розподіл. t-розподіл має важчі хвости, ніж нормальний, створюючи ширші інтервали, що враховують додаткову невизначеність. ```python # confidence_intervals.py import numpy as np from scipy import stats # Sample data: response times in milliseconds response_times = np.array([245, 312, 278, 299, 256, 334, 287, 301, 265, 289]) n = len(response_times) mean = np.mean(response_times) # 286.6 std_err = stats.sem(response_times) # Standard error of the mean # 95% confidence interval using t-distribution (df = n-1) t_critical = stats.t.ppf(0.975, df=n-1) margin_of_error = t_critical * std_err ci_lower = mean - margin_of_error ci_upper = mean + margin_of_error print(f"Mean: {mean:.1f}ms") # Mean: 286.6ms print(f"95% CI: [{ci_lower:.1f}, {ci_upper:.1f}]ms") # 95% CI: [265.4, 307.8]ms ``` Вужчі інтервали вказують на точніші оцінки. Розмір вибірки визначає точність: збільшення n вчетверо зменшує похибку вдвічі. ## Bayesian vs Frequentist: Питання на Співбесідах про Статистичну Філософію Інтерв'юери іноді досліджують розуміння конкуруючих статистичних парадигм. **Частотна статистика** розглядає ймовірність як довгострокову частоту: параметри є фіксованими, а дані змінюються в повторних експериментах. p-значення та довірчі інтервали походять з цієї традиції. **Байєсівська статистика** розглядає ймовірність як ступінь переконання: попередні знання поєднуються з даними для формування апостеріорних переконань. Цей підхід дозволяє включати експертні знання та безпосередньо створює імовірнісні твердження про параметри. A/B тести все частіше використовують байєсівські методи, оскільки вони відповідають на питання, яке насправді ставлять зацікавлені сторони: "Яка ймовірність, що варіант B перевершує варіант A?" замість "Наскільки несподіваними є ці дані, якби різниці не було?" ```python # bayesian_ab_test.py import numpy as np from scipy import stats # Prior: Beta(1, 1) = uniform prior for conversion rate # Posterior: Beta(alpha + successes, beta + failures) control_successes, control_failures = 120, 1880 treatment_successes, treatment_failures = 145, 1855 # Posterior distributions posterior_control = stats.beta(1 + control_successes, 1 + control_failures) posterior_treatment = stats.beta(1 + treatment_successes, 1 + treatment_failures) # Monte Carlo estimation: P(treatment > control) samples_control = posterior_control.rvs(100000) samples_treatment = posterior_treatment.rvs(100000) prob_treatment_better = np.mean(samples_treatment > samples_control) print(f"P(treatment > control): {prob_treatment_better:.2%}") # ~95% ``` Байєсівські результати комунікують безпосередньо: "Є 95% ймовірність, що коефіцієнт конверсії тестового варіанту перевищує контрольний." Частотні результати потребують обережнішої інтерпретації. ## Поширені Питання на Співбесідах про Статистичний Висновок Ці питання часто з'являються на співбесідах з data science в технологічних компаніях. Кожне тестує конкретну статистичну концепцію. **"Поясніть Центральну Граничну Теорему та чому вона важлива."** ЦГТ стверджує, що середні вибірок з будь-якої сукупності (зі скінченною дисперсією) наближаються до нормального розподілу зі збільшенням розміру вибірки. Це важливо, тому що припущення нормальності в тестах гіпотез виконуються для великих вибірок незалежно від базового розподілу. Вибірки 30+ зазвичай достатні. **"Що таке p-hacking і як йому запобігти?"** p-hacking завищує показники хибнопозитивних результатів шляхом тестування багатьох гіпотез до знаходження значущості або зупинки збору даних, коли результати стають значущими. Стратегії запобігання: попередня реєстрація планів аналізу, застосування поправок на множинні порівняння (Бонферроні, FDR) та визначення розмірів вибірки до збору даних. **"Коли використовувати t-тест, а коли тест Манна-Вітні U?"** t-тест передбачає нормально розподілені дані (або великі вибірки через ЦГТ) і порівнює середні. [Тест Манна-Вітні U](https://en.wikipedia.org/wiki/Mann%E2%80%93Whitney_U_test) — це непараметрична альтернатива, що порівнює розподіли без припущень нормальності. Слід використовувати Манна-Вітні для малих вибірок з явно ненормальними даними або при порівнянні порядкових вимірювань. **"Як обробляти множинні порівняння в A/B тестуванні?"** Тестування багатьох варіантів завищує помилку типу I. При 20 порівняннях при α = 0,05 ймовірність принаймні одного хибнопозитивного результату перевищує 60%. Поправка Бонферроні ділить α на кількість тестів. Процедура Бенджаміні-Хохберга контролює частку хибних відкриттів, зберігаючи більшу потужність, ніж Бонферроні. ## Парадокс Сімпсона: Улюблена Тема Співбесід [Парадокс Сімпсона](https://en.wikipedia.org/wiki/Simpson%27s_paradox) виникає, коли тренди в агрегованих даних змінюються на рівні підгруп. Інтерв'юери люблять цю тему, оскільки вона тестує причинно-наслідкове мислення, а не лише статистичну механіку. Класичний приклад: Лікарня A має вищий загальний показник смертності, ніж Лікарня B. Але Лікарня A має нижчу смертність як для легких, так і для важких випадків. Парадокс виникає тому, що Лікарня A лікує більше важких випадків, які мають вищу смертність незалежно від якості лікарні. ```python # simpsons_paradox.py import pandas as pd # Hospital mortality data data = { 'Hospital': ['A', 'A', 'B', 'B'], 'Severity': ['Mild', 'Severe', 'Mild', 'Severe'], 'Patients': [200, 800, 800, 200], 'Deaths': [10, 160, 48, 50] } df = pd.DataFrame(data) df['Mortality'] = df['Deaths'] / df['Patients'] # Subgroup mortality print(df[['Hospital', 'Severity', 'Mortality']]) # Hospital A: Mild 5%, Severe 20% # Hospital B: Mild 6%, Severe 25% # Aggregate mortality agg = df.groupby('Hospital').agg({'Deaths': 'sum', 'Patients': 'sum'}) agg['Mortality'] = agg['Deaths'] / agg['Patients'] print(agg['Mortality']) # Hospital A: 17%, Hospital B: 9.8% ``` Рішення вимагає ідентифікації конфаундера (тяжкість) та окремого аналізу підгруп. Агрегований аналіз вводить в оману, коли пропорції підгруп відрізняються. ## Статистичні Концепції для Інженерії Ознак Статистичні знання безпосередньо покращують інженерію ознак. Розуміння розподілів керує трансформаціями; розуміння взаємозв'язків керує створенням ознак. **Асиметрія** вимірює асиметрію розподілу. Праворуч скошені дані (дохід, ціни) виграють від логарифмічних трансформацій, які нормалізують розподіл та покращують продуктивність моделі. Ліворуч скошені дані використовують квадратичні або експоненціальні трансформації. **Кореляція** кількісно визначає лінійні залежності. Кореляція Пірсона передбачає нормальність і лінійність. Кореляція Спірмена обробляє монотонні нелінійні залежності. Сильно корельовані ознаки спричиняють мультиколінеарність у лінійних моделях, тому одну зазвичай видаляють. **Викиди** непропорційно впливають на середні та стандартні відхилення. Робастні статистики (медіана, IQR) стійкі до впливу викидів. Рішення: видалити, обмежити або трансформувати викиди залежно від того, чи представляють вони помилки чи справжні екстремальні значення. Більше інформації про застосування цих концепцій до моделей машинного навчання можна знайти в [посібнику з інженерії ознак для співбесід](/blog/data-science/feature-engineering-machine-learning-techniques-interview-2026) та в [модулі практики з інференційної статистики](/technologies/data-science/interview-questions/statistics-inferential). ## Що Вирізняє Сильних Кандидатів у Статистичних Питаннях Статистична компетентність на співбесідах з data science вимагає більше, ніж підручникових визначень. Сильні кандидати демонструють такі здібності: - **Зв'язування статистики з бізнес-результатами**: представлення результатів A/B тестів з точки зору впливу на дохід або залучення користувачів, а не лише p-значень - **Знання припущень**: кожен тест має умови (незалежність, нормальність, рівність дисперсій), і кандидати повинні вказати, коли ці умови можуть не виконуватися - **Кількісне визначення невизначеності**: точкові оцінки без довірчих або ймовірнісних інтервалів залишають зацікавлених осіб у здогадках щодо надійності - **Визнання обмежень причинності**: спостережувані дані показують кореляцію, і кандидати повинні сформулювати, який експериментальний дизайн встановить причинність - **Вибір правильного тесту**: відповідність типу даних (неперервні vs категоріальні), розміру вибірки та дослідницького питання до відповідного статистичного методу - **Чітка комунікація результатів**: переведення статистичних висновків у дієві рекомендації, які нетехнічні зацікавлені сторони можуть зрозуміти та діяти відповідно --- Source: SharpSkill (https://sharpskill.dev), tech interview preparation for your real stack. HTML version of this page: https://sharpskill.dev/uk/blog/data-science/statistics-data-science-probability-hypothesis-testing-interview-2026