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 :
où
- y = Variable dépendante
- x = Variable indépendante
- = composante d'erreur aléatoire
- = intercepter
- = Coefficient de x
Considérons le tracé suivant :
L'équation est 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 et le , 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 :
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 et le est simple. Le but n'est pas de montrer la dérivation dans ce tutoriel. Vous écrirez uniquement la formule.
Vous souhaitez estimer :
Le but de la régression OLS est de minimiser l’équation suivante :
où
est la valeur réelle et est la valeur prédite.
La solution pour is
Notez que signifie la valeur moyenne de x
La solution pour is
Dans R, vous pouvez utiliser les fonctions cov() et var() pour estimer et vous pouvez utiliser la fonction Mean() pour estimer
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 :
En notation matricielle, vous pouvez réécrire le modèle :
La variable dépendante y est désormais fonction de k variables indépendantes. La valeur du coefficient détermine la contribution de la variable indépendante et le .
Nous présentons brièvement l'hypothèse que nous avons faite sur l'erreur aléatoire de l'OLS :
- Moyenne égale à 0
- Écart égal à
- Distribution normale
- Les erreurs aléatoires sont indépendantes (au sens probabiliste)
Vous devez résoudre pour , 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 :
avec:
- indique le transposer de la matrice X
- 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
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
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 :
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 :
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 :
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 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 :
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 :
- É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.