Introduction Complète à la Régression Linéaire dans R

la régression Linéaire est utilisée pour prédire la valeur d’une variable continue Y basés sur une ou plusieurs variables prédictives X. Le but est d’établir une formule mathématique entre la variable de réponse (Y) et les variables prédictives (Xs). Vous pouvez utiliser cette formule pour prédire Y, lorsque seules les valeurs X sont connues.

Introduction complète à la régression linéaire avec R. (Photo de Stacy Wyss)Contents1. Introduction à la régression linéaire
2., Exemple de problème
3. Analyse graphique
— Utilisation du nuage de points pour visualiser la relation
— Utilisation de BoxPlot pour vérifier les valeurs aberrantes
– Utilisation du diagramme de densité pour vérifier si la Variable de réponse est proche de la normale
4. Qu’est-ce que L’analyse de corrélation?
5. Construire le modèle de régression linéaire
6. Diagnostic de régression linéaire
– Utilisation de la valeur P pour vérifier la signification statistique
– Quelle est L’hypothèse nulle et alternative?r— – qu’est-ce que la valeur t?
– comment calculer la statistique t et les valeurs P?
-R-carré et R— carré ajusté
-erreur Standard et F-statistique
7., Comment savoir quel modèle de régression convient le mieux aux données?
8. Prédiction de modèles linéaires
9. Qu’est – ce que la validation croisée k-Fold et son but?
10. Où aller à partir d’ici?

1. Introduction à la régression linéaire

la régression linéaire est l’une des techniques de modélisation prédictive les plus couramment utilisées. Le but de la régression linéaire est de trouver une équation mathématique pour une variable de réponse continue Y en fonction d’une ou plusieurs variables X. De sorte que vous pouvez utiliser ce modèle de régression pour prédire le Y lorsque seul le X est connu.,

cette équation mathématique peut être généralisée comme suit:

where y = \beta_{1} + \beta_{2} x + \Epsilon?

où,?1 est l’interception et ?2 est la pente.

collectivement, ils sont appelés coefficients de régression et ? est le terme d’erreur, la partie de Y le modèle de régression est incapable d’expliquer.

Régression Linéaire

Exemple

Pour cette analyse, nous allons utiliser la balise cars dataset qui vient avec R par défaut.,

cars est un ensemble de données intégré standard, qui permet de montrer la régression linéaire de manière simple et facile à comprendre.

Vous pouvez accéder à cet ensemble de données en tapantcars dans votre console R.

Vous trouverez qu’il est composé de 50 observations(lignes) et de 2 variables (colonnes) � dist et speed. Permet d’imprimer les six premières observations ici.,

head(cars) 
#> speed dist#> 1 4 2#> 2 4 10#> 3 7 4#> 4 7 22#> 5 8 16#> 6 9 10

Le but ici est d’établir une équation mathématique pour le dist en fonction de speed, de sorte que vous pouvez l’utiliser pour prédire dist lorsque seule la balise speed de la voiture est connu.

il est Donc souhaitable de construire un modèle de régression linéaire avec la variable de réponse dist et la prédiction de speed.

avant de commencer à construire le modèle de régression, il est recommandé d’analyser et de comprendre les variables.,

l’analyse graphique et l’étude de corrélation ci-dessous aideront à cela.

l’Analyse Graphique

Le but de cet exercice est de construire un modèle de régression simple que vous pouvez utiliser pour prédire la Distance (dist).

Ceci est possible par l’établissement d’une formule mathématique entre la Distance (dist) et la Vitesse (speed).

Mais avant de passer à la syntaxe, essayons de comprendre graphiquement ces variables.,

typiquement, pour chacun des prédicteurs, les tracés suivants aident à visualiser les motifs:

  • nuage de points: Visualisez la relation linéaire entre le prédicteur et la réponse
  • Box plot: pour repérer les observations aberrantes dans la variable. Avoir des valeurs aberrantes dans votre prédicteur peut affecter considérablement les prédictions car elles peuvent affecter la direction / la pente de la ligne de meilleur ajustement.
  • diagramme de densité: pour voir la distribution de la variable de prédicteur. Idéalement, une distribution proche de la normale (une courbe en forme de cloche), sans être biaisée vers la gauche ou la droite est préférée.,

voyons comment faire chacun d’eux.

utiliser le nuage de points pour visualiser la relation

Les nuages de points peuvent aider à visualiser les relations linéaires entre la réponse et les variables prédictives.

idéalement, si vous avez de nombreuses variables prédictives, un nuage de points est dessiné pour chacune d’entre elles par rapport à la réponse, ainsi que la ligne de meilleur ajustement comme indiqué ci-dessous.,

scatter.smooth(x=cars$speed, y=cars$dist, main="Dist ~ Speed") 
nuage de points Distance Vs Vitesse

le nuage de points avec la ligne de lissage ci-dessus suggère une relation linéaire et positive entre ledist .

C’est une bonne chose.

parce que, l’une des hypothèses sous-jacentes de la régression linéaire est que la relation entre la réponse et les variables prédictives est linéaire et additive.,

utilisation de BoxPlot pour vérifier les valeurs aberrantes

généralement, une valeur aberrante est tout point de données situé en dehors de la plage inter quartile 1,5 * (IQR).

IQR est calculé comme la distance entre les valeurs du 25e percentile et du 75e percentile pour cette variable.,

Boxplots de la Vitesse et de la Distance

Utilisation de la Densité de la Parcelle afin De Vérifier Si la Variable de Réponse Est Proche De la Normale

La densité de la Parcelle Pour la Vitesse et la Distance

4. Qu’est-ce que L’analyse de corrélation?

L’analyse de corrélation étudie la force de la relation entre deux variables continues. Il s’agit de calculer le coefficient de corrélation entre les deux variables.,

alors, qu’est-ce que la corrélation? Et en quoi est-ce utile dans la régression linéaire?

la corrélation est une mesure statistique qui montre le degré de dépendance linéaire entre deux variables.

pour calculer la corrélation, les deux variables doivent se produire dans les paires, comme ce que nous avons ici avec des speed et dist.

La corrélation peut prendre des valeurs comprises entre -1 et +1.

Si l’une des variables augmente avec l’augmentation de la valeur de l’autre, puis ils ont une forte corrélation positive (valeur proche de +1).,

de même, si l’un diminue systématiquement quand l’autre augmente, ils ont une forte corrélation négative (valeur proche de -1).

une valeur plus proche de 0 suggère une relation faible entre les variables.

Une faible corrélation (-0,2< x< 0,2) suggère probablement qu’une grande partie de la variation de la variable de réponse (Y) est inexpliquée par le prédicteur (X). Dans ce cas, vous devriez probablement chercher de meilleures variables explicatives.,

Si vous observez l’ensemble de donnéescars dans la console R, pour chaque instance où la vitesse augmente, la distance augmente également avec elle.

cela signifie qu’il existe une forte relation positive entre eux. Ainsi, la corrélation entre eux sera plus proche de 1.

Cependant, la corrélation n’implique pas causalité.

en d’autres termes, si deux variables ont une corrélation élevée, cela ne signifie pas qu’une variable ’provoque’ l’augmentation de la valeur de l’autre variable.

la corrélation n’est qu’une aide pour comprendre la relation., Vous ne pouvez compter que sur la logique et le raisonnement commercial pour porter ce jugement.

alors, comment calculer la corrélation dans R?

utilisez simplement la fonctioncor() avec les deux variables numériques comme arguments.

cor(cars$speed, cars$dist) 
#> 0.8068949

construire le modèle de régression linéaire

maintenant que vous avez vu la relation linéaire de manière imagée dans le nuage de points et par corrélation, essayons de construire le modèle de régression linéaire.

La fonction utilisée pour la construction de modèles linéaires est lm().,

Le lm() fonction prend deux arguments principaux:

  1. Formule
  2. Données

Les données sont généralement un data.frame objet et la formule est un objet de la classe formula.

Mais la convention la plus courante est d’écrire la formule directement comme écrit ci-dessous.

en construisant le modèle de régression linéaire, nous avons établi la relation entre le prédicteur et la réponse sous la forme d’une formule mathématique.

C’est la Distance (dist) en tant que fonction pourspeed.,

pour la sortie ci-dessus, vous pouvez remarquer les Coefficients suivants: -17.579, vitesse: 3.932.

On les appelle aussi les coefficients bêta. En d’autres termes,

Dis dist?=?Intercepter?+?(????la vitesse)$$

=> dist = ?17.579 + 3.932?vitesse

diagnostic de régression linéaire

maintenant, le modèle linéaire est construit et vous avez une formule que vous pouvez utiliser pour prédire la valeurdist si unspeed correspondant est connu.

Est-ce suffisant pour réellement utiliser ce modèle? NON!,

car, avant d’utiliser un modèle de régression pour faire des prédictions, vous devez vous assurer qu’il est statistiquement significatif. Mais Comment vous assurez-vous de cela?

commençons par imprimer les statistiques récapitulatives pourlinearMod.

utiliser la valeur p pour vérifier la signification statistique

les statistiques récapitulatives ci-dessus nous disent un certain nombre de choses.

l’un d’eux est la valeur p du modèle (dans la dernière ligne) et la valeur p des variables prédictives individuelles (colonne extrême droite sous les Coefficients usuels).

Les valeurs p sont très importantes.,

parce que, nous ne pouvons considérer un modèle linéaire comme statistiquement significatif que lorsque ces deux valeurs p sont inférieures au niveau de signification statistique prédéterminé de 0,05.

cela peut être interprété visuellement par les étoiles de signification à la fin de la ligne par rapport à chaque variable X.

plus il y a d’étoiles à côté de la variable, plus la variable est significative.

Quelle est L’hypothèse nulle et alternative?

chaque fois qu’il y a une valeur p, Il y a toujours une hypothèse nulle et alternative associée.

Alors, quelle est l’hypothèse nulle dans ce cas?,

en régression linéaire, L’hypothèse nulle (H0) est que les coefficients bêta associés aux variables sont égaux à zéro.

l’hypothèse alternative (H1) est que les coefficients ne sont pas égaux à zéro. (il en existe une relation entre la variable indépendante en question et la variable dépendante).

qu’est-Ce que t-valeur?

Nous pouvons interpréter la valeur t quelque chose comme ceci. Une valeur t plus grande indique qu’il est moins probable que le coefficient ne soit pas égal à zéro purement par hasard. Donc, plus la valeur t est élevée, mieux c’est.,

Pr (>| t/) ou p-value est la probabilité que vous obteniez une valeur t aussi élevée ou supérieure à la valeur observée lorsque l’hypothèse nulle (la ? le coefficient est égal à zéro ou qu’il n’y a pas de relation) est vrai.

Ce que cela signifie pour nous?

lorsque la valeur p est inférieure au niveau de signification (< 0.05), vous pouvez rejeter en toute sécurité l’hypothèse nulle que le co-efficace ? du prédicteur est égale à zéro.

dans notre cas,linearMod, ces deux valeurs p sont bien en dessous du seuil de 0,05.,

Vous pouvez donc rejeter l’hypothèse nulle et conclure que le modèle est en effet statistiquement significatif.

Il est très important que le modèle soit statistiquement significatif avant de pouvoir l’utiliser pour prédire la variable dépendante. Sinon, la confiance dans les valeurs prédites de ce modèle diminue et peut être interprétée comme un événement fortuit.

comment calculer la statistique t et les valeurs p?

Lorsque les coefficients du modèle et l’erreur-type sont connus, la formule de calcul de la Statistique t et la p-Valeur est la suivante:

$$t?Statistique = {??,coefficient \sur MST.Error}

Si vous souhaitez calculer certaines statistiques par code manuel, l’extrait ci-dessous montre comment.

R-Squared et Adj R-Squared

l’information réelle dans une donnée est la variation totale qu’elle contient, rappelez-vous?.

Ce Que R-Squared nous dit, c’est la proportion de variation de la variable dépendante (réponse) qui a été expliquée par ce modèle.,

R calcul au carré

rappelez-vous, l’information totale dans une variable est la quantité de variation qu’elle contient.

$$ R^{2} = 1 – \frac{RSS}{TSS}$$

où, RSS est la Somme Résiduelle des Carrés donnée par

$$RSS = \sum_{i}^{n} \left( y_{i} – \hat{y_{i}} \right) ^{2}$$
et la Somme des Carrés Totale est donnée par
$$SCT = \sum_{i}^{n} \left( y_{i} – \bar{y_{i}} \right) ^{2}$$

Ici, y-hat est équipé de la valeur pour l’observation i et y-bar est la moyenne de Y.,

Nous ne rejetons pas nécessairement un modèle basé sur une valeur R au carré faible.

pour comparer l’efficacité de deux modèles de régression différents, il est recommandé d’utiliser l’échantillon de validation pour comparer l’AIC des deux modèles.

outre L’AIC, d’autres mesures d’évaluation telles que l’erreur Moyenne en pourcentage absolu (MAPE), L’erreur moyenne au carré (MSE) et L’erreur moyenne absolue (MAE) peuvent également être utilisées.

c’est à propos de R-Squared. Maintenant, qu’en est-il ajusté R-carré?

Qu’est-ce qu’un R-carré ajusté?,

lorsque vous ajoutez plus de variables X à votre modèle, la valeur R Au Carré du nouveau modèle plus grand sera toujours supérieure à celle du sous-ensemble plus petit.

Pouvez-vous imaginer pourquoi?

en effet, puisque toutes les variables du modèle original sont également présentes, leur contribution à l’explication de la variable dépendante sera également présente dans le super-ensemble.

par conséquent, la nouvelle variable que vous ajoutez ne peut qu’ajouter (sinon de manière significative) à la variation déjà expliquée.

c’est ici, la valeur ajustée R-carré vient aider.,

Le R-carré ajusté est formulé de telle sorte qu’il pénalise le nombre de termes (prédicteurs de lecture) dans votre modèle.

donc, contrairement à R-sq, à mesure que le nombre de prédicteurs dans le modèle augmente, l’adj-R-sq peut ne pas toujours augmenter.

par conséquent, lors de la comparaison de modèles imbriqués, il est recommandé de comparer en utilisant adj-R-squared plutôt que simplement R-squared.,

$$ R^{2}_{adj} = 1 – \frac{MSE}{MST}$$

où, MSE est l’erreur quadratique moyenne donnée par

$$MSE = \frac{RSS}{\left( n-q \right)}$$

et MST est la moyenne des carrés totale donnée par

$$MST = \frac{TSS}{\left( n-1 \right)}$$

où n est le nombre d’observations et q est le nombre de coefficients dans le modèle.,

Par conséquent, en se déplaçant autour des numérateurs et des dénominateurs, la relation entre R2 et Radj2 devient:

r r^{2}_{adj} = 1 – \left( \frac{\Left( 1 – R^{2}\right) \left(n-1\Right)}{n-Q}\right)

erreur type et F-statistique

Les erreurs types et F-statistique sont toutes deux des mesures en forme.

st STD., Error = \sqrt{MSE} = \sqrt{\frac{SSE}{n-q}}

F F-Statistic = \frac{MSR}{MSE}

où, n est le nombre d’observations, Q est le nombre de coefficients et MSR est la régression carrée moyenne, calculée comme,

m MSR=\FRAC{\sum_{i}^{n}\left( \hat{y_{I} – \bar{y}}\right)}{q-1} = \frac{SST – SSE}{Q – 1}

plus la statistique F est élevée, mieux elle est.

qu’est-ce que L’AIC et le BIC?,
Le critère D’information d’Akaike s-AIC (Akaike, 1974) et le critère D’information bayésien – BIC (Schwarz, 1978) sont des mesures de la qualité de l’ajustement du modèle de régression linéaire et peuvent également être utilisés pour la sélection du modèle.

Les deux critères dépendent de la valeur maximisée de la fonction de vraisemblance L pour le modèle estimé.

L’AIC est défini comme suit:

AIC?=?(?2)?�?ln (L)?+?(2 pour k)

où, k est le nombre de paramètres du modèle et le BIC est défini comme:

BIC?=?(?2)?�?ln (L)?+?k?�?ln(n)

où n est la taille de l’échantillon.,

pour la comparaison de Modèles, le modèle avec les scores AIC et BIC les plus faibles est préféré.

AIC(linearMod) #=> 419.1569BIC(linearMod) #=> BIC => 424.8929

Comment savoir quel modèle de régression convient le mieux aux données?,

La plupart des indicateurs communs à regarder tout en sélectionnant le modèle sont les suivantes:

STATISTIQUES CRITÈRE
R-Squared Plus le mieux
Adj R-Squared Plus le mieux
F-Statistic Plus le mieux
Std. Erreur plus Proche de zéro, le mieux
t-statistic Doit être supérieure à 1,96 pour la p-valeur est inférieure à 0.,td>inférieur le meilleur
Mallows cp devrait être proche du nombre de prédicteurs dans le modèle
MAPE (erreur Moyenne en pourcentage absolu) inférieur le meilleur
MSE (erreur moyenne au carré) inférieur le meilleur
Min_max Accuracy => moyenne(min(réel, prédit)/max(réel, prédit)) plus le meilleur

prédire les modèles linéaires

jusqu’à présent, vous avez vu comment construire une régression linéaire Modèle utilisant L’ensemble de données., Si vous le construisez de cette façon, il n’y a aucun moyen de dire comment le modèle fonctionnera avec de nouvelles données.

la pratique préférée est donc de diviser votre ensemble de données en un échantillon 80:20 (training:test), puis de construire le modèle sur l’échantillon 80%, puis d’utiliser le modèle ainsi construit pour prédire la variable dépendante sur les données de test.

en le faisant de cette façon, nous aurons les valeurs prédites du modèle pour les données 20% (test) ainsi que les valeurs réelles (à partir du jeu de données d’origine).

en calculant des mesures de précision (comme la précision min_max) et des taux d’erreur (MAPE ou MSE), vous pouvez connaître la précision de prédiction du modèle.,

Maintenant, permet de voir comment le faire.

Étape 1: Créer les données de formation et de test

cela peut être fait en utilisant la fonctionsample(). Assurez-vous simplement de définir la graine en utilisant set.seed() afin que les échantillons puissent être recréés pour une utilisation future.

Étape 2: Ajustez le modèle sur des données d’entraînement et prédisez dist sur des données d’essai

Étape 3: examinez les mesures diagnostiques.

D’après le résumé du modèle, la valeur p du modèle et la valeur p du prédicteur sont inférieures au niveau de signification.

Vous avez donc un modèle statistiquement significatif.,

de plus, les R-Sq et Adj R-Sq sont comparés au modèle original construit sur des données complètes.

Étape 4: calculer la précision de la prédiction et les taux d’erreur

Une simple corrélation entre les valeurs réelles et les valeurs prédites peut être utilisée comme une forme de mesure de précision.

Une plus grande précision de corrélation implique que les valeurs réelles et prédites ont un mouvement directionnel similaire, c’est-à-dire que lorsque les valeurs réelles augmentent, les valeurs prédites augmentent également et vice-versa.,

calculons maintenant la précision Min Max et MAPE:

min minmaxaccuracy = mean \left( \frac{min\left(actuals, predicteds\right)}{max\left(actuals, predicteds \right)} \right)

mean meanabsolutepercentageerror \ (Mape) = mean\left( \frac{ABS\left(predicteds?actuals \ right)} {actuals} \ right)

alternativement, vous pouvez calculer toutes les mesures d’erreur en une seule fois en utilisant la fonctionregr.eval() dans le package dmwr. Vous devrez install.packages('DMwR') pour cela, si vous l’utilisez pour la première fois.

Qu’est – ce que la validation croisée k-Fold et son but?,

supposons que le modèle prédit de manière satisfaisante sur la division de 20% (données de test), est-ce suffisant pour croire que votre modèle fonctionnera tout aussi bien tout le temps?

qu’est-ce que je veux dire par là?

Il est possible que peu de points de données ne soient pas représentatifs de la population sur laquelle le modèle a été construit.

par exemple, dans l’ensemble de données cars, supposons que la route en béton a été utilisée pour les tests sur route sur les données d’entraînement 80% tandis que la route boueuse a été utilisée pour les données d’essai 20% restantes.,

Si le modèle a été formé dans une telle configuration, vous ne pouvez pas vous attendre à ce que le modèle prédit ledist dans l’ensemble de données de test avec la même précision. Parce que tout simplement, il n’a pas appris la relation entre speed et dist dans un tel décor.

il est donc important de tester rigoureusement le modèle.

Une façon de faire ce test rigoureux, est de vérifier si l’équation du modèle fonctionne aussi bien, lorsqu’il est formé et testé sur différents morceaux distincts de données.,

c’est exactement ce que fait la validation croisée k-Fold. Voici comment cela fonctionne:

  1. Divisez vos données en deux parties d’échantillons aléatoires mutuellement exclusives.
  2. ensuite, construisez de manière itérative k modèles, en conservant l’un des k-sous-ensembles comme données de test à chaque fois.

à chaque itération, nous construisons le modèle sur les données restantes (K-1 partie) et calculons l’erreur quadratique moyenne des prédictions sur le k’th sous-ensemble.

  1. enfin, la moyenne de ces erreurs moyennes au carré (pour les portions K) est calculée.

Vous pouvez utiliser cette métrique pour comparer les différents modèles linéaires.,

en faisant cela, vous devez vérifier deux choses à partir des prédictions k-fold:

  1. Si la précision de prédiction du modèle K-fold ne varie pas trop pour un échantillon particulier, et
  2. Si les lignes de meilleur ajustement des K-folds ne varient pas trop par rapport à la pente et au niveau.

En d’autres termes, ils doivent être parallèles et proches les uns des autres que possible. C’est ce que révèle le graphique de validation croisée K-fold (ci-dessous).

dans le graphique ci-dessous, les lignes pointillées sont-elles parallèles?, Les petits et les grands symboles ne sont-ils pas trop dispersés pour une couleur particulière?

Validation Croisée de l’Intrigue dans les R

Où aller à partir d’ici?

Nous avons couvert les concepts de base de la régression linéaire. En plus de cela, vous devez comprendre que la régression linéaire est basée sur certaines hypothèses sous-jacentes qui doivent être prises en compte, en particulier lorsque vous travaillez avec plusieurs Xs., Une fois que vous êtes familiarisé avec cela, les modèles de régression avancés vous montreront les différents cas particuliers où une forme différente de régression serait plus appropriée.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *