# 4. Домашнє завдання (написання програми) > **Джерело завдання.** Формулювання взято **з методичних матеріалів курсу**. > Готового коду тут **немає** — це індивідуальне завдання; техніку обчислень > показано на інших даних у [2method.md](2method.md) та [3classroom.md](3classroom.md). ## Постановка **Написати додаток, який отримує дві вибірки, для цих вибірок перевірити гіпотезу, чи рівна в них дисперсія (за альтернативну гіпотезу взяти гіпотезу, що дисперсії не дорівнюють одна одній). У випадку, якщо гіпотеза підтверджена, перевірити гіпотезу, чи рівне в них математичне сподівання (за альтернативну гіпотезу взяти гіпотезу, що математичні сподівання не дорівнюють одне одному).** Мову програмування студент обирає самостійно. Бібліотечні функції перевірки гіпотез (наприклад, `scipy.stats.ttest_ind`, `scipy.stats.f`) дозволено використовувати **лише для перевірки** власної реалізації формул. ## Логіка роботи Порядок перевірок заданий постановкою: ```text 1. Прочитати дві вибірки. 2. F-критерій: H0: sigma1^2 = sigma2^2 проти H1: sigma1^2 != sigma2^2 3. ЯКЩО дисперсії рівні (H0 не відхилено): t-критерій рівності середніх з ОБ'ЄДНАНОЮ дисперсією ІНАКШЕ (дисперсії різні): (базовий рівень) повідомити, що перевірку середніх не виконують (високий рівень) застосувати критерій УЕЛЧА 4. Для перевірки середніх: H0: mu1 = mu2 проти H1: mu1 != mu2 5. Вивести рішення кожної перевірки. ``` ## Вхід і вихід - **Вхід:** дві вибірки чисел. Спосіб подання — на розсуд студента: два файли **CSV**, один CSV із двома стовпцями, або два списки, введені з клавіатури. Обсяги вибірок можуть **не збігатися** ($n_1 \ne n_2$). - **Вихід:** для кожної перевірки — чітке рішення природною мовою: «дисперсії рівні / різні», «математичні сподівання рівні / різні». На вищих рівнях додатково — обчислені статистики, критичні значення та p-значення. ## Рівні складності Оцінка відповідає найвищому **повністю й правильно** виконаному рівню. Формули (вибіркові дисперсії, статистики $F$ і $T$) реалізувати **самостійно**. ### Базовий рівень — 60–74 балів 1. Прочитати дві вибірки й обчислити для кожної $\bar{x}$ та **незміщену** дисперсію $s^2 = \frac{1}{n-1}\sum (x_i - \bar{x})^2$. 2. Перевірити гіпотезу **рівності дисперсій** F-критерієм ($\alpha = 0.05$): $F = s_{\max}^2 / s_{\min}^2$, ступені свободи $(n_{\max}-1,\ n_{\min}-1)$; порівняти з критичним значенням $F_{0.975}$. 3. **Вивести** рішення: дисперсії рівні чи різні. ### Середній рівень — 75–89 балів Додатково до базового: 4. **За результатом** F-критерію виконати перевірку **рівності математичних сподівань**: якщо дисперсії визнано рівними — t-критерієм з **об'єднаною** дисперсією $s_p^2$ ($\text{df} = n_1 + n_2 - 2$). 5. Якщо дисперсії **різні**, коректно повідомити, що на цьому рівні перевірку середніх із об'єднаною дисперсією застосовувати не можна (перехід до Уелча — на високому рівні). 6. **Вивести** рішення перевірки середніх: сподівання рівні чи різні. ### Високий рівень — 90–100 балів Додатково до середнього: 7. **Рівень значущості $\alpha$ задавати ззовні** (параметром командного рядка, аргументом функції або запитом), не «зашивати» $0.05$ у код. 8. Для **кожної** перевірки вивести: спостережену статистику ($F$ або $T$), ступені свободи, **критичне значення** та **p-значення**; рішення дублювати за p-значенням ($p \le \alpha \Rightarrow$ відхилити $H_0$). 9. Коли F-критерій показав **різні** дисперсії, перевіряти рівність середніх **критерієм Уелча** (окремі дисперсії, ступені свободи за Уелчем–Саттертвейтом, §2.5 [методичних вказівок](2method.md)). 10. Передбачити **перевірку коректності** вводу (порожня чи одноелементна вибірка — дисперсія невизначена; нечислові значення) з інформативним повідомленням. ## Що здавати - Вихідний код програми (з коротким `README`: як запустити, який формат входу, як задати $\alpha$). - Приклад запуску на **тестових** вибірках. Обов'язково перевірте програму на даних [Задач 2–3](3classroom.md) — очікувано $F \approx 2.486$ (дисперсії рівні) і $T \approx -2.697$ (сподівання різні); а також на демонстраційних вибірках із [2method.md](2method.md) — $F \approx 2.333$, $T \approx -4.835$. - Оформлення звіту — за [5report.md](5report.md); перелік запитань до захисту — у [6questions.md](6questions.md).