R Régression linéaire pas à pas et multiple [Exemple étape par étape]

Régression linéaire simple dans R

La régression linéaire répond à une question simple : pouvez-vous mesurer une relation exacte entre une variable cible et un ensemble de prédicteurs ?

Le modèle probabiliste le plus simple est le modèle linéaire :

Régression linéaire simple dans R

  • y = Variable dépendante
  • x = Variable indépendante
  • Régression linéaire simple dans R = composante d'erreur aléatoire
  • Régression linéaire simple dans R = intercepter
  • Régression linéaire simple dans R = Coefficient de x

Considérons le tracé suivant :

Régression linéaire simple dans R

L'équation est Régression linéaire simple dans R est l'interception. Si x est égal à 0, y sera égal à l'ordonnée à l'origine, 4.77. est la pente de la droite. Il indique dans quelle proportion y varie lorsque x varie.

Pour estimer les valeurs optimales de Régression linéaire simple dans R et le Régression linéaire simple dans R, vous utilisez une méthode appelée Moindres carrés ordinaires (OLS). Cette méthode tente de trouver les paramètres qui minimisent la somme des erreurs quadratiques, c'est-à-dire la distance verticale entre les valeurs y prédites et les valeurs y réelles. La différence est connue sous le nom de terme d'erreur.

Avant d'estimer le modèle, vous pouvez déterminer si une relation linéaire entre y et x est plausible en traçant un nuage de points.

nuage de points

Nous utiliserons un ensemble de données très simple pour expliquer le concept de régression linéaire simple. Nous importerons les tailles et poids moyens des femmes américaines. L'ensemble de données contient 15 observations. Vous souhaitez mesurer si les hauteurs sont positivement corrélées aux poids.

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

Sortie :

nuage de points

Le nuage de points suggère une tendance générale pour y à augmenter à mesure que x augmente. À l'étape suivante, vous mesurerez le montant des augmentations pour chaque augmentation supplémentaire.

Estimations des moindres carrés

Dans une régression OLS simple, le calcul de Estimations des moindres carrés et le Estimations des moindres carrés est simple. Le but n'est pas de montrer la dérivation dans ce tutoriel. Vous écrirez uniquement la formule.

Vous souhaitez estimer : Estimations des moindres carrés

Le but de la régression OLS est de minimiser l’équation suivante :

Estimations des moindres carrés

Estimations des moindres carrés est la valeur réelle et Estimations des moindres carrés est la valeur prédite.

La solution pour Estimations des moindres carrés is Estimations des moindres carrés

Notez que Estimations des moindres carrés signifie la valeur moyenne de x

La solution pour Estimations des moindres carrés is Estimations des moindres carrés

Dans R, vous pouvez utiliser les fonctions cov() et var() pour estimer Estimations des moindres carrés et vous pouvez utiliser la fonction Mean() pour estimer Estimations des moindres carrés

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

Sortie :

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

Sortie :

## [1] -87.51667

Le coefficient bêta implique que pour chaque taille supplémentaire, le poids augmente de 3.45.

L’estimation manuelle d’une équation linéaire simple n’est pas idéale. R fournit une fonction appropriée pour estimer ces paramètres. Vous verrez cette fonction sous peu. Avant cela, nous présenterons comment calculer manuellement un modèle de régression linéaire simple. Au cours de votre parcours de data scientist, vous n’estimerez presque jamais un modèle linéaire simple. Dans la plupart des situations, les tâches de régression sont effectuées sur un grand nombre d’estimateurs.

Régression linéaire multiple dans R

Les applications plus pratiques de l'analyse de régression utilisent des modèles plus complexes que le simple modèle linéaire. Le modèle probabiliste qui inclut plus d'une variable indépendante est appelé modèles de régression multiples. La forme générale de ce modèle est :

Régression linéaire multiple dans R

En notation matricielle, vous pouvez réécrire le modèle :

  • Régression linéaire multiple dans R

La variable dépendante y est désormais fonction de k variables indépendantes. La valeur du coefficient Régression linéaire multiple dans R détermine la contribution de la variable indépendante Régression linéaire multiple dans R et le Régression linéaire multiple dans R.

Nous présentons brièvement l'hypothèse que nous avons faite sur l'erreur aléatoire Régression linéaire multiple dans R de l'OLS :

  • Moyenne égale à 0
  • Écart égal à Régression linéaire multiple dans R
  • Distribution normale
  • Les erreurs aléatoires sont indépendantes (au sens probabiliste)

Vous devez résoudre pour Régression linéaire multiple dans R, le vecteur de coefficients de régression qui minimisent la somme des erreurs quadratiques entre les valeurs y prédites et réelles.

La solution sous forme fermée est :

Régression linéaire multiple dans R

avec:

  • indique le transposer de la matrice X
  • Régression linéaire multiple dans R indique le matrice inversible

Nous utilisons l'ensemble de données mtcars. Vous connaissez déjà l'ensemble de données. Notre objectif est de prédire le kilométrage par gallon sur un ensemble de fonctionnalités.

Variables continues dans R

Pour l’instant, vous n’utiliserez que les variables continues et mettrez de côté les fonctionnalités catégorielles. La variable am est une variable binaire prenant la valeur 1 si la transmission est manuelle et 0 pour les voitures automatiques ; vs est également une variable binaire.

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

Sortie :

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

Vous pouvez utiliser la fonction lm() pour calculer les paramètres. La syntaxe de base de cette fonction est :

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

N'oubliez pas qu'une équation est de la forme suivante

Variables continues dans R

en R

  • Le symbole = est remplacé par ~
  • Chaque x est remplacé par le nom de la variable
  • Si vous souhaitez supprimer la constante, ajoutez -1 à la fin de la formule

Mise en situation :

Vous souhaitez estimer le poids des individus en fonction de leur taille et de leurs revenus. L'équation est

Variables continues dans R

L’équation dans R s’écrit comme suit :

y ~ X1+ X2+…+Xn # Avec interception

Donc pour notre exemple :

  • Pesée ~ taille + revenu

Votre objectif est d'estimer le mile par gallon en fonction d'un ensemble de variables. L'équation à estimer est :

Variables continues dans R

Vous estimerez votre première régression linéaire et stockerez le résultat dans l'objet d'ajustement.

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

Explication du code

  • modèle <- mpg ~. disp + hp + drat+ wt : stocker le modèle à estimer
  • lm(model, df) : Estimer le modèle avec la trame de données 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	

Le résultat ne fournit pas suffisamment d’informations sur la qualité de l’ajustement. Vous pouvez accéder à plus de détails tels que la signification des coefficients, le degré de liberté et la forme des résidus avec la fonction summary().

summary(fit)

Sortie :

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

Inférence à partir de la sortie du tableau ci-dessus

  • Le tableau ci-dessus prouve qu'il existe une forte relation négative entre le poids et le kilométrage et une relation positive avec le poids.
  • Seule la variable poids a un impact statistique sur le mpg. Rappelons que pour tester une hypothèse en statistique, on utilise :
    • H0 : Pas d’impact statistique
    • H3 : Le prédicteur a un impact significatif sur y
    • Si la valeur p est inférieure à 0.05, cela indique que la variable est statistiquement significative
  • R-carré ajusté : Variance expliquée par le modèle. Dans votre modèle, le modèle explique 82 % de la variance de y. R au carré est toujours compris entre 0 et 1. Plus il est élevé, mieux c'est

Vous pouvez exécuter le ANOVA test pour estimer l'effet de chaque fonctionnalité sur les variances avec la fonction anova().

anova(fit)

Sortie :

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

Une manière plus conventionnelle d’estimer les performances du modèle consiste à afficher le résidu par rapport à différentes mesures.

Vous pouvez utiliser la fonction plot() pour afficher quatre graphiques :

– Résidus vs valeurs ajustées

– Tracé QQ normal : quartile théorique vs résidus standardisés

– Echelle-Localisation : Valeurs ajustées vs Racines carrées des résidus standardisés

– Résidus vs effet de levier : effet de levier vs résidus standardisés

Vous ajoutez le code par(mfrow=c(2,2)) avant plot(fit). Si vous n'ajoutez pas cette ligne de code, R vous invite à appuyer sur la commande Entrée pour afficher le graphique suivant.

par(mfrow=(2,2))

Explication du code

  • (mfrow=c(2,2)) : renvoie une fenêtre avec les quatre graphiques côte à côte.
  • Les 2 premiers ajoutent le nombre de lignes
  • Le second 2 ajoute le nombre de colonnes.
  • Si vous écrivez (mfrow=c(3,2)) : vous créerez une fenêtre de 3 lignes et 2 colonnes
plot(fit)

Sortie :

Variables continues dans R

La formule lm() renvoie une liste contenant de nombreuses informations utiles. Vous pouvez y accéder avec l'objet fit que vous avez créé, suivi du signe $ et des informations que vous souhaitez extraire.

– coefficients : `fit$coefficients`

– résidus : `fit$residuals`

– valeur ajustée : `fit$fitted.values`

Régression des facteurs dans R

Dans la dernière estimation du modèle, vous régressez mpg sur des variables continues uniquement. Il est simple d’ajouter des variables factorielles au modèle. Vous ajoutez la variable am à votre modèle. Il est important de s'assurer que la variable est un niveau de facteur et non continue.

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

Sortie :

## 
## 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 utilise le premier niveau de facteur comme groupe de base. Vous devez comparer les coefficients de l’autre groupe avec ceux du groupe de base.

Régression linéaire pas à pas dans R

La dernière partie de ce tutoriel traite du régression pas à pas algorithme. Le but de cet algorithme est d'ajouter et de supprimer des candidats potentiels dans les modèles et de conserver ceux qui ont un impact significatif sur la variable dépendante. Cet algorithme est significatif lorsque l'ensemble de données contient une grande liste de prédicteurs. Vous n'avez pas besoin d'ajouter et de supprimer manuellement les variables indépendantes. La régression pas à pas est construite pour sélectionner les meilleurs candidats pour correspondre au modèle.

Voyons en action comment cela fonctionne. Vous utilisez l'ensemble de données mtcars avec les variables continues uniquement à des fins d'illustration pédagogique. Avant de commencer l'analyse, il est bon d'établir les variations entre les données avec une matrice de corrélation. La bibliothèque GGally est une extension de ggplot2.

La bibliothèque comprend différentes fonctions pour afficher des statistiques récapitulatives telles que la corrélation et la distribution de toutes les variables d'une matrice. Nous utiliserons la fonction ggscatmat, mais vous pouvez vous référer au vignette pour plus d'informations sur la bibliothèque GGally.

La syntaxe de base de ggscatmat() est :

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

Vous affichez la corrélation pour toutes vos variables et décidez laquelle sera la meilleure candidate pour la première étape de la régression pas à pas. Il existe de fortes corrélations entre vos variables et la variable dépendante, mpg.

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

Sortie :

Régression linéaire pas à pas dans R

Exemple de régression pas à pas étape par étape

La sélection des variables est un élément important pour ajuster un modèle. La régression pas à pas effectuera automatiquement le processus de recherche. Pour estimer le nombre de choix possibles dans l'ensemble de données, vous calculez Exemple de régression pas à pas étape par étape avec k est le nombre de prédicteurs. Le nombre de possibilités augmente avec le nombre de variables indépendantes. C'est pourquoi vous devez effectuer une recherche automatique.

Vous devez installer le package olsrr depuis CRAN. Le package n’est pas encore disponible dans Anaconda. Par conséquent, vous l’installez directement depuis la ligne de commande :

install.packages("olsrr")

Vous pouvez tracer tous les sous-ensembles de possibilités avec les critères d'ajustement (c'est-à-dire R-carré, R-carré ajusté, critères bayésiens). Le modèle avec les critères AIC les plus bas sera le modèle final.

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

Explication du code

  • mpg ~.: Construire le modèle pour estimer
  • lm(modèle, df) : exécuter le modèle OLS
  • ols_all_subset(ajustement) : Construire les graphiques avec les informations statistiques pertinentes
  • tracé(test): Tracez les graphiques

Sortie :

Exemple de régression pas à pas étape par étape

Les modèles de régression linéaire utilisent le test t pour estimer l’impact statistique d’une variable indépendante sur la variable dépendante. Les chercheurs ont fixé le seuil maximum à 10 pour cent, des valeurs plus faibles indiquant un lien statistique plus fort. La stratégie de régression pas à pas est construite autour de ce test pour ajouter et supprimer des candidats potentiels. L'algorithme fonctionne comme suit :

Régression linéaire pas à pas dans R
Régression linéaire pas à pas dans R
  • Étape 1: Régressez chaque prédicteur sur y séparément. À savoir, régressez x_1 sur y, x_2 sur y vers x_n. Conservez le p-valeur et conservez le régresseur avec une valeur de p inférieure à un seuil défini (0.1 par défaut). Les prédicteurs dont la signification est inférieure au seuil seront ajoutés au modèle final. Si aucune variable n'a une valeur p inférieure au seuil d'entrée, alors l'algorithme s'arrête et vous obtenez votre modèle final avec une constante uniquement.
  • Étape 2 : utilisez le prédicteur avec la valeur p la plus basse et ajoutez séparément une variable. Vous régressez une constante, le meilleur prédicteur de la première étape et une troisième variable. Vous ajoutez au modèle pas à pas, les nouveaux prédicteurs avec une valeur inférieure au seuil d'entrée. Si aucune variable n'a une valeur p inférieure à 0.1, alors l'algorithme s'arrête et vous obtenez votre modèle final avec un seul prédicteur. Vous régressez le modèle pas à pas pour vérifier la signification des meilleurs prédicteurs de l'étape 1. S'il est supérieur au seuil de suppression, vous le conservez dans le modèle pas à pas. Sinon, vous l'excluez.
  • Étape 3: Vous reproduisez l’étape 2 sur le nouveau meilleur modèle pas à pas. L'algorithme ajoute des prédicteurs au modèle pas à pas en fonction des valeurs saisies et exclut le prédicteur du modèle pas à pas s'il ne satisfait pas au seuil d'exclusion.
  • L'algorithme continue jusqu'à ce qu'aucune variable ne puisse être ajoutée ou exclue.

Vous pouvez exécuter l'algorithme avec la fonction ols_stepwise() du package 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

Avant cela, nous vous montrons les étapes de l'algorithme. Vous trouverez ci-dessous un tableau avec les variables dépendantes et indépendantes :

Variable dépendante Variables indépendantes
mpg disp
hp
idiot
wt
qsec

Accueille

Pour commencer, l’algorithme commence par exécuter le modèle sur chaque variable indépendante séparément. Le tableau montre la valeur p pour chaque modèle.

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

Pour entrer dans le modèle, l'algorithme conserve la variable avec la valeur p la plus basse. D'après la sortie ci-dessus, c'est le poids

Étape 1

Dans un premier temps, l'algorithme exécute mpg sur wt et les autres variables indépendamment.

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

Chaque variable est un candidat potentiel pour entrer dans le modèle final. Cependant, l’algorithme ne conserve que la variable ayant la valeur p la plus faible. Il s'avère que hp a une valeur p légèrement inférieure à qsec. Par conséquent, hp entre dans le modèle final

Étape 2

L'algorithme répète la première étape mais cette fois avec deux variables indépendantes dans le modèle final.

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

Aucune des variables entrées dans le modèle final n'a une valeur p suffisamment faible. L'algorithme s'arrête ici ; nous avons le modèle final :

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

Vous pouvez utiliser la fonction ols_stepwise() pour comparer les résultats.

stp_s <-ols_stepwise(fit, details=TRUE)

Sortie :

L'algorithme trouve une solution après 2 étapes et renvoie le même résultat qu'avant.

À la fin, vous pouvez dire que le modèle s'explique par deux variables et une ordonnée à l'origine. Le mile par gallon est négativement corrélé à la puissance brute et au poids

## 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 est de plus en plus répandu parmi les data scientists et est déployé dans des centaines de produits que vous utilisez quotidiennement. L'une des premières applications ML a été filtre anti-spam.

Voici d’autres applications de l’apprentissage automatique :

  • Identification des messages de spam indésirables dans les e-mails
  • Segmentation du comportement client pour une publicité ciblée
  • Réduction des transactions frauduleuses par carte de crédit
  • Optimisation de la consommation d'énergie dans les immeubles résidentiels et de bureaux
  • La reconnaissance faciale

Apprentissage supervisé

In Apprentissage supervisé, les données d'entraînement que vous fournissez à l'algorithme incluent une étiquette.

Classification est probablement la technique d’apprentissage supervisé la plus utilisée. L’une des premières tâches de classification auxquelles les chercheurs se sont attaqués a été le filtre anti-spam. L'objectif de l'apprentissage est de prédire si un email est classé comme spam ou ham (bon email). La machine, après l'étape de formation, peut détecter la classe de l'email.

Régressions sont couramment utilisés dans le domaine de l’apprentissage automatique pour prédire une valeur continue. La tâche de régression peut prédire la valeur d'un variable dépendante basé sur un ensemble de variables indépendantes (également appelés prédicteurs ou régresseurs). Par exemple, les régressions linéaires peuvent prédire le cours d’une action, les prévisions météorologiques, les ventes, etc.

Voici la liste de quelques algorithmes fondamentaux d’apprentissage supervisé.

  • Régression linéaire
  • Régression logistique
  • Voisins les plus proches
  • Machine à vecteur de support (SVM)
  • Arbres de décision et Random Forest
  • Les réseaux de neurones

Apprentissage non supervisé

In Apprentissage non supervisé, les données d'entraînement ne sont pas étiquetées. Le système essaie d'apprendre sans référence. Vous trouverez ci-dessous une liste d'algorithmes d'apprentissage non supervisé.

  • K-moyenne
  • Hiérarchique Cluster Analyse
  • Maximisation des attentes
  • Visualisation et réduction de la dimensionnalité
  • Analyse des composants principaux
  • PCA du noyau
  • Incorporation localement linéaire

Résumé

  • La régression linéaire répond à une question simple : pouvez-vous mesurer une relation exacte entre une variable cible et un ensemble de prédicteurs ?
  • La méthode des moindres carrés ordinaires tente de trouver les paramètres qui minimisent la somme des erreurs quadratiques, c'est-à-dire la distance verticale entre les valeurs y prédites et les valeurs y réelles.
  • Le modèle probabiliste qui inclut plus d’une variable indépendante est appelé modèle de régression multiple.
  • Le but de l'algorithme de régression linéaire pas à pas est d'ajouter et de supprimer des candidats potentiels dans les modèles et de conserver ceux qui ont un impact significatif sur la variable dépendante.
  • La sélection des variables est un élément important pour ajuster un modèle. La régression pas à pas effectue automatiquement le processus de recherche.

La régression des moindres carrés ordinaires peut être résumée dans le tableau ci-dessous :

Bibliothèque Objectif Fonction Arguments
base Calculer une régression linéaire lm() formule, données
base Résumer le modèle résumer() s'adapter
base Extraire les coefficients lm()$coefficient
base Extraire les résidus lm()$résidus
base Extraire la valeur ajustée lm()$fitted.values
olsrr Exécuter une régression pas à pas ols_stepwise() ajustement, pent = 0.1, prem = 0.3, détails = FALSE

Notes: Pensez à transformer la variable catégorielle en facteur avant d'ajuster le modèle.