Uploaded by Максим Березюк

ППАС Лаб 10 (1)

advertisement
Лабораторна робота №9
Тема: Лінійний регресивний аналіз.
Мета роботи: навчитись будувати лінійну регресійну модель між залежною та
незалежними змінними.
Основні задачі роботи:
1. Визначити та побудувати функцію регресії у вигляді математичного рівняння та
встановити вплив змінних на залежну величину.
2. Оцінити побудовану регресійну модель.
Теоретичні відомості
Регресійний аналіз – це метод моделювання даних, які вимірюються, та дослідження
їх властивостей. Регресійна модель – це функція незалежної величини та коефіцієнтів з
включеними випадковими змінними.
Вважають, що залежна змінна описується сумою значень деякої моделі та незалежними
змінними. Відповідно до характеру розподілу залежної змінної роблять припущення, які
називаються гіпотезою породження даних. Для підтвердження або спростування цієї гіпотези
проводяться статистичні тести (аналіз залишків – різниця між значеннями, які
спостерігаються, та значеннями, які передбаченні побудованою регресійною моделлю). При
цьому вважають, що залежна змінна не містить помилок.
Регресійний аналіз використовується для прогнозу, аналізу часових рядів, тестування
гіпотез та виявлення прихованих взаємозв’язків в даних.
Регресійний аналіз тісно пов’язаний з кореляційним аналізом. В кореляційному аналізі
досліджується напрямок та міцність зв’язку між незалежними змінними. В регресійному
аналізі досліджується форма залежності (модель зв’язку, вираженої у функції регресії) між
незалежними змінними. Фактично два методи вивчають однаковий взаємозв’язок, але з різних
сторін, доповнюючи один одного.
Регресія – залежність математичного очікування (середнього значення) незалежної
змінної від однієї або декількох інших змінних. Нехай у точках xn незалежної змінної x
отримані виміри
. Потрібно знайти залежність середнього значення величини Y від
величини x, тобто Y ( x) = f ( x a) , де a – вектор невідомих параметрів ai . Функцію f ( x a)
називають функцією регресії. Звичайно припускають, що f ( x a) є лінійною функцією
параметрів а, тобто має вигляд:
I
f ( x a ) =  ai i ( x ),
(2.1)
i =1
де fi ( x) – задані функції.
У цьому випадку матрицю Ani = fi ( xn ) називають регресійною матрицею.
Для визначення параметрів ai звичайно використовують метод найменших квадратів.
При пошуку функції регресії у вигляді (2.1) природно виникає питання про кількість
членів I у сумі (2.1). При малому значенні I не можна досягти гарного опису Y ( x) , а при
великому – можливе виникнення великих статистичних помилок функції регресії.
Регресійний аналіз використовується у випадку, якщо відношення між змінними
можуть бути виражені кількісно у вигляді деякої комбінації цих змінних. Отримана комбінація
використовується для передбачення значення, що може приймати залежна змінна, яка
обчислюється на заданому наборі значень незалежних змінних. У найпростішому випадку для
цього використовується лінійна регресія.
Необхідно зазначити, що серед регресійних моделей виділяють:
− однопараметричні моделі (залежність від однієї змінної);
− багатопараметричні моделі (залежність від декількох змінних);
− лінійні моделі відносно незалежних змінних;
− моделі нелінійні за змінними та нелінійні за параметрами.
Лінійна регресійна модель має наступний вигляд:
y = 0 + 1 x1 + ... + k xk + u
(2.2)
де у – залежна змінна;
( x1 , x2 ,..., xn ) – незалежні змінні;
u – випадкова похибка, розподіл якої в загальному випадку залежить від незалежних
змінних, але математичне очікування якої рівне нулю.
Згідно з моделлю (2.2) математичне очікування залежної змінної є лінійною функцією
незалежних змінних:
E( y) = 0 + 1 x1 + ... + k xk + u
(2.3)
Вектор параметрів (0 , 1 ,..., k ) є невідомим і задача лінійної регресії полягає в оцінці
цих параметрів на основі деяких експериментальних значень у і ( x1 , x2 ,..., xn ) . Тобто для деяких
n експериментів є відомі значення  yi , yi1 ,..., yip  незалежних змінних і відповідне їм значення
n
i =1
залежної змінної.
Згідно з визначенням моделі для кожного експериментального випадку залежність між
змінними визначається формулою:
yi = 0 +1 x1 + ... +k xk + ui ,
(2.4)
На основі цих даних потрібно оцінити значення параметрів (0 , 1 ,..., k ) , а також
розподіл випадкової величини u. Зважаючи на характеристики досліджуваних змінних,
можуть додаватися різні додаткові специфікації моделі і застосовуватися різні методи оцінки
параметрів. Серед найпоширеніших специфікацій лінійних моделей є класична модель
лінійної регресії та узагальнена модель лінійної регресії.
Згідно з класичною моделлю лінійної регресії додатково вводяться такі вимоги щодо
специфікації моделі та відомих експериментальних даних:
−
i  jE(uiu j xi ) = 0 (відсутність кореляції залишків);
−
iE (u 2j xi ) = 2 (гомоскедастичність).
Часто додається також умова нормальності випадкових відхилень, яка дозволяє
провести значно ширший аналіз оцінок параметрів та їх значимості, хоча і не є обов’язковою
для можливості використання, наприклад, методу найменших квадратів (u j xi ) ~ N (0, 2 ) .
Умови гомоскедастичності та відсутності кореляції між випадковими залишками в
моделі часто на практиці не виконуються. Можна замість цих двох умов у визначенні моделі
взяти більшзагальну умову:
V (u X ) = 2W ,
(2.5)
де W – відома додатноозначена матриця. Одержана модель називається узагальненою
моделлю лінійної регресії.
Оскільки для кожної додатноозначеної матриці W існує матриця N, така що W −1 = NN
то модель:
N y = NX  + Nu ,
(2.6)
вже буде класичною моделлю лінійної регресії.
Залежно від об’єктів, що досліджуються за допомогою лінійної регресії та конкретних
цілей дослідження, можуть використовуватися різні методи оцінки невідомих коефіцієнтів.
Найпопулярнішим є звичайний метод найменших квадратів. Він приймає за оцінку змінної
значення, що мінімізують суму квадратів залишків по всіх спостереженнях:
n
k
i =1
j =1
2
ˆ = arg min  yi − 0 −  X ij  j = arg min y = X 


2
(2.7)
Серед інших методів оцінювання:
− Метод найменших модулів, що знаходить мінімум суми не квадратів відхилень, а
їх абсолютних значень. Цей метод є найкращим (при максимальній вірогідності) у випадку
коли відхилення мають розподіл Лапласа. Також, цей метод значно менш чутливий до викидів
значень, ніж метод найменших квадратів, проте він може мати більш ніж один розв’язок і для
нього не існує простої формули визначення оцінки.
− Метод максимальної вірогідності. Використовується коли відомі всі розподіли
відхилень для всіх спостережень. При класичній та узагальненій моделях лінійної регресії з
умовою нормальності відхилень приводить до того ж результату, що і метод найменших
квадратів та узагальнений метод найменших квадратів відповідно.
− Ортогональна регресія. Застосовується у випадках коли значення змінних можуть
містити випадкові складові й при оцінці враховують можливі відхилення по всіх змінних.
Розглянемо випадок простої регресії для створених вручну датасетів.
Проімпортуємо необхідні бібліотеки:
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
import seaborn as sns
Розглянемо дані, які показують як залежить прибуток (змінна «revenue») від продажів
предметів (змінна «items_sold») та від досвіду продавця (змінна «experiance») у часі (змінна
«months»).
months = [1, 2, 3, 4,5,6]
sales = {'revenue':
[100, 200, 300, 400,500,
570],'items_sold': [23, 43, 55, 65,
70,73]]}
sales_df = pd.DataFrame(data=sales, index=months)
Візуалізуємо графік залежності між прибутком (змінна «revenue») та продажами
предметів (змінна «items_sold»):
plt.figure(figsize=(10,6))
plt.scatter(sales_df.revenue, sales_df.items_sold)
plt.xlabel('Прибуток')
plt.ylabel('Продаж Предметів')
Подивимось на кореляцію між прибутком (змінна «revenue») та продажами предметів
(змінна «items_sold»):
sales_df['revenue'].corr(sales_df['items_sold'])
Результат високий:
0.9657895306204666
Це дозволяє провести регресивний лінійний аналіз.
Проведемо просту лінійну регресію. Для цього проімпортуємо бібліотеки:
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error
Створимо об’єкт для моделі лінійної регресії:
lin_model1 = LinearRegression()
Створимо дані для регресійної моделі:
X1=pd.DataFrame(sales_df.revenue)
Y1=pd.DataFrame(sales_df.items_sold)
Проведемо тренування моделі лінійної регресії:
lin_model1.fit(X1,Y1)
Подивимось на кутовий коефіцієнт а та вільний член b регресійної прямої:
a=lin_model1.score(X1,Y1)
0.9327494174561011
b=lin_model1.intercept_
array([19.41047175])
Візуалізуємо графік залежності між прибутком (змінна «revenue») та продажами
предметів (змінна «items_sold») та регресійною прямою:
plt.figure(figsize=(8,8))
plt.plot(X1,lin_model1.predict(X1))
plt.scatter(sales_df['revenue'],sales_df['items_sold'])
plt.xlabel('Прибуток')
plt.ylabel('Продаж Предметів')
plt.show()
Перевіримо якість регресійної моделі , використавши коефіцієнт детермінації:
2
1 n
yi − ( a + bxi ) )
(

n
R 2 = 1 − i =1 n
1
2
( yi − yn )

n i =1
y_predict = lin_model1.predict(X1)
r2 = (np.sqrt(mean_squared_error(Y1, y_predict)))/len(Y1)
0.7521053784144889
Таким чином регресійна крива має функціональний вигляд:
y = 0.93x + 19.41
Це задовільне значення коефіцієнту, особливо, зважаючи на малу кількість вихідних
даних/Зазначимо, що з цієї ж причини не проводилось перевірка на пропущені дані, помилкові
дані та розділення даних на множину робочих (для визначення коефіцієнтів лінійної моделі)
та тестових (для перевірки регресійної моделі, що зменшує надійність результату) (функція
train_test_split), і яке у лабораторній роботі обхідно провести.
Таким чином регресійна крива має функціональний вигляд:
y = 0.93x + 19.41
Приклад
з
більшою
кількістю
даних
проглянути
за
посиланням:
https://towardsdatascience.com/linear-regression-on-boston-housing-dataset-f409b7e4a155.
Завдання
1. Вказати мету регресійної моделі для даних Linear Regression on Boston Housing
Dataset
2. Провести регресійний аналіз даних за зразком для даних Linear Regression on Boston
Housing Dataset
https://towardsdatascience.com/linear-regression-on-boston-housing-dataset-f409b7e4a155
a. Пояснити особливості побудови регресійної моделі для оцінювання ціни
будинків. Чи всі дані враховуються в моделі? З яких міркувань вибираються
дані(стовпчики для моделі)? Які дані можна б було ще включити в модель.
b. Записати рівняння регресійної моделі
c. Знайти коефіцієнти регресії
d. Оцінити точність моделі за допомогою одного з коефіцієнтів (R2, RMSE)
3. Провести регресійний аналіз даних для інших колонок Boston Housing Dataset
(достатньо 1-2) або інших даних, знайдених самостійно (у такому випадку вказати
джерело). Пояснити особливості моделі, формулу, коефіцієнти, точність моделі.
Download