Raw

4. Домашнє завдання (написання програми)

Джерело завдання. Завдання доповнює матеріали курсу (у вихідному архіві домашнє завдання для теми 14 відсутнє). Постановку сформульовано природно для теми — читання часового ряду, згладжування, прогноз і графік. Готового коду тут немає — це індивідуальне завдання; техніку обчислень показано на інших даних у 2method.md та 3classroom.md.

Постановка

Реалізувати аналіз часового ряду (мову додатку студент обирає самостійно). Програма читає ряд із файлу CSV (час / значення), згладжує його (ковзним середнім та експоненційним згладжуванням), прогнозує наступні kk значень і будує графік (сирий ряд, згладжений ряд і прогноз на одному рисунку).

Вхід і вихід

  • Вхід: шлях до файлу CSV із часовим рядом — по одному спостереженню на рядок. Припускаємо два стовпці: час/індекс (мітка періоду — дата чи порядковий номер) і значення (число). Крок за часом вважають однаковим. Параметри згладжування (вікно ww, стала α\alpha) і горизонт прогнозу kk задають ззовні (аргументи командного рядка, параметри або запит).
  • Вихід: згладжені ряди та прогноз наступних kk значень (консоль/файл — на розсуд студента; числа округлюйте розумно, напр. 3–4 значущі цифри), а також графік (файл-зображення чи вікно).

Рівні складності

Оцінка відповідає найвищому повністю й правильно виконаному рівню.

Базовий рівень — 60–74 балів

  1. Прочитати часовий ряд із файлу CSV (стовпець значень; час/індекс — за наявності).
  2. Обчислити просте ковзне середнє із заданим вікном ww (формулу реалізувати самостійно, а не викликати готову функцію як основне обчислення).
  3. Побудувати графік: сирий ряд і згладжений ряд (ковзне середнє) на одному рисунку з підписами осей та легендою.

Середній рівень — 75–89 балів

Додатково до базового:

  1. Реалізувати просте експоненційне згладжування x^t=αxt+(1α)x^t1\hat{x}_t = \alpha x_t + (1-\alpha)\hat{x}_{t-1} із заданою сталою α\alpha і нанести згладжений ряд на графік поряд із ковзним середнім.
  2. Побудувати простий прогноз на наступні kk значень (щонайменше один метод: наївний, за ковзним середнім або за експоненційним згладжуванням) і показати прогноз на графіку (напр., пунктиром, як продовження ряду).
  3. Коректно опрацьовувати файл із заголовком і двома стовпцями (час і значення); параметри ww, α\alpha, kk задавати ззовні.

Високий рівень — 90–100 балів

Додатково до середнього (виконати щонайменше один із пунктів 7–8; пункт 9 обов’язковий):

  1. Оцінити якість прогнозу. Відкласти останню частину ряду (тестову, mm останніх значень), побудувати прогноз на цю частину за наявними на початку даними та обчислити метрики MAE, RMSE і MAPE; порівняти щонайменше два методи прогнозу (обов’язково — проти наївного еталона).
  2. Виокремити тренд лінійною регресією на час x^t=b0+b1t\hat{x}_t = b_0 + b_1 t (метод найменших квадратів, Лекція 5); нанести лінію тренду на графік і використати її для прогнозу наступних kk значень.
  3. Передбачити перевірку коректності вводу (порожній файл, нечислові значення, пропуски, некоректні ww, α(0,1)\alpha \notin (0, 1)) з інформативним повідомленням.

Що здавати

  • Вихідний код програми (з коротким README: як запустити, формат вхідного CSV, як задають ww, α\alpha, kk).
  • Приклад запуску на тестовому файлі разом із графіком. Обов’язково перевірте програму на даних аудиторних задач (3classroom.md): за рядом Задачі 1 очікуване ковзне середнє (w=3w = 3) — 18, 19.333, 21, 22.333, 24, 25.66718,\ 19.333,\ 21,\ 22.333,\ 24,\ 25.667; за рядом Задачі 2 експоненційне згладжування з α=0.5\alpha = 0.5 дає 50, 51, 49.5, 51.25, 53.12550,\ 51,\ 49.5,\ 51.25,\ 53.125.
  • Оформлення звіту — за 5report.md; перелік запитань до захисту — у 6questions.md.

Laboratory/Laboratory14/4task.md · 6.3 KB · updated 2026-08-05 08:38