Додому Вилучення Приклади розв'язання задач з множинної регресії. Введення у множинну регресію

Приклади розв'язання задач з множинної регресії. Введення у множинну регресію

Призначення множинної регресії – аналіз зв'язку між однією залежною та кількома незалежними змінними.

Приклад: Існують дані про вартість одного робочого місця (при купівлі 50 робочих місць) для різних PDM-систем. Потрібно: оцінити залежність між ціною робочого місця PDM-системи кількості реалізованих у ній характеристик, наведених у таблиці 2.

Таблиця 2 – Характеристики PDM-систем

Номер п/п PDM-система Вартість Керування конфігурацією виробу Моделі виробів Колективна робота Управління змінами виробів Документообіг Архіви Пошук документів Планування проекту Управління виготовленням виробів
iMAN Так Так
PartY Plus Так Так
PDM STEP Suite Так Так
Search Так Так
Windchill Так Так
Компас Менеджер Так Так
T-Flex Docs Так Так
ТехноПро Ні Ні

Чисельне значення характеристик (крім "Вартість", "Моделі виробів" та "Колективна робота") означає кількість реалізованих вимог кожної характеристики.

Створимо та заповнимо електронну таблицю з вихідними даними (Малюнок 27).

Значення "1" змінних "Мод. вид.» та «Колект. р-ту.» відповідає значенню "Так" вихідних даних, а значення "0" значенню "Ні" вихідних даних.

Побудуємо регресію між залежною змінною «Вартість» та незалежними змінними «Упр. конф.», «Мод. вид.», «Колект. р-ту», «Упр. вим.», «Док.», «Архіви», «Пошук», «План-е», «Упр. виготов.».

Спочатку статистичного аналізу вихідних даних викликати модуль «Multiple Regression» (рисунок 22).

У діалоговому вікні (малюнок 23), що з'явилося, вказати змінні за якими буде проводитися статистичний аналіз.

Малюнок 27 - Вихідні дані

Для цього натиснути кнопку Variables і в діалоговому вікні (малюнок 28) в частині відповідної залежним змінним (Dependent var.) вибрати «1-Вартість», а в частині відповідній незалежним змінним (Independent variable list) вибрати всі інші змінні. Вибір кількох змінних зі списку здійснюється за допомогою клавіш «Ctrl» або «Shift» або вказівкою номерів (діапазону номерів) змінних у відповідному полі.



Рисунок 28 - Діалогове вікно завдання змінних для статистичного аналізу

Після того, як змінні вибрані натиснути кнопку "OK" у діалоговому вікні завдання параметрів модуля "Multiple Regression". У вікні з написом «No of indep. vars. >=(N-1); cannot invert corr. matrix.» (Рисунок 29) натиснути кнопку «OK».

Це повідомлення у разі коли система неспроможна побудувати регресію за всіма заявленим незалежним змінним, т.к. число змінних більше або дорівнює кількості випадків мінус 1.

У вікні (малюнок 30) на закладці «Advanced» можна змінити метод побудови рівняння регресії.

Малюнок 29 - Повідомлення про помилку

Для цього в полі "Method" (метод) вибрати "Forward stepwise" (покроковий з включенням).

Рисунок 30 - Вікно вибору методу та завдання параметрів побудови рівняння регресії

Метод покрокової регресії у тому, що у кожному кроці в модель включається, чи виключається якась незалежна змінна. Таким чином, виділяється безліч найбільш "значних" змінних. Це дозволяє скоротити кількість змінних, що описують залежність.

Покроковий аналіз із винятком («Backward stepwise»). У цьому випадку всі змінні будуть спочатку включені в модель, а потім на кожному кроці будуть усуватися змінні, які вносять малий внесок у прогнози. Тоді як результат успішного аналізу можна зберегти тільки "важливі" змінні в моделі, тобто ті змінні, чий внесок у дискримінацію більше за інших.

Покроковий аналіз із включенням («Forward stepwise»). При використанні цього методу регресійне рівняння послідовно включаються незалежні змінні, поки рівняння стане задовільно описувати вихідні дані. Включення змінних визначається з допомогою F - критерію. На кожному кроці проглядаються всі змінні і знаходиться та з них, яка робить найбільший внесок у різницю між сукупностями. Ця змінна повинна бути включена в модель на цьому кроці, і відбувається перехід до наступного кроку.

У полі «Intercept» (вільний член регресії) можна вибрати чи включати їх у рівняння («Include in model») чи враховувати і вважати рівним нулю («Set to zero»).

Параметр Tolerance це толерантність змінних. Визначається як 1 мінус квадрат коефіцієнта множинної кореляціїцієї змінної з усіма іншими незалежними змінними у рівнянні регресії. Тому, що менший толерантність змінної, то надлишковий - її внесок у рівняння регресії. Якщо толерантність будь-який із змінних у рівнянні регресії дорівнює чи близька до нуля, то рівняння регрес не може бути оцінено. Тому параметр толерантність бажано поставити рівним 0,05 або 0,1.

Параметр “Ridge regression; lambda:» використовується, коли незалежні змінні високо міжкорельовані, та стійкі оцінки для коефіцієнтів рівняння регресії, не можуть бути отримані через метод найменших квадратів. Зазначена постійна (лямбда) буде додана до діагоналі матриці кореляцій, яка тоді знову буде приведена до стандартизованого вигляду (так щоб всі діагональні елементи дорівнювали 1.0). Іншими словами, даний параметр штучно зменшує коефіцієнти кореляції так, щоб можна було обчислити більш стійкі (все ж таки зміщений) оцінки параметрів регресії. У нашому випадку цей параметр не використовується.

Параметр "Batch processing/printing" (обробка, друк звітів) використовується, коли необхідно відразу підготувати для звіту кілька таблиць, що відображають результати та процес регресійного аналізу. Ця опція є дуже корисною, коли необхідно надрукувати або проаналізувати результати покрокового регресійного аналізу на кожному кроці.

На закладці Stepwise (рисунок 31) можна задати параметри умови включення (F to enter) або виключення (F to remove) змінних при побудові рівняння регресії, а також кількість кроків побудови рівняння (Number of steps).

Рисунок 31 – Закладка «Stepwise» вікна вибору методу та завдання параметрів побудови регресійного рівняння

F це величина значення F-критерію.

Якщо при покроковому аналізі з включенням необхідно, щоб усі або майже всі змінні увійшли до рівняння регресії, то необхідно значення «F to enter» встановити мінімальним (0,0001), і значення «F to remove» також встановити мінімальним.

Якщо при покроковому аналізі з винятком необхідно, видаляти всі змінні (по одній) з рівняння регресії необхідно значення «F to enter» встановити дуже великим, наприклад 999, і значення «F to remove» встановити близьким до «F to enter».

Слід пам'ятати, що значення параметра «F to remove» завжди має бути меншим, ніж «F to enter».

Опція Display results (відображення результатів) має два варіанти:

2) At each step – відображати результати аналізу кожному кроці.

Після натискання кнопки OK у вікні вибору методів регресійного аналізу з'явиться вікно результатів аналізу (рисунок 32).

Рисунок 32 - Вікно результатів аналізу

Малюнок 33 - Короткі результати регресійного аналізу

Відповідно до результатів аналізу коефіцієнт детермінації. Це означає, що збудована регресія пояснює 99,987% розкиду значень щодо середнього, тобто. пояснює практично всю мінливість змінних.

Велике значеннята її рівень значущості показують, що побудована регресія високо значуща.

Для перегляду коротких результатіврегресії натиснути кнопку "Summary: Regression result". На екрані з'явиться електронна таблицяз результатами аналізу (рис. 33).

У третьому стовпці («B») відображено оцінки невідомих параметрів моделі, тобто. коефіцієнти рівняння регресії

Таким чином, шукана регресія має вигляд:

Якісно побудоване рівняння регресії можна інтерпретувати так:

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

2) Вартість PDM-системи знижується зі збільшенням реалізованих функцій управління конфігурацією та зі збільшенням можливостей пошуку.

Завданням множинної лінійної регресії є побудова лінійної моделі зв'язку між набором безперервних предикторів та безперервною залежною змінною. Часто використовується наступне регресійне рівняння:

Тут а i- регресійні коефіцієнти, b 0- вільний член (якщо він використовується), е- Член, що містить помилку - з приводу нього робляться різні припущення, які, однак, частіше зводяться до нормальності розподілу з нульовим вектором мат. очікування та кореляційною матрицею.

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

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

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

Можливо, для прокладання доведеться вирубувати ліс, що також призведе до додаткових витрат. Все це разом дасть вартість створення дороги.

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

Помилка буде включати фактори, які ми не врахували при побудові моделі (наприклад, погоду при будівництві - її взагалі врахувати неможливо).

Приклад: множинний регресійний аналіз

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

Коефіцієнти регресії

Щоб дізнатися, яка з незалежних змінних робить більший внесок у передбачення рівня бідності, вивчимо стандартизовані коефіцієнти(або Бета) регресії.

Мал. 1. Оцінки параметрів коефіцієнтів регресії.

Коефіцієнти Бета це коефіцієнти, які ви отримали б, якби привели всі змінні до середнього 0 і стандартного відхилення 1. Отже величина цих Бета коефіцієнтів дозволяє порівнювати відносний внесок кожної незалежної змінної в залежну змінну. Як очевидно з Таблиці, показаної вище, змінні зміни населення з 1960 року (POP_ CHING), відсоток населення, що у селі (PT_RURAL) і кількість людей, зайнятих сільському господарстві (N_Empld) є найголовнішими предикторами рівня бідності, т.к. лише вони статистично значущі (їх 95% довірчий інтервалне включає 0). Коефіцієнт регресії зміни населення з 1960 року (Pop_Chng) негативний, отже, що менше зростає чисельність населення, тим більше сімей, які живуть за межею бідності у відповідному окрузі. Коефіцієнт регресії населення (%), що у селі (Pt_Rural) позитивний, тобто, що більше відсоток сільських жителівтим більше рівень бідності.

Значення ефектів предиктора

Переглянемо Таблицю з умовами значимості.

Мал. 2. Одночасні результати кожної заданої змінної.

Як свідчить ця Таблиця, статистично значущі лише ефекти 2 змінних: зміна населення з 1960 року (Pop_Chng) і відсоток населення, що у селі (Pt_Rural), p< .05.

Аналіз залишків. Після припасування рівняння регресії, майже завжди потрібно перевіряти передбачені значення та залишки. Наприклад, великі викиди можуть сильно спотворити результати та призвести до помилкових висновків.

Порядковий графік викидів

Зазвичай необхідно перевіряти вихідні або стандартизовані залишки великих викидів.

Мал. 3. Номери спостережень та залишки.

Шкала вертикальної осі цього графіка відкладена за величиною сигма, тобто, стандартного відхиленнязалишків. Якщо одне або кілька спостережень не потрапляють в інтервал ± 3, помножене на сигму, то, можливо, варто виключити ці спостереження (це можна легко зробити через умови вибору спостережень) і ще раз запустити аналіз, щоб переконатися, що результати не змінюються цими викидами.

Відстань Махаланобіса

Більшість статистичних підручників приділяють багато часу викидам та залишкам щодо залежної змінної. Проте роль викидів у предикторах часто залишається не виявленою. На стороні змінної предиктора є перелік змінних, які беруть участь з різними вагами (коефіцієнти регресії) у передбаченні залежної змінної. Можна вважати незалежні змінні багатовимірним простором, де можна відкласти будь-яке спостереження. Наприклад, якщо у вас є дві незалежні змінні з рівними коефіцієнтами регресії, то можна було б побудувати діаграму розсіювання цих двох змінних і помістити кожне спостереження на цей графік. Потім можна було відзначити на цьому графіку середнє значення та обчислити відстані від кожного спостереження до цього середнього (так званий центр тяжкості) у двовимірному просторі. У цьому полягає основна ідея обчислення відстані Махаланобиса . Тепер подивимося на гістограму змінної зміни населення із 1960 року.

Мал. 4. Гістограма розподілу відстаней Махаланобіса.

З графіка випливає, що є один викид на відстані Махаланобіса.

Мал. 5. Спостережувані, передбачені та значення залишків.

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

Віддалені залишки

Іншою дуже важливою статистикою, яка дозволяє оцінити серйозність проблеми викидів, є віддалені залишки. Це стандартизовані залишки для відповідних спостережень, що виходять при видаленні цього спостереження з аналізу. Пам'ятайте, що процедура множинної регресії підганяє поверхню регресії таким чином, щоб показати взаємозв'язок між залежною та змінною та предиктором. Якщо одне спостереження є викидом (як округ Shelby), існує тенденція до " відтягування " поверхні регресії до цього викиду. В результаті, якщо відповідне спостереження видалити, буде отримана інша поверхня (і коефіцієнти Бета). Отже, якщо віддалені залишки дуже сильно відрізняються від стандартизованих залишків, то у вас буде привід вважати, що регресійний аналіз серйозно спотворений відповідним спостереженням. У цьому прикладі віддалені залишки для округу Shelby показують, що це викид, який серйозно перекручує аналіз. На діаграмі розсіювання очевидно видно викид.

Мал. 6. Вихідні залишки та Видалені залишки змінної, що означає відсоток сімей, які проживають нижче за прожитковий мінімум.

Більшість з них має більш менш ясні інтерпретації, проте звернемося до нормальних ймовірнісних графіків.

Як вже було згадано, множинна регресія передбачає, що існує лінійний взаємозв'язок між змінними у рівнянні та нормальний розподіл залишків. Якщо ці припущення порушені, висновок може виявитися неточним. Нормальний ймовірнісний графік залишків вкаже вам, є серйозні порушення цих припущень чи ні.

Мал. 7. Нормальний імовірнісний графік; Початкові залишки.

Цей графік був побудований в такий спосіб. Спочатку стандартизовані залишки ранжуються по порядку. За цими рангами можна обчислити значення z (тобто стандартні значення нормального розподілу) на основі припущення, що дані підпорядковуються нормальному розподілу. Ці значення відкладаються по осі y на графіку.

Якщо залишки (відкладаються по осі x), що спостерігаються, нормально розподілені, то всі значення лягли б на пряму лінію на графіку. На нашому графіку всі крапки лежать дуже близько щодо кривої. Якщо залишки не є нормально розподіленими, вони відхиляються від цієї лінії. Викиди також стають помітними на цьому графіку.

Якщо є втрата згоди і здається, що дані утворюють явну криву (наприклад, у формі літери S) щодо лінії, залежну змінну можна перетворити деяким способом (наприклад, логарифмічне перетворення для "зменшення" хвоста розподілу і т.д.). Обговорення цього методу знаходиться за межами цього прикладу (Neter, Wasserman, і Kutner, 1985, pp. 134-141, представлено обговорення перетворень, що прибирають ненормальність та нелінійність даних). Однак дослідники часто-густо просто проводять аналіз безпосередньо без перевірки відповідних припущень, що веде до помилкових висновків.

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

Забудовник може використовувати множинний регресійний аналіз для оцінки ціни офісної будівлі даному районіна основі наступних змінних.

y – оцінна ціна будівлі під офіс;

x 1 – загальна площа у квадратних метрах;

x 2 – кількість офісів;

x 3 - кількість входів (0,5 входу означає вхід для доставки кореспонденції);

x 4 – час експлуатації будівлі у роках.

У цьому прикладі передбачається, що існує лінійна залежністьміж кожною незалежною змінною (x 1 , x 2 , x 3 і x 4) та залежною змінною (y), тобто ціною будівлі під офіс у даному районі. Вихідні дані показано малюнку.

Налаштування для вирішення поставленої задачі показано на малюнку вікна Регресія". Результати розрахунків розміщені на окремому аркуші у трьох таблицях

У результаті ми отримали наступну математичну модель:

y = 52318 + 27,64 * x1 + 12530 * x2 + 2553 * x3 - 234,24 * x4.

Тепер забудовник може визначити оцінну вартість будівлі під офіс у тому самому районі. Якщо ця будівля має площу 2500 квадратних метрів, три офіси, два входи та час експлуатації - 25 років, можна оцінити його вартість, використовуючи таку формулу:

y = 27,64 * 2500 + 12530 * 3 + 2553 * 2 - 234,24 * 25 + 52318 = 158261 у.о.

У регресійному аналізі найважливішими результатами є:

  • коефіцієнти при змінних та Y-перетин, які є шуканими параметрами моделі;
  • множинний R, що характеризує точність моделі для вихідних даних;
  • F-критерій Фішера(У розглянутому прикладі він значно перевищує критичне значення, рівне 4,06);
  • t-статистика– величини, що характеризують ступінь важливості окремих коефіцієнтів моделі.

На t-статистиці слід зупинитись особливо. Дуже часто при побудові регресійної моделі невідомо, чи впливає той чи інший фактор x на y. Включення до моделі факторів, які не впливають на вихідну величину, погіршує якість моделі. Обчислення t-статистики допомагає виявити такі чинники. Наближену оцінку можна зробити так: якщо при n>>k величина t-статистики за абсолютного значеннязначно більше трьох, відповідний коефіцієнт слід вважати значним, а чинник включити до моделі, інакше виключити з моделі. Таким чином, можна запропонувати технологію побудови регресійної моделі, що складається з двох етапів:

1) обробити пакетом " Регресіявсі наявні дані, проаналізувати значення t-статистики;

2) видалити з таблиці вихідних даних стовпці з тими чинниками, котрим коефіцієнти незначні і обробити пакетом " Регресіянову таблицю.

Доброго дня, шановні читачі.
У минулих статтях, на практичні приклади, Мною були показані способи вирішення завдань класифікації (завдання кредитного скорингу) та основ аналізу текстової інформації (завдання про паспорти). Сьогодні ж мені хотілося б торкнутися іншого класу завдань, а саме відновлення регресії. Завдання цього класу, як правило, використовуються при прогнозуванні.
Для прикладу розв'язання задач прогнозування, я взяв набір даних Energy efficiency з найбільшого репозиторію UCI . Як інструменти за традицією будемо використовувати Python з аналітичними пакетами pandas і scikit-learn.

Опис набору даних та постановка задачі

Даний набір даних, який описує наступні атрибути приміщення:

У ньому – характеристики приміщення на підставі яких проводитиметься аналіз, а – значення навантаження, які треба спрогнозувати.

Попередній аналіз даних

Для початку завантажимо наші дані та подивимося на них:

З панда import read_csv, DataFrame з скельної. cross_validation import train_test_split dataset = read_csv("EnergyEfficiency /ENB2012_data.csv",";") dataset.head()

X1 X2 X3 X4 X5 X6 X7 X8 Y1 Y2
0 0.98 514.5 294.0 110.25 7 2 0 0 15.55 21.33
1 0.98 514.5 294.0 110.25 7 3 0 0 15.55 21.33
2 0.98 514.5 294.0 110.25 7 4 0 0 15.55 21.33
3 0.98 514.5 294.0 110.25 7 5 0 0 15.55 21.33
4 0.90 563.5 318.5 122.50 7 2 0 0 20.84 28.28

Тепер давайте подивимося, чи не пов'язані між собою які-небудь атрибути. Зробити це можна, розрахувавши коефіцієнти кореляції для всіх стовпців. Як це зробити було описано в попередній статті:

Dataset.corr()

X1 X2 X3 X4 X5 X6 X7 X8 Y1 Y2
X1 1.000000e+00 -9.919015e-01 -2.037817e-01 -8.688234e-01 8.277473e-01 0.000000 1.283986e-17 1.764620e-17 0.622272 0.634339
X2 -9.919015e-01 1.000000e+00 1.955016e-01 8.807195e-01 -8.581477e-01 0.000000 1.318356e-16 -3.558613e-16 -0.658120 -0.672999
X3 -2.037817e-01 1.955016e-01 1.000000e+00 -2.923165e-01 2.809757e-01 0.000000 -7.969726e-19 0.000000e+00 0.455671 0.427117
X4 -8.688234e-01 8.807195e-01 -2.923165e-01 1.000000e+00 -9.725122e-01 0.000000 -1.381805e-16 -1.079129e-16 -0.861828 -0.862547
X5 8.277473e-01 -8.581477e-01 2.809757e-01 -9.725122e-01 1.000000e+00 0.000000 1.861418e-18 0.000000e+00 0.889431 0.895785
X6 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 1.000000 0.000000e+00 0.000000e+00 -0.002587 0.014290
X7 1.283986e-17 1.318356e-16 -7.969726e-19 -1.381805e-16 1.861418e-18 0.000000 1.000000e+00 2.129642e-01 0.269841 0.207505
X8 1.764620e-17 -3.558613e-16 0.000000e+00 -1.079129e-16 0.000000e+00 0.000000 2.129642e-01 1.000000e+00 0.087368 0.050525
Y1 6.222722e-01 -6.581202e-01 4.556712e-01 -8.618283e-01 8.894307e-01 -0.002587 2.698410e-01 8.736759e-02 1.000000 0.975862
Y2 6.343391e-01 -6.729989e-01 4.271170e-01 -8.625466e-01 8.957852e-01 0.014290 2.075050e-01 5.052512e-02 0.975862 1.000000

Як можна помітити з нашої матриці, корелюють між собою такі стовпи (Значення коефіцієнта кореляції більше 95%):
  • y1 --> y2
  • x1 --> x2
  • x4 --> x5
Тепер давайте виберемо, які стовпці наших пар ми можемо прибрати з нашої вибірки. Для цього, у кожній парі, виберемо стовпці, які більшою мірою впливають на прогнозні значення Y1і Y2і залишимо їх, а решту вилучимо.
Як можна помітити і матриці з коефіцієнтами кореляції на y1 ,y2 більше значення надають X2 і X5 , ніж X1 та X4, таким чином ми можемо останні стовпці ми можемо видалити.

Dataset = dataset.drop(["X1","X4"], axis=1) dataset.head()
Крім цього, можна помітити, що поля Y1 і Y2 дуже тісно корелюють між собою. Але, тому що нам треба спрогнозувати обидва значення, ми їх залишаємо «як є».

Вибір моделі

Відокремимо від нашої вибірки прогнозні значення:

Trg = dataset[["Y1","Y2"]] trn = dataset.drop(["Y1","Y2"], axis=1)
Після обробки даних можна перейти до побудови моделі. Для побудови моделі будемо використовувати такі методи:

Теорію про дані методи можна почитати в курсі лекцій К.В.Воронцова з машинного навчання.
Оцінку будемо проводити за допомогою коефіцієнта детермінації ( R-квадрат). Цей коефіцієнт визначається наступним чином:

Де - умовна дисперсія залежної величини уза фактором х.
Коефіцієнт приймає значення на проміжку і чим він ближче до 1 тим сильніша залежність.
Ну що ж тепер можна перейти безпосередньо до побудови моделі та вибору моделі. Давайте помістимо всі наші моделі в один список для зручності подальшого аналізу:

Models =
Отже моделі готові, тепер ми розіб'ємо наші вихідні дані на 2 підвибори: тестовуі навчальну. Хто читав мої попередні статті, знає, що зробити це можна за допомогою функції train_test_split() з пакету scikit-learn:

Xtrn, Xtest, Ytrn, Ytest = train_test_split (trn, trg, test_size = 0.4)
Тепер, тому що нам треба спрогнозувати 2 параметри, треба побудувати регресію для кожного з них. Крім цього, для подальшого аналізу, можна записати отримані результати до тимчасового DataFrame. Зробити це можна так:

#створюємо часові структури TestModels = DataFrame() tmp = () #для кожної моделі зі списку for model in models: #отримуємо ім'я моделі m = str(model) tmp["Model"] = m[:m.index("( ")] #для кожного стовпцям результуючого набору for i in xrange(Ytrn.shape): #навчаємо модель model.fit(Xtrn, Ytrn[:,i]) #обчислюємо коефіцієнт детермінації tmp["R2_Y%s"%str(i +1)] = r2_score(Ytest[:,0], model.predict(Xtest)) #записуємо дані та підсумковий DataFrame TestModels = TestModels.append() #робимо індекс за назвою моделі TestModels.set_index("Model", inplace= True)
Як можна помітити з вище коду, для розрахунку коефіцієнта використовується функція r2_score().
Отже, дані для аналізу отримано. Давайте тепер побудуємо графіки та подивимося яка модель показала найкращий результат:

Fig, axes = plt.subplots(ncols=2, figsize=(10,4)) TestModels.R2_Y1.plot(ax=axes, kind="bar", title="R2_Y1)") TestModels.R2_Y2.plot(ax=axes, kind="bar", color="green", title="R2_Y2") !}

Аналіз результатів та висновки

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

Model = models model.fit(Xtrn, Ytrn)
При уважному розгляді може виникнути питання, чому в попередній раз і ділили залежну вибірку Ytrnна змінні (по стовпцях), а тепер ми цього не робимо.
Справа в тому, що деякі методи, такі як RandomForestRegressorможе працювати з кількома прогнозованими змінними, а інші (наприклад SVR) можуть працювати лише з однією змінною. Тому на попередньому навчанні ми використовували розбиття по стовпцях, щоб уникнути помилки в процесі побудови деяких моделей.
Вибрати модель це, звичайно ж, добре, але ще непогано б мати інформацію, як кожен фактор впливає на прогнозне значення. Для цього модель має властивість feature_importances_.
За допомогою нього можна подивитися вагу кожного фактора в підсумковій моделі:

Model.feature_importances_
array([ 0.40717901, 0.11394948, 0.34984766, 0.00751686, 0.09158358,
0.02992342])

У нашому випадку видно, що найбільше на навантаження при обігріві та охолодженні впливають загальна висота та площа. Їхній загальний внесок у прогнозній моделі близько 72%.
Також необхідно зазначити, що за вищезгаданою схемою можна подивитися вплив кожного фактора окремо на обігрів та окремо на охолодження, але тому що ці фактори у нас дуже тісно корелюють між собою (), ми зробили загальний висновок за ними обом, який і був написаний вище .

Висновок

У статті я постарався показати основні етапи під час регресійного аналізу даних за допомогою Python та аналітичних пакетів pandasі scikit-learn.
Необхідно відзначити, що набір даних спеціально вибирався таким чином, щоб бути максимально формалізованим і первинна обробка вхідних даних була б мінімальною. На мій погляд стаття буде корисною тим, хто тільки починає свій шлях в аналізі даних, а також тим, хто має хорошу теоретичну базу, але вибирає інструментарій для роботи.

Запитання:

4. Оцінка параметрів лінійної моделі множинної регресії.

5. Оцінка якості множинної лінійної регресії.

6. Аналіз та прогнозування на основі багатофакторних моделей.

Множинна регресія є узагальненням парної регресії. Вона використовується для опису залежності між пояснюється (залежною) зміною У і пояснюють (незалежними) змінними Х 1 Х 2 ... Х к . Множинна регресія може бути як лінійна, і нелінійна, але найбільшого поширення економіки отримала лінійна множинна регресія.

Теоретична лінійна модель множинної регресії має вигляд:

відповідну вибіркову регресію позначимо:

Як і парної регресії випадковий член ε повинен задовольняти основним припущенням регресійного аналізу. Тоді за допомогою МНК отримують найкращі незміщені та ефективні оцінки параметрів теоретичної регресії. Крім того змінні Х 1, Х 2, ..., Х k повинні бути некорельовані (лінійно незалежні) один з одним. Для того, щоб записати формули для оцінки коефіцієнтів регресії (2), отримані на основі МНК, введемо такі позначення:

Тоді можна записати у векторно-матричній формі теоретичну модель:

та вибіркову регресію

МНК призводить до наступної формули для оцінки вектора коефіцієнтів вибіркової регресії:

(3)

Для оцінки коефіцієнтів множинної лінійної регресії з двома незалежними змінними , Можна вирішити систему рівнянь:

(4)

Як і парної лінійної регресії для множинної регресії розраховується стандартна помилка регресії S:

(5)

та стандартні помилки коефіцієнтів регресії:

(6)

значимість коефіцієнтів перевіряється з допомогою t-критерію.

має поширення Стьюдента з числом ступенів свободи v= n-k-1.

Для оцінки якості регресії використовується коефіцієнт (індекс) детермінації:

, (8)

що ближче до 1, то вище якість регресії.

Для перевірки значущості коефіцієнта детермінації використовується критерій Фішера чи F-статистика.



(9)

з v 1=k, v 2=n-k-1 ступенями свободи.

У багатофакторній регресії додавання додаткових змін, що пояснюють, збільшує коефіцієнт детермінації. Для компенсації такого збільшення вводиться скоригований (або нормований) коефіцієнт детермінації:

(10)

Якщо збільшення частки регресії, що пояснюється при додаванні нової змінної мало, то може зменшитися. Отже, додавати нову змінну недоцільно.

Приклад 4:

Нехай розглядається залежність прибутку підприємства від витрат за нове обладнання та техніку і від витрат за підвищення кваліфікації працівників. Зібрано статистичні дані щодо 6 однотипних підприємств. Дані у млн. ден. од. наводяться у таблиці 1.

Таблиця 1

Побудувати двофакторну лінійну регресію та оцінити її значимість. Введемо позначення:

Транспонуємо матрицю Х:

Звернення цієї матриці:

таким чином залежність прибутку від витрат на нове обладнання та техніку та від витрат на підвищення кваліфікації працівників можна описати наступною регресією:

Використовуючи формулу (5) де k=2 розрахуємо стандартну помилку регресії S=0,636.

Стандартні помилки коефіцієнтів регресії розрахуємо, використовуючи формулу (6):

Аналогічно:

Перевіримо значущість коефіцієнтів регресії а1, а2. порахуємо t розрах.

Виберемо рівень значущості, число ступенів свободи

значить коефіцієнт а 1значущий.

Оцінимо значущість коефіцієнта а 2:

Коефіцієнт а 2незначущий.

Розрахуємо коефіцієнт детермінації за формулою (7). Прибуток підприємства на 96% залежить від витрат на нове обладнання та техніку та підвищення кваліфікації на 4% від інших та випадкових факторів. Перевіримо значущість коефіцієнта детермінації. Розрахуємо F розрах.:

т.ч. коефіцієнт детермінації значимий, рівняння регресії значимо.

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

Еластичність показує, наскільки відсотків у середньому змінюється залежний показник при зміні змінної на 1% за умови незмінності значень інших змінних. Чим більше, тим більше вплив відповідної змінної. Як і парної регресії для множинної регресії розрізняють точковий прогноз і інтервальний прогноз. Точковий прогноз (число) отримують при підстановці прогнозних значень незалежних змінних рівняння множинної регресії. Позначимо через:

(12)

вектор прогнозних значень незалежних змінних, тоді точковий прогноз

Стандартна помилка передбачення у разі множинної регресії визначається так:

(15)

Виберемо рівень значущості по таблиці розподілу Стьюдента. Для рівня значущості α та числа ступенів свободи ν = n-k-1 знайдемо t кр. Тоді справжнє значення у р з ймовірністю 1-α потрапляє в інтервал:


Тема 5:

Тимчасові ряди.

Запитання:

4. Основні поняття часових рядів.

5. Основна тенденція розвитку – тренд.

6. Побудова адитивної моделі.

Тимчасові рядиявляють собою сукупність значень якогось показника за кілька послідовних моментів або періодів часу.

Момент (або період) часу позначають t, а значення показника на момент часу позначають у(t) і називають рівнем ряду .

Кожен рівень тимчасового ряди формується під впливом великої кількості факторів, які можна поділити на 3 групи:

Тривалі, постійно діючі чинники, які на явище визначальний вплив і формують основну тенденцію низки – тренд T(t).

Короткочасні періодичні чинники, що формують сезонні коливання низки S(t).

Випадкові фактори, що формують випадкові зміни рівнів ряду ε(t).

Адитивною моделлютимчасового ряду називається модель, в якій кожен рівень ряду представлений сумою тренду, сезонної та випадкової компоненти:

Мультиплікативна модель– це модель, у якій кожен рівень низки є твір перелічених компонент:

Вибір однієї з моделей складає основі аналізу структури сезонних коливань. Якщо амплітуда коливань приблизно стала, то будують адитивну модель. Якщо амплітуда зростає, мультиплікативну модель.

Основне завдання економетричного аналізу полягає у виявленні кожної з перерахованих компонентів.

Основною тенденцією розвитку (трендом)називають плавну та стійку зміну рівнів ряду в часі вільне від випадкових та сезонних коливань.

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

До методів вирівнювання часового ряду відносять:

1) метод укрупнення інтервалів,

2) метод ковзної середньої,

3) аналітичне вирівнювання.

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

2) Для визначення числа перших рівнів низки розраховується середня величина. Потім розраховується середня з такої кількості рівнів ряду, починаючи з другого рівня і т.д. середня величина ковзає рядом динаміки, просуваючись на 1 термін (момент часу). Число рівнів ряду, яким розраховується середня, може бути парним і непарним. Для непарного ковзну середню відносять до середини періоду ковзання. Для парного періоду перебування середнього значення не зіставляють із визначенням t, а застосовують процедуру центрування, тобто. обчислюють середнє з двох послідовних ковзних середніх.

3) Побудова аналітичної функції, що характеризує залежність рівня від часу. Для побудови трендів застосовують такі функції:

Параметри трендів визначаються з допомогою МНК. Вибір найкращої функції складає основі коефіцієнта R 2 .

Побудову адитивної моделі проведемо з прикладу.

Приклад 7:

Є поквартальні дані про обсяги споживання електроенергії в деякому районі за 4 роки. Дані у млн. кВт у таблиці 1.

Таблиця 1

Побудувати модель часового ряду.

У цьому прикладі як незалежну змінну розглядаємо номер кварталу , а як залежну змінну y(t) споживання електроенергії за квартал.

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

Побудова моделі включає наступні кроки:

1. Проведемо вирівнювання вихідного ряду методом ковзної середньої за 4 квартали та проведемо центрування:

1.1. Підсумуємо рівні ряду послідовно за кожні 4 квартали зі зрушенням на 1 момент часу.

1.2. Розділивши отримані суми, 4 знайдемо ковзаючі середні.

1.3. Приводимо ці значення у відповідність до фактичних моментів часу, для чого знайдемо середнє значення з двох послідовних ковзних середніх – центровані ковзні середні.

2. Розрахуємо сезонну варіацію. Сезонна варіація (t) = y(t) - центрована ковзна середня. Побудуємо таблицю 2 .

Таблиця 2

Наскрізний № кварталу t Споживання електроенергії Y(t) Ковзна середня за 4 квартали Центрована ковзна середня Оцінка сезонної варіації
6,0 - - -
4,4 6,1 - -
5,0 6,4 6,25 -1,25
9,0 6,5 6,45 2,55
7,2 6,75 6,625 0,575
: : : : :
6,6 8,35 8,375 -1,775
7,0 - - -
10,8 - - -

3. На основі сезонної варіації у таблиці 3 розраховується сезонна компонента.

Показники Рік Номер кварталу року I II III IV
- - -1,250 2,550
0,575 -2,075 -1,100 2,700
0,550 -2,025 -1,475 2,875
0,675 -1,775 - -
Разом 1,8 -5,875 -3,825 8,125 Сума
Середнє 0,6 -1,958 -1,275 2,708 0,075
Сезонна компонента 0,581 -1,977 -1,294 2,690

4. Усуваємо сезонну компоненту з вихідних рівнівряду:

Висновок:

Адитивна модель пояснює 98,4% від загальної варіації рівнів вихідного часового ряду.



Нове на сайті

>

Найпопулярніше