# 4. Домашнє завдання (написання програми) > **Джерело завдання.** Формулювання взято **з методичних матеріалів курсу**. > Готового коду тут **немає** — це індивідуальне завдання; техніку обчислень > показано на інших даних у [2method.md](2method.md) та [3classroom.md](3classroom.md). ## Постановка Написати програмний додаток (**Мова додатку обирається студентом самостійно**). Додаток отримує на вхід csv файл зі значеннями експерименту. Написати програму, яка вирахує довірчий інтервал для математичного сподівання і дисперсії. Рівень значущості вказується зовні. Допустимими варіантами рівня значущості: 0.05, 0.01, 0.1. ## Вхід і вихід - **Вхід:** - шлях до файлу **CSV** зі значеннями експерименту (числа; можлива наявність заголовка та кількох стовпців — тоді потрібний стовпець задають параметром чи запитом); - **рівень значущості** $\alpha$, що задається **ззовні** (аргумент командного рядка, параметр, змінна середовища чи запит) — одне зі значень $\{0.05;\ 0.01;\ 0.1\}$. - **Вихід:** для заданого $\alpha$ (тобто надійності $1 - \alpha$) — **довірчий інтервал для математичного сподівання** $\mu$ і **довірчий інтервал для дисперсії** $\sigma^2$ у вигляді нижньої та верхньої меж. Бажано також вивести проміжні величини: $n$, $\bar{x}$, $s^2$, $s$ і використані критичні значення. Числа округлюйте розумно (напр., 4 значущі цифри). ## Рівні складності Оцінка відповідає найвищому **повністю й правильно** виконаному рівню. ### Базовий рівень — 60–74 балів 1. Прочитати значення з файлу CSV (один стовпець чисел). 2. Обчислити вибіркове середнє $\bar{x}$ та **незміщену** дисперсію $s^2 = \frac{1}{n-1}\sum (x_i - \bar{x})^2$ і СКВ $s = \sqrt{s^2}$. 3. Побудувати й вивести **довірчий інтервал для математичного сподівання** $\mu$ при **невідомій** $\sigma$ (розподіл Стьюдента): $$ \bar{x} \pm t_{\alpha/2,\,n-1}\,\frac{s}{\sqrt{n}}. $$ Критичне значення $t_{\alpha/2,\,n-1}$ дозволено брати з таблиці або з бібліотеки (напр., `scipy.stats.t.ppf`); формулу інтервалу реалізувати **самостійно**. 4. Рівень значущості для базового рівня можна прийняти фіксованим $\alpha = 0.05$. ### Середній рівень — 75–89 балів Додатково до базового: 5. Побудувати й вивести **довірчий інтервал для дисперсії** $\sigma^2$ (розподіл $\chi^2$): $$ \left( \frac{(n-1)s^2}{\chi^2_{\alpha/2,\,n-1}},\ \frac{(n-1)s^2}{\chi^2_{1-\alpha/2,\,n-1}} \right) $$ і, за бажанням, інтервал для $\sigma$ (корінь із меж). Не переплутати хвости: **більше** критичне значення — у знаменнику **нижньої** межі. 6. Підтримати **всі три** рівні значущості $\alpha \in \{0.05;\ 0.01;\ 0.1\}$, задаючи $\alpha$ **ззовні**; за неприпустимого значення — інформативне повідомлення. 7. Коректно опрацьовувати файл із **заголовком** і **кількома стовпцями** (вибір потрібного стовпця). ### Високий рівень — 90–100 балів Додатково до середнього: 8. Передбачити **вибір режиму** для інтервалу середнього: при **відомій** $\sigma$ (задають ззовні) — використати нормальний розподіл $\bar{x} \pm z_{\alpha/2}\,\sigma/\sqrt{n}$; при **невідомій** — розподіл Стьюдента (як вище). 9. Передбачити **перевірку коректності** вводу (порожній файл, нечислові значення, пропуски, $n < 2$ для дисперсії) з інформативним повідомленням. 10. **Порівняти** власний результат зі стандартною бібліотечною функцією (напр., `scipy.stats.t.interval` для середнього) і показати збіг меж — як перевірку правильності. ## Що здавати - Вихідний код програми (з коротким `README`: як запустити, формат входу, як задається $\alpha$). - Приклад запуску на **тестовому** файлі. Обов'язково перевірте програму на даних [Задач 2–3](3classroom.md) при $\alpha = 0.05$ — очікувано ДІ для середнього $(8.57;\ 11.43)$ і ДІ для дисперсії $(1.89;\ 13.33)$. - Оформлення звіту — за [5report.md](5report.md); перелік запитань до захисту — у [6questions.md](6questions.md).