Введення R частина 3
Pavel Polishchuk, 2014
Приклади побудови моделей R.
- Лінійна регресія (lm)
- Метод найменших часткових квадратів (pls)
- Метод Random Forest (randomForest)
- Приклад розв'язання класифікаційної задачі методом Random Forest
Лінійна регресія (lm)
Побудова моделей
Згенеруємо набір даних для моделювання відповідно до формули \[ Y = x_1 + x_2^2 + x_1 \times x_2 + noise \]
Для цього спочатку ініціалізуємо генератор випадкових чисел, щоб отримувати результат, що завжди відтворюється при генерації випадкових чисел.
Згенеруємо випадкові змінні \(x_1\) та \(x_2\) відповідно до закону нормального розподілу
Згенеруємо залежну змінну відповідно до вищенаведеної формули
Об'єднаємо ці параметри в одному data.frame
Розглянемо створений набір даних. Побудуємо гістограму розподілу значень Y та подивимося як розподілені значення змінних між собою попарно.
Порахуємо матрицю взаємних кореляцій всіх змінних між собою та округлимо результат до двох цифр після коми
Крім традиційного коефіцієнта кореляції Пірсона функцією cor можна вважати ранговий коефіцієнт кореляції Спірмена.
І з малюнка і таблиць видно, що зв'язок між \(y\) і \(x_2\) досить тісний.
Альтернативний спосіб представлення даних - використання функції pairs.panels пакета psych, яка повертає одночасно і діаграми розподілу даних та значення коефіцієнтів кореляції.
Задамо індекси для об'єктів навчальної та тестової вибірки
Побудуємо кілька моделей відповідно до різних формул, які визначають вид шуканої залежності.
Спробуємо спочатку звичайну лінійну комбінацію вихідних змінних.
В результаті ми отримали рівняння виду [Y = 3.377 pm0.625 * x_1 + 8,567 pm0, 415 * x_2 - 6,379 pm3, 493 \] Всі коефіцієнти в рівнянні статистично значущі з високим рівнем достовірності, крім що має низький рівень статистичної достовірності. Розмір \(R^2 = 0.818 \) є статистично достовірною.
Коефіцієнт детермінації
Коригований коефіцієнт детермінації з використанням незміщених оцінок
\( y_i \) - значення, що спостерігається \( y \) \( \hat_i \) - передбачене за моделлю значення \( y \) \( \bar \) - середнє значення значень, що спостерігаються \( y \ ) \(n\) - кількість спостережень \(k\) - кількість параметрів
Застосуємо одну з найпростіших процедур відбору змінних - виключимо незначні члени рівняння
Коефіцієнт детермінації суттєво збільшився (R^2 = 0.914)
Порівняння моделей
Визначимо з допомогою дисперсійного аналізу чи є відмінність моделей значимим чи ні.
Розмір 0.071 > 0.05, тому можна стверджувати, що з ймовірністю 95% відмінність моделей не значуща і ми маємо право вибрати будь-яку модель.
Спробуємо побудувати складніші моделі.
Модель, що враховує твір незалежних змінних
Модель другого порядку, що враховує квадрати незалежних змінних
У разі видно, що це коефіцієнти у рівнянні мають високу значимість і коефіцієнт детермінації також високий \( R^2 = 0.958 \)
Порівняння моделей вказує на значну відмінність останньої моделі від попередньої.
Для порівняння збудуємо модель з використанням правильної функціональної залежності
Вільний член є не значущим,отже, залежність проходить через початок відліку. Збудуємо модель без вільного члена.
Прогноз значень для тестового набору даних
Порівняємо якість прогнозу з істинним значенням \(y \)
Візуалізація моделей
Задамо вид виведення результатів та застосуємо функцію plot до моделей m4 та m6.
Повернімо вигляд виводу результатів до виду за умовчанням
Метод часткових найменших квадратів (pls)
Скористайтеся функцією summary для виведення статистики моделі
Щоб порахувати коефіцієнт детермінації для навчальної вибірки і випадку крос-валідації скористаємося наступними функціями. Слід зазначити, що модель pls як прогнозовані значення повертає масив!
Для pls модель також можна використовувати функцію plot , яка повертає діаграму залежності передбачених значень від спостережуваних
Спрогнозуємо значення тестової вибірки та оцінимо якість прогнозу
Використовуємо інший вид залежності, який був успішно застосований раніше у разі лінійної регресії
Як видно, якість моделі значно збільшилася. Підтвердимо це, оцінивши прогнозуючу здатність моделі на тестовому наборі даних.
Метод Random Forest (randomForest)
Слід зазначити, що більшість функцій мають кілька способів виклику через визначення функції як у наведеному вище випадку, або через вказівку матриці X і вектора Y. Так побудова моделі можна здійснити через rf.m
Викликаємо статистику моделі
Розрахуємо значення коефіцієнта детермінації для out-of-bag вибірки (внутрішня валідація моделей)
Функція plot у разі моделей випадкового лісу повертає залежність величини середньоквадратичної помилки прогнозу out-of-bag вибірки кількості дерев у лісі
Щоб оцінити якість моделі передбачимо тестовий набір даних
Побудуємо графік залежності між передбаченими та спостеріганими значеннями
Розв'язання класифікаційних завдань методом Random Forest
Конвертуємо значення y з df у два класи за заданим граничним значенням
Побудова класифікаційної моделі нічим не відрізняється від регресійних моделей. Алгоритм сам вибирає тип моделі (скласифікаційна або регресійна) в залежності від типу даних Y. Якщо Y представлений числовими значеннями, то за умовчанням буде побудована регресійна модель, якщо Y представлений як factor, то буде побудована класифікаційна модель.
Зверніть увагу на спосіб представлення формули. Знак мінус вказує, що ці змінні мають бути виключені з розгляду при побудові моделі.
Виведемо статистику моделі
Перевіримо прогнозуючу здатність на тестовому наборі даних
Слід пам'ятати, що результатом прогнозу буде factor
Виведемо матрицю помилок класифікації
Виведемо значення важливості змінних в останній моделі