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

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

Линейната регресия отговаря на прост въпрос: Можете ли да измерите точна връзка между една целева променлива и набор от предиктори?

Най-простият вероятностен модел е моделът с права линия:

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

където

  • y = Зависима променлива
  • x = независима променлива
  • Проста линейна регресия в R = случайна грешка компонент
  • Проста линейна регресия в R = прихващане
  • Проста линейна регресия в R = Коефициент на x

Помислете за следния сюжет:

Проста линейна регресия в 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. В следващата стъпка ще измерите с колко се увеличава за всеки допълнителен .

Оценки на най-малките квадрати

При проста OLS регресия, изчислението на Оценки на най-малките квадрати намлява Оценки на най-малките квадрати е ясна. Целта не е да се покаже извеждането в този урок. Ще напишете само формулата.

Искате да оцените: Оценки на най-малките квадрати

Целта на OLS регресията е да минимизира следното уравнение:

Оценки на най-малките квадрати

където

Оценки на най-малките квадрати е действителната стойност и Оценки на най-малките квадрати е предвидената стойност.

Решението за Оценки на най-малките квадрати 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

в 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)

Обяснение на кода

  • MPG ~.: Конструирайте модела за оценка
  • lm(модел, df): Стартирайте OLS модела
  • ols_all_subset(fit): Изградете графиките със съответната статистическа информация
  • графика (тест): Начертайте графиките

Изход:

Пример за поетапна регресия стъпка по стъпка

Моделите на линейна регресия използват t-тест за оценка на статистическото влияние на независима променлива върху зависимата променлива. Изследователите определят максималния праг на 10%, като по-ниските стойности показват по-силна статистическа връзка. Стратегията на поетапната регресия е изградена около този тест за добавяне и премахване на потенциални кандидати. Алгоритъмът работи по следния начин:

Постепенна линейна регресия в R
Постепенна линейна регресия в R
  • Стъпка : Регресия на всеки предиктор по y поотделно. А именно, регресия x_1 върху y, x_2 върху y до x_n. Съхранявайте р-стойност и поддържайте регресора с p-стойност по-ниска от определен праг (0.1 по подразбиране). Предикторите със значимост по-ниска от прага ще бъдат добавени към крайния модел. Ако никоя променлива няма p-стойност, по-ниска от входния праг, тогава алгоритъмът спира и имате своя окончателен модел само с константа.
  • Стъпка : Използвайте предиктора с най-ниската p-стойност и добавя отделно една променлива. Регресирате константа, най-добрият предиктор на стъпка едно и трета променлива. Добавяте към поетапния модел новите предиктори със стойност, по-ниска от входния праг. Ако никоя променлива няма p-стойност по-ниска от 0.1, тогава алгоритъмът спира и имате окончателния си модел само с един предиктор. Регресирате поетапния модел, за да проверите значимостта на най-добрите предиктори за стъпка 1. Ако е по-висок от прага за премахване, вие го запазвате в стъпаловиден модел. В противен случай го изключвате.
  • Стъпка : Повторете стъпка 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

Преди това ви показваме стъпките на алгоритъма. По-долу е дадена таблица със зависимите и независимите променливи:

Зависима променлива Независими променливи
MPG депо
hp
драт
wt
qsec

Начало

Като начало, алгоритъмът започва с изпълнение на модела върху всяка независима променлива поотделно. Таблицата показва 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-стойност. От горния резултат, той е тегл

Стъпка

В първата стъпка алгоритъмът изпълнява 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 влиза във финалния модел

Стъпка

Алгоритъмът повтаря първата стъпка, но този път с две независими променливи в крайния модел.

## [[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.

Machine Learning

Machine Learning става широко разпространен сред специалистите по данни и се внедрява в стотици продукти, които използвате ежедневно. Едно от първите ML приложения беше спам филтър.

Следват други приложения на машинното обучение-

  • Идентифициране на нежелани спам съобщения в имейл
  • Сегментиране на клиентското поведение за таргетирана реклама
  • Намаляване на измамни транзакции с кредитни карти
  • Оптимизиране на използването на енергия в жилищни и офис сгради
  • разпознаване на лица

Контролирано обучение

In Контролирано обучение, данните за обучение, които подавате към алгоритъма, включват етикет.

Класификация е може би най-използваната техника за контролирано обучение. Една от първите задачи за класификация, с която се захванаха изследователите, беше спам филтърът. Целта на обучението е да се предвиди дали даден имейл е класифициран като спам или хам (добър имейл). Машината, след стъпката на обучение, може да открие класа на имейла.

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

Ето списъка с някои основни алгоритми за контролирано обучение.

  • Линейна регресия
  • Логистична регресия
  • Най-близки съседи
  • Поддържаща векторна машина (SVM)
  • Дървета на решенията и произволна гора
  • Невронни мрежи

Неуправляемо обучение

In Неуправляемо обучение, данните за обучението не са етикетирани. Системата се опитва да научи без справка. По-долу е даден списък с алгоритми за обучение без надзор.

  • К-средно
  • йерархически Cluster Анализ
  • Максимизиране на очакванията
  • Визуализация и намаляване на размерността
  • Анализ на главния компонент
  • PCA на ядрото
  • Локално-линейно вграждане

Oбобщение

  • Линейната регресия отговаря на прост въпрос: Можете ли да измерите точна връзка между една целева променлива и набор от предиктори?
  • Обикновеният метод на най-малките квадрати се опитва да намери параметрите, които минимизират сумата от грешките на квадрат, което е вертикалното разстояние между прогнозираните стойности на y и действителните стойности на y.
  • Вероятностният модел, който включва повече от една независима променлива, се нарича модели на множествена регресия.
  • Целта на алгоритъма за поетапна линейна регресия е да добавя и премахва потенциални кандидати в моделите и да запазва онези, които имат значително влияние върху зависимата променлива.
  • Изборът на променливи е важна част за напасване на модел. Постепенната регресия извършва процеса на търсене автоматично.

Обикновената регресия на най-малък квадрат може да бъде обобщена в таблицата по-долу:

Библиотека Цел функция Аргументи
база Изчислете линейна регресия лм() формула, данни
база Обобщаване на модела обобщавам() годен
база Извличане на коефициенти lm()$коефициент
база Извлечете остатъците lm()$ остатъци
база Извличане на монтирана стойност lm()$fitted.values
olsrr Изпълнете поетапна регресия ols_stepwise() годност, pent = 0.1, prem = 0.3, детайли = FALSE

Забележка: Не забравяйте да трансформирате категориалната променлива във фактор, преди да паснете на модела.