Візуальна лінійна апроксимація за допомогою Gnuplot
Кажуть, що нелінійна апроксимація — це мистецтво, але й зі звичайною лінійною справою, буває, непросто.

Багато хто, напевно, пам'ятають, що найпростіший і досить точний метод побудови прямих МНК — це «прозора лінійка на око». Раніше, коли вважали на калькуляторах, цей метод дозволяв економити багато годин монотонних обчислень, але зараз для свідомо лінійних процесів це вже не актуально, апроксимацію вміє миттєво рахувати і малювати навіть Excel.
Однак при вирішенні реальних завдань часто доводиться мати справу з процесами, які невідомі моделі. У таких випадках буває розумно будувати шматково-лінійні апроксимації. І ось тут, коли точних критеріїв побудови просто не існує — метод «прозорої лінійки», що ґрунтується на «мистецтві апроксимації» (простим — чуйці), знову стає актуальним. Роздруковувати графіки та проводити на них прямі олівцем та прозорою лінійкою — як і раніше працює (і іноді так креслити навіть цікаво). А тут ми будемо використовувати Gnuplot - він добре вміє малювати дані в різних уявленнях, вміє вважати апроксимації, і при цьому залишає користувачеві достатньо простору для маневру.
Як приклад життєвих даних з невідомою моделлю розглянемо динаміку за часом індексу маси тіла (BMI) дівчат місяця журналу Playboy. Завдання у тому, щоб уловити у поступовій динаміці загальні тенденції.
Вихідні дані взяті зі статті Вадима Маркова (@BubaVV) "Кореляції для початківців". Посилання на файли для побудови картинок у Gnuplot буде дано нижче. Невелике зауваження за даними: за змістом даних осі X відкладається час (місяці), але щоб не ускладнювати завдання будемо використовувати не час, а просто порядковий номер запису.
Почнемо зтого, що збудуємо безліч наявних точок і проведемо лінійний тренд по всіх точках. Відразу відзначимо проблемні області знаком питання.

З лінійною апроксимацією явно щось гаразд, схоже, що у процесі тренд змінювався. Побудуємо квадратичну апроксимацію, яка дозволяє зловити зміну кута нахилу прямих ліній.

Квадратична апроксимація виглядає краще (ну ще б, плюс один параметр). Видно, що лінійний тренд змінюється в середині множини, відзначимо цю область кольоровим колом. Зліва від кола - один характер динаміки, праворуч - інший, для кращого сприйняття праву та ліву області також відзначимо різними кольорами.

Крапки в лівій області апроксимуватимемо однією прямою, а в правій іншій. Заодно і по осі Х замість абстрактних цифр поставимо мітки часу, нам не потрібно багато подробиць, відзначимо кілька років.

Тепер, принаймні на вигляд, апроксимація пряма досить хороша, значення параметрів ліній можна взяти з log-файлу, який пише Gnuplot в процесі апроксимації.
Резюме Нічого не обчислюючи, лише розглядаючи графіки і малюючи лінії, ми визначили основні тренди динаміки моделі. До речі, цікаво, що сталося в районі 1985 року, що до моди почали входити дівчата з вищим BMI?
PS. Всі дані та файли для побудови картинок у Gnuplot можна завантажити за посиланням: drive.google.com/file/d/0BwHQSqFOG-7lU1BfbkdqTTFxdkU/view?usp=sharing
PPS. Заради інтересу так виглядатиме апроксимація поліномом 4-го ступеня. Судячи з графіку, має сенс подивитися, чи не з'являється знову в моді тенденція на худших моделей.

А у нас тут можна отримати грант на тестовий період Яндекс.Хмари. Варто лише у полі «секретний пароль»ввести «Хабр»