R Покрокова та множинна лінійна регресія [Приклад кроків]

Проста лінійна регресія в R

Лінійна регресія відповідає на просте запитання: чи можете ви виміряти точний зв’язок між однією цільовою змінною та набором предикторів?

Найпростішою імовірнісною моделлю є прямолінійна модель:

Проста лінійна регресія в R

де

  • y = залежна змінна
  • x = незалежна змінна
  • Проста лінійна регресія в R = компонент випадкової помилки
  • Проста лінійна регресія в R = перехопити
  • Проста лінійна регресія в R = Коефіцієнт х

Розглянемо такий сюжет:

Проста лінійна регресія в R

Рівняння таке Проста лінійна регресія в R є перехопленням. Якщо x дорівнює 0, y буде дорівнювати перетину, 4.77. – нахил лінії. Він говорить, у якій пропорції змінюється y, коли змінюється x.

Для оцінки оптимальних значень Проста лінійна регресія в R та Проста лінійна регресія в R, ви використовуєте метод під назвою Звичайні найменші квадрати (OLS). Цей метод намагається знайти параметри, які мінімізують суму квадратів помилок, тобто вертикальну відстань між прогнозованими значеннями y і фактичними значеннями y. Різниця відома як термін помилки.

Перш ніж оцінити модель, ви можете визначити, чи вірогідний лінійний зв’язок між y і x, побудувавши діаграму розсіювання.

Діаграма розкиду

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

library(ggplot2)
path <- 'https://raw.githubusercontent.com/guru99-edu/R-Programming/master/women.csv'
df <-read.csv(path)
ggplot(df,aes(x=height, y =  weight))+
geom_point()

вихід:

Діаграма розкиду

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

Оцінки методом найменших квадратів

У простій регресії МНК обчислення Оцінки методом найменших квадратів та Оцінки методом найменших квадратів є прямим. Мета полягає не в тому, щоб показати виведення в цьому посібнику. Ви тільки напишете формулу.

Ви хочете оцінити: Оцінки методом найменших квадратів

Метою регресії МНК є мінімізація наступного рівняння:

Оцінки методом найменших квадратів

де

Оцінки методом найменших квадратів є фактичним значенням і Оцінки методом найменших квадратів є прогнозованим значенням.

Рішення для Оцінки методом найменших квадратів is Оцінки методом найменших квадратів

Зверніть увагу, що Оцінки методом найменших квадратів означає середнє значення x

Рішення для Оцінки методом найменших квадратів is Оцінки методом найменших квадратів

У R ви можете використовувати функцію cov() і var() для оцінки Оцінки методом найменших квадратів і ви можете використовувати функцію mean() для оцінки Оцінки методом найменших квадратів

beta <- cov(df$height, df$weight) / var (df$height)
beta

вихід:

##[1] 3.45
alpha <- mean(df$weight) - beta * mean(df$height)
alpha

вихід:

## [1] -87.51667

Коефіцієнт бета означає, що з кожним додатковим зростанням вага збільшується на 3.45.

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

Множинна лінійна регресія в R

Більш практичні застосування регресійного аналізу використовують моделі, які є більш складними, ніж проста прямолінійна модель. Імовірнісна модель, яка включає більше однієї незалежної змінної, називається моделі множинної регресії. Загальний вигляд цієї моделі:

Множинна лінійна регресія в R

У матричній нотації ви можете переписати модель:

  • Множинна лінійна регресія в R

Залежна змінна y тепер є функцією k незалежних змінних. Значення коефіц Множинна лінійна регресія в R визначає внесок незалежної змінної Множинна лінійна регресія в R та Множинна лінійна регресія в R.

Коротко представимо зроблене нами припущення щодо випадкової похибки Множинна лінійна регресія в R з OLS:

  • Середнє дорівнює 0
  • Дисперсія дорівнює Множинна лінійна регресія в R
  • Нормальний розподіл
  • Випадкові помилки незалежні (в імовірнісному сенсі)

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

Рішення закритої форми це:

Множинна лінійна регресія в R

з:

  • вказує на транспонувати матриці X
  • Множинна лінійна регресія в R вказує на оборотна матриця

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

Безперервні змінні в R

На даний момент ви будете використовувати лише безперервні змінні та залишити осторонь категоричні ознаки. Змінна am є двійковою змінною, яка приймає значення 1, якщо коробка передач механічна, і 0 для автомобілів з автоматичними коробками передач; vs також є двійковою змінною.

library(dplyr)
df <- mtcars % > %
select(-c(am, vs, cyl, gear, carb))
glimpse(df)

вихід:

## Observations: 32
## Variables: 6
## $ mpg  <dbl> 21.0, 21.0, 22.8, 21.4, 18.7, 18.1, 14.3, 24.4, 22.8, 19....
## $ disp <dbl> 160.0, 160.0, 108.0, 258.0, 360.0, 225.0, 360.0, 146.7, 1...
## $ hp   <dbl> 110, 110, 93, 110, 175, 105, 245, 62, 95, 123, 123, 180, ...
## $ drat <dbl> 3.90, 3.90, 3.85, 3.08, 3.15, 2.76, 3.21, 3.69, 3.92, 3.9...
## $ wt   <dbl> 2.620, 2.875, 2.320, 3.215, 3.440, 3.460, 3.570, 3.190, 3...
## $ qsec <dbl> 16.46, 17.02, 18.61, 19.44, 17.02, 20.22, 15.84, 20.00, 2...

Для обчислення параметрів можна використовувати функцію lm(). Основний синтаксис цієї функції:

lm(formula, data, subset)
Arguments:
	-formula: The equation you want to estimate	
	-data: The dataset used
	-subset: Estimate the model on a subset of the dataset

Пам’ятайте, що рівняння має такий вигляд

Безперервні змінні в R

в Р

  • Символ = замінюється на ~
  • Кожен x замінюється назвою змінної
  • Якщо ви хочете видалити константу, додайте -1 у кінці формули

приклад:

Ви хочете оцінити вагу людей на основі їх зростання та доходу. Рівняння таке

Безперервні змінні в R

Рівняння в R записується так:

y ~ X1+ X2+…+Xn # З перехопленням

Отже, для нашого прикладу:

  • Зважте ~ зріст + дохід

Ваше завдання — оцінити милю на галон на основі набору змінних. Рівняння для оцінки таке:

Безперервні змінні в R

Ви оціните свою першу лінійну регресію та збережете результат у відповідному об’єкті.

model <- mpg~.disp + hp + drat + wt
fit <- lm(model, df)
fit

Пояснення коду

  • модель <- mpg ~. disp + hp + drat+ wt: зберегти модель для оцінки
  • lm(модель, df): оцінка моделі за допомогою кадру даних df
## 
## Call:
## lm(formula = model, data = df)
## 
## Coefficients:
## (Intercept)         disp           hp         drat           wt  
##    16.53357      0.00872     -0.02060      2.01577     -4.38546  
##        qsec  
##     0.64015	

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

summary(fit)

вихід:

## return the p-value and coefficient
## 
## Call:
## lm(formula = model, data = df)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -3.5404 -1.6701 -0.4264  1.1320  5.4996 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)   
## (Intercept) 16.53357   10.96423   1.508  0.14362   
## disp         0.00872    0.01119   0.779  0.44281   
## hp          -0.02060    0.01528  -1.348  0.18936   
## drat         2.01578    1.30946   1.539  0.13579   
## wt          -4.38546    1.24343  -3.527  0.00158 **
## qsec         0.64015    0.45934   1.394  0.17523   
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2.558 on 26 degrees of freedom
## Multiple R-squared:  0.8489, Adjusted R-squared:  0.8199 
## F-statistic: 29.22 on 5 and 26 DF, p-value: 6.892e-10

Висновок із наведеної вище таблиці

  • Наведена вище таблиця доводить, що існує сильний негативний зв’язок між вагою та пробігом і позитивний зв’язок з дрейфом.
  • Тільки змінна wt має статистичний вплив на mpg. Пам’ятайте, що для перевірки гіпотези в статистиці ми використовуємо:
    • H0: Немає статистичного впливу
    • H3: предиктор має значний вплив на y
    • Якщо значення p менше 0.05, це означає, що змінна є статистично значущою
  • Скоригований R-квадрат: дисперсія, пояснена моделлю. У вашій моделі модель пояснює 82 відсотки дисперсії y. R у квадраті завжди між 0 і 1. Чим вище, тим краще

Ви можете запустити ANOVA тест для оцінки впливу кожної функції на дисперсії за допомогою функції anova().

anova(fit)

вихід:

## Analysis of Variance Table
## 
## Response: mpg
##           Df Sum Sq Mean Sq  F value   Pr(>F)    
## disp       1 808.89  808.89 123.6185 2.23e-11 ***
## hp         1  33.67   33.67   5.1449 0.031854 *  
## drat       1  30.15   30.15   4.6073 0.041340 *  
## wt         1  70.51   70.51  10.7754 0.002933 ** 
## qsec       1  12.71   12.71   1.9422 0.175233    
## Residuals 26 170.13    6.54                      
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1	

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

Ви можете використовувати функцію plot(), щоб показати чотири графіки:

– Залишки проти підігнаних значень

– Нормальний графік QQ: теоретичний квартиль проти стандартизованих залишків

– Масштаб-розташування: підігнані значення проти квадратних коренів стандартизованих залишків

– Залишки проти кредитного плеча: кредитне плече проти стандартизованих залишків

Ви додаєте код par(mfrow=c(2,2)) перед plot(fit). Якщо ви не додасте цей рядок коду, R запропонує вам натиснути команду enter, щоб відобразити наступний графік.

par(mfrow=(2,2))

Пояснення коду

  • (mfrow=c(2,2)): повертає вікно з чотирма графіками поруч.
  • Перші 2 додають кількість рядків
  • Другі 2 додають кількість стовпців.
  • Якщо ви напишете (mfrow=c(3,2)): ви створите вікно з 3 рядками та 2 стовпцями
plot(fit)

вихід:

Безперервні змінні в R

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

– коефіцієнти: `fit$coefficients`

– залишки: `fit$residuals`

– підігнане значення: `fit$fitted.values`

Фактори регресії в R

В останній модельній оцінці ви регресуєте милі на галон лише за безперервними змінними. До моделі можна легко додати факторні змінні. Ви додаєте змінну am до своєї моделі. Важливо бути впевненим, що змінна є факторним рівнем, а не безперервною.

df <- mtcars % > %
mutate(cyl = factor(cyl),
    vs = factor(vs),
    am = factor(am),
    gear = factor(gear),
    carb = factor(carb))
summary(lm(model, df))

вихід:

## 
## Call:
## lm(formula = model, data = df)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -3.5087 -1.3584 -0.0948  0.7745  4.6251 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)  
## (Intercept) 23.87913   20.06582   1.190   0.2525  
## cyl6        -2.64870    3.04089  -0.871   0.3975  
## cyl8        -0.33616    7.15954  -0.047   0.9632  
## disp         0.03555    0.03190   1.114   0.2827  
## hp          -0.07051    0.03943  -1.788   0.0939 .
## drat         1.18283    2.48348   0.476   0.6407  
## wt          -4.52978    2.53875  -1.784   0.0946 .
## qsec         0.36784    0.93540   0.393   0.6997  
## vs1          1.93085    2.87126   0.672   0.5115  
## am1          1.21212    3.21355   0.377   0.7113  
## gear4        1.11435    3.79952   0.293   0.7733  
## gear5        2.52840    3.73636   0.677   0.5089  
## carb2       -0.97935    2.31797  -0.423   0.6787  
## carb3        2.99964    4.29355   0.699   0.4955  
## carb4        1.09142    4.44962   0.245   0.8096  
## carb6        4.47757    6.38406   0.701   0.4938  
## carb8        7.25041    8.36057   0.867   0.3995  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2.833 on 15 degrees of freedom
## Multiple R-squared:  0.8931, Adjusted R-squared:  0.779 
## F-statistic:  7.83 on 16 and 15 DF,  p-value: 0.000124

R використовує перший факторний рівень як базову групу. Вам потрібно порівняти коефіцієнти іншої групи з базовою групою.

Покрокова лінійна регресія в R

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

Давайте подивимося на ділі, як це працює. Ви використовуєте набір даних mtcars із безперервними змінними лише для педагогічної ілюстрації. Перш ніж почати аналіз, добре встановити варіації між даними за допомогою кореляційної матриці. Бібліотека GGally є розширенням ggplot2.

Бібліотека містить різні функції для показу зведених статистичних даних, таких як кореляція та розподіл усіх змінних у матриці. Ми будемо використовувати функцію ggscatmat, але ви можете звернутися до віньєтка для отримання додаткової інформації про бібліотеку GGally.

Основний синтаксис для ggscatmat() такий:

ggscatmat(df, columns = 1:ncol(df), corMethod = "pearson")
arguments:
-df:  A matrix of continuous variables
-columns: Pick up the columns to use in the function. By default, all columns are used
-corMethod: Define the function to compute the correlation between variable. By default, the algorithm uses the Pearson formula

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

library(GGally)
df <- mtcars % > %
	select(-c(am, vs, cyl, gear, carb))
ggscatmat(df, columns = 1: ncol(df))

вихід:

Покрокова лінійна регресія в R

Приклад покрокової регресії

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

Вам потрібно встановити пакет olsrr з CRAN. Пакет ще не доступний в Anaconda. Отже, ви встановлюєте його безпосередньо з командного рядка:

install.packages("olsrr")

Ви можете побудувати всі підмножини можливостей із критеріями відповідності (тобто R-квадрат, скоригований R-квадрат, критерії Байєса). Модель з найнижчими критеріями AIC буде остаточною.

library(olsrr)
model <- mpg~.
fit <- lm(model, df)
test <- ols_all_subset(fit)
plot(test)

Пояснення коду

  • милі на галон ~.: Побудуйте модель для оцінки
  • lm(модель, df): Запустіть модель OLS
  • ols_all_subset(підходить): Побудуйте графіки з відповідною статистичною інформацією
  • ділянка (тест): Побудуйте графіки

вихід:

Приклад покрокової регресії

Моделі лінійної регресії використовують t-тест оцінити статистичний вплив незалежної змінної на залежну змінну. Дослідники встановили максимальний поріг у 10 відсотків, причому нижчі значення вказують на сильніший статистичний зв’язок. Стратегія поетапної регресії побудована навколо цього тесту для додавання та видалення потенційних кандидатів. Алгоритм роботи наступний:

Покрокова лінійна регресія в R
Покрокова лінійна регресія в R
  • крок 1: Регресія кожного предиктора на y окремо. А саме, регресія x_1 на y, x_2 на y до x_n. Зберігайте р-значення і підтримувати регресор із значенням p, нижчим за визначене порогове значення (0.1 за замовчуванням). Предиктори зі значущістю, нижчою за порогове значення, будуть додані до остаточної моделі. Якщо жодна змінна не має p-значення, нижче за вхідний поріг, тоді алгоритм зупиняється, і ви маєте остаточну модель лише з константою.
  • крок 2: Використовуйте предиктор із найнижчим p-значенням і додайте окремо одну змінну. Ви регресуєте константу, найкращий предиктор першого кроку та третьої змінної. Ви додаєте до покрокової моделі нові предиктори зі значенням, нижчим за вхідний поріг. Якщо жодна змінна не має p-значення нижче 0.1, тоді алгоритм зупиняється, і ви маєте остаточну модель лише з одним предиктором. Ви регресуєте поетапну модель, щоб перевірити значущість найкращих предикторів кроку 1. Якщо він вищий за поріг видалення, ви зберігаєте його в поетапній моделі. В іншому випадку ви виключаєте його.
  • крок 3: Ви повторюєте крок 2 на новій найкращій поетапній моделі. Алгоритм додає предиктори до покрокової моделі на основі введених значень і виключає предиктор із покрокової моделі, якщо він не задовольняє порогове значення виключення.
  • Алгоритм продовжує працювати, доки жодна змінна не може бути додана або виключена.

Ви можете виконати алгоритм за допомогою функції ols_stepwise() з пакету olsrr.

ols_stepwise(fit, pent = 0.1, prem = 0.3, details = FALSE)

arguments:
-fit:  Model to fit. Need to use `lm()`before to run `ols_stepwise()
-pent: Threshold of the p-value used to enter a variable into the stepwise model. By default, 0.1
-prem: Threshold of the p-value used to exclude a variable into the stepwise model. By default, 0.3
-details: Print the details of each step

Перед цим ми покажемо вам кроки алгоритму. Нижче наведено таблицю із залежними та незалежними змінними:

Залежна змінна Незалежні змінні
милі на галон розсилка
hp
драт
wt
qsec

Start

Почнемо з того, що алгоритм починається з запуску моделі для кожної незалежної змінної окремо. У таблиці показано p-значення для кожної моделі.

## [[1]]
##  (Intercept)         disp 
## 3.576586e-21 9.380327e-10 
## 
## [[2]]
##  (Intercept)           hp 
## 6.642736e-18 1.787835e-07 
## 
## [[3]]
##  (Intercept)         drat 
## 0.1796390847 0.0000177624 
## 
## [[4]]
##  (Intercept)           wt 
## 8.241799e-19 1.293959e-10 
## 
## [[5]
## (Intercept)        qsec 
##  0.61385436  0.01708199

Щоб увійти в модель, алгоритм зберігає змінну з найменшим p-значенням. З наведеного вище результату це мас

крок 1

На першому кроці алгоритм незалежно запускає mpg для wt та інших змінних.

## [[1]]
##  (Intercept)           wt         disp
## 4.910746e-16 7.430725e-03 6.361981e-02 
## 
## [[2]]
##  (Intercept)           wt           hp 
## 2.565459e-20 1.119647e-06 1.451229e-03 
## 
## [[3]]
##  (Intercept)           wt         drat 
## 2.737824e-04 1.589075e-06 3.308544e-01 
## 
## [[4]]
##  (Intercept)           wt         qsec 
## 7.650466e-04 2.518948e-11 1.499883e-03

Кожна змінна є потенційним кандидатом для входу в остаточну модель. Однак алгоритм зберігає лише змінну з нижчим значенням p. Виявляється, hp має дещо нижче значення p, ніж qsec. Тому hp входить до остаточної моделі

крок 2

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

## [[1]]
##  (Intercept)           wt           hp         disp 
## 1.161936e-16 1.330991e-03 1.097103e-02 9.285070e-01 
## 
## [[2]]
##  (Intercept)           wt           hp         drat 
## 5.133678e-05 3.642961e-04 1.178415e-03 1.987554e-01 
## 
## [[3]]
##  (Intercept)           wt           hp         qsec 
## 2.784556e-03 3.217222e-06 2.441762e-01 2.546284e-01

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

## 
## Call:
## lm(formula = mpg ~ wt + hp, data = df)
## 
## Residuals:
##    Min     1Q Median     3Q    Max 
## -3.941 -1.600 -0.182  1.050  5.854 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 37.22727    1.59879  23.285  < 2e-16 ***
## wt          -3.87783    0.63273  -6.129 1.12e-06 ***
## hp          -0.03177    0.00903  -3.519  0.00145 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2.593 on 29 degrees of freedom
## Multiple R-squared:  0.8268, Adjusted R-squared:  0.8148 
## F-statistic: 69.21 on 2 and 29 DF,  p-value: 9.109e-12

Ви можете використовувати функцію ols_stepwise(), щоб порівняти результати.

stp_s <-ols_stepwise(fit, details=TRUE)

вихід:

Алгоритм знаходить рішення після 2 кроків і повертає той самий результат, що й раніше.

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

## You are selecting variables based on p value...
## 1 variable(s) added....
## Variable Selection Procedure
##  Dependent Variable: mpg 
## 
##  Stepwise Selection: Step 1 
## 
##  Variable wt Entered 
## 
##                         Model Summary                          
## --------------------------------------------------------------
## R                       0.868       RMSE                3.046 
## R-Squared               0.753       Coef. Var          15.161 
## Adj. R-Squared          0.745       MSE                 9.277 
## Pred R-Squared          0.709       MAE                 2.341 
## --------------------------------------------------------------
##  RMSE: Root Mean Square Error 
##  MSE: Mean Square Error 
##  MAE: Mean Absolute Error 
##		ANOVA                                 
## --------------------------------------------------------------------
##                 Sum of                                              
##                Squares        DF    Mean Square      F         Sig. 
## --------------------------------------------------------------------
## Regression     847.725         1        847.725    91.375    0.0000 
## Residual       278.322        30          9.277                     
## Total         1126.047        31                                    
## --------------------------------------------------------------------
## 
##                                   Parameter Estimates                                    
## ----------------------------------------------------------------------------------------
##       model      Beta    Std. Error    Std. Beta      t        Sig      lower     upper 
## ----------------------------------------------------------------------------------------
## (Intercept)    37.285         1.878                 19.858    0.000    33.450    41.120 
##          wt    -5.344         0.559       -0.868    -9.559    0.000    -6.486    -4.203 
## ----------------------------------------------------------------------------------------
## 1 variable(s) added...
## Stepwise Selection: Step 2 
## 
##  Variable hp Entered 
## 
##                         Model Summary                          
## --------------------------------------------------------------
## R                       0.909       RMSE                2.593 
## R-Squared               0.827       Coef. Var          12.909 
## Adj. R-Squared          0.815       MSE                 6.726 
## Pred R-Squared          0.781       MAE                 1.901 
## --------------------------------------------------------------
##  RMSE: Root Mean Square Error 
##  MSE: Mean Square Error 
##  MAE: Mean Absolute Error 
##			ANOVA                                 
## --------------------------------------------------------------------
##                 Sum of                                              
##                Squares        DF    Mean Square      F         Sig. 
## --------------------------------------------------------------------
## Regression     930.999         2        465.500    69.211    0.0000 
## Residual       195.048        29          6.726                     
## Total         1126.047        31                                    
## --------------------------------------------------------------------
## 
##                                   Parameter Estimates                                    
## ----------------------------------------------------------------------------------------
##       model      Beta    Std. Error    Std. Beta      t        Sig      lower     upper 
## ----------------------------------------------------------------------------------------
## (Intercept)    37.227         1.599                 23.285    0.000    33.957    40.497 
##          wt    -3.878         0.633       -0.630    -6.129    0.000    -5.172    -2.584 
##          hp    -0.032         0.009       -0.361    -3.519    0.001    -0.050    -0.013 
## ----------------------------------------------------------------------------------------
## No more variables to be added or removed.

машинне навчання

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

Нижче наведено інші програми машинного навчання –

  • Виявлення небажаних повідомлень спаму в електронній пошті
  • Сегментація поведінки клієнтів для таргетованої реклами
  • Зменшення кількості шахрайських операцій з кредитними картками
  • Оптимізація енергоспоживання в будинку та офісі
  • Розпізнавання обличчя

Навчання під наглядом

In Навчання під наглядом, навчальні дані, які ви подаєте в алгоритм, містять мітку.

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

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

Ось список деяких основних алгоритмів навчання під наглядом.

  • Лінійна регресія
  • Логістична регресія
  • Найближчі сусіди
  • Машина опорних векторів (SVM)
  • Дерева рішень і випадковий ліс
  • Нейронні мережі

Навчання без нагляду

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

  • K-середнє
  • Ієрархічна Cluster Аналіз
  • Максимізація очікування
  • Візуалізація та зменшення розмірності
  • Аналіз основних компонентів
  • Ядро PCA
  • Локально-лінійне вбудовування

Підсумки

  • Лінійна регресія відповідає на просте запитання: чи можете ви виміряти точний зв’язок між однією цільовою змінною та набором предикторів?
  • Звичайний метод найменших квадратів намагається знайти параметри, які мінімізують суму квадратів помилок, тобто вертикальну відстань між прогнозованими значеннями y і фактичними значеннями y.
  • Імовірнісна модель, яка включає більше однієї незалежної змінної, називається моделлю множинної регресії.
  • Метою алгоритму покрокової лінійної регресії є додавання та видалення потенційних кандидатів у моделі та збереження тих, хто має значний вплив на залежну змінну.
  • Вибір змінних є важливою частиною підбору моделі. Покрокова регресія виконує процес пошуку автоматично.

Звичайну регресію найменших квадратів можна підсумувати в таблиці нижче:

Library мета функція Аргументи
база Обчисліть лінійну регресію lm() формула, дані
база Узагальніть модель підсумувати() відповідати
база Витягти коефіцієнти lm()$коефіцієнт
база Витягніть залишки lm()$залишки
база Витягти підігнане значення lm()$fitted.values
olsrr Запустіть покрокову регресію ols_stepwise() fit, pent = 0.1, prem = 0.3, деталі = FALSE

Примітка:: не забудьте перетворити категоріальну змінну в фактор, перш ніж відповідати моделі.