un guide étape par étape pour la régression linéaire dans R

la régression linéaire est un modèle de régression qui utilise une ligne droite pour décrire la relation entre les variables. Il trouve la ligne la mieux adaptée à vos données en recherchant la valeur du ou des coefficients de régression qui minimisent l’erreur totale du modèle.,

il existe deux principaux types de régression linéaire:

  • La régression linéaire Simple utilise une seule variable indépendante
  • La régression linéaire Multiple utilise deux ou plusieurs variables indépendantes

dans ce guide étape par étape, nous vous guiderons à travers la régression linéaire dans R en utilisant deux ensembles de données

régression linéaire Simple
le premier jeu de données contient des observations sur le revenu (dans une fourchette de 15k to à 75k$) et le bonheur (évalué sur une échelle de 1 à 10) dans un échantillon imaginaire de 500 personnes., Les valeurs de revenu sont divisées par 10 000 pour que les données de revenu correspondent à l’échelle des scores de bonheur (donc une valeur de 2 represents représente 20 000$, 3 is Est 30 000$, etc.)
régression linéaire Multiple
le deuxième jeu de données contient des observations sur le pourcentage de personnes qui se rendent au travail à vélo chaque jour, le pourcentage de personnes qui fument et le pourcentage de personnes atteintes de maladies cardiaques dans un échantillon imaginaire de 500 villes.

Téléchargez les exemples de jeux de données pour les essayer vous-même.,

jeu de données de régression simple jeu de données de régression Multiple

mise en route dans R

commencez par télécharger R et RStudio. Ensuite, ouvrez RStudio et cliquez sur Fichier > nouveau fichier > Script R.

Au fur et à mesure de chaque étape, vous pouvez copier et coller le code des zones de texte directement dans votre script. Pour exécuter le code, sélectionnez les lignes que vous souhaitez exécuter et cliquez sur le bouton en haut à droite de l’éditeur de texte (ou appuyez sur ctrl + enter sur le clavier).,p>

pour installer les paquets dont vous avez besoin pour l’analyse, exécutez ce code (vous n’avez besoin de le faire qu’une seule fois):

install.packages("ggplot2")
install.packages("dplyr")
install.packages("broom")
install.packages("ggpubr")

ensuite, chargez les paquets dans votre environnement R en exécutant ce code (vous devez le):

library(ggplot2)
library(dplyr)
library(broom)
library(ggpubr)

étape 1: charger les données dans R

suivez ces quatre étapes pour chaque jeu de données:

  1. dans RStudio, allez dans Fichier > importer un ensemble de données > à partir du texte (base).,
  2. Choisissez le fichier de données que vous avez téléchargé (revenu.de données ou de cœur.données), et une fenêtre Import Dataset apparaît.
  3. dans la fenêtre Data Frame, vous devriez voir une colonne X (index) et des colonnes répertoriant les données pour chacune des variables (revenu et bonheur ou vélo, tabagisme et cœur.maladie).
  4. cliquez sur le bouton Importer et le fichier doit apparaître dans l’onglet environnement en haut à droite de L’écran RStudio.

Après avoir chargé les données, vérifiez qu’elles ont été lues correctement en utilisantsummary().,

la régression Simple

summary(income.data)

Parce que nos deux variables sont quantitatives, lors de l’exécution de cette fonction, nous voyons une table dans notre console avec un numérique, un résumé des données.,Cela nous indique les valeurs minimales, médianes, moyennes et maximales de la variable indépendante (revenu) et de la variable dépendante (bonheur):

régression Multiple

summary(heart.data)

encore une fois, parce que les variables sont quantitatives, l’exécution du Code produit un résumé numérique des données pour les variables indépendantes (tabagisme et vélo) et la variable dépendante (maladie cardiaque):

core de plagiat?,

Comparez votre article avec plus de 60 milliards de pages web et 30 millions de publications.

  • Meilleur plagiat vérificateur de 2020
  • rapport de Plagiat & pourcentage
  • Plus gros plagiat de la base de données

Scribbr Plagiarism Checker

Étape 2: assurez-vous que vos données satisfont les hypothèses

On peut utiliser R pour vérifier que nos données rencontrer les quatre principales hypothèses utilisées pour la régression linéaire.,

régression Simple

  1. indépendance des observations (aka pas d’autocorrélation)

comme nous n’avons qu’une variable indépendante et une variable dépendante, nous n’avons pas besoin de tester les relations cachées entre les variables.

Si vous savez que vous avez une autocorrélation dans les variables (c’est-à-dire plusieurs observations du même sujet de test), alors ne procédez pas à une simple régression linéaire! Utilisez plutôt un modèle structuré, comme un modèle linéaire à effets mixtes.,

  1. la Normalité

Pour vérifier si la variable suit une distribution normale, utilisez la balise hist() fonction.

hist(income.data$happiness)

Les observations sont grossièrement en forme de cloche (plus d’observations au milieu de la distribution, moins sur les queues), nous pouvons donc procéder à la régression linéaire.

  1. Linéarité

La relation entre l’indépendance et la variable dépendante doit être linéaire., Nous pouvons tester visuellement avec un nuage de points pour voir si la répartition des points de données pourrait être décrite par une ligne droite.

plot(happiness ~ income, data = income.data)

La relation ressemble à peu près linéaire, afin que nous puissions procéder avec le modèle linéaire.

  1. Homoscédasticité (aka homogénéité de la variance)

cela signifie que l’erreur de prédiction ne change pas de manière significative sur la plage de prédiction du modèle. Nous pouvons tester cette hypothèse plus tard, après avoir ajusté le modèle linéaire.,

régression Multiple

  1. indépendance des observations (aka pas d’autocorrélation)

utilisez la fonctioncor() pour tester la relation entre vos variables indépendantes et assurez-vous qu’elles ne sont pas trop fortement corrélées.

cor(heart.data$biking, heart.data$smoking)

Lors de l’exécution de ce code, le résultat est de 0,015. La corrélation entre le vélo et le tabagisme est faible (0,015 est seulement une corrélation de 1,5%), nous pouvons donc inclure les deux paramètres dans notre modèle.,

  1. normalité

utilisez la fonction hist() pour tester si votre variable dépendante suit une distribution normale.

hist(heart.data$heart.disease)

La distribution des observations est à peu près en forme de cloche, de sorte que nous puissions procéder à la régression linéaire.

  1. linéarité

nous pouvons vérifier cela en utilisant deux nuages de points: un pour le vélo et les maladies cardiaques, et un pour le tabagisme et les maladies cardiaques.,

plot(heart.disease ~ biking, data=heart.data)

plot(heart.disease ~ smoking, data=heart.data)

Bien que la relation entre le tabagisme et les maladies du cœur est un peu moins claire, il apparaît toujours linéaire. Nous pouvons procéder à une régression linéaire.

  1. Homoscédasticité

nous vérifierons cela après avoir fait le modèle.,

Étape 3: Effectuer l’analyse de régression linéaire

maintenant que vous avez déterminé que vos données répondent aux hypothèses, vous pouvez effectuer une analyse de régression linéaire pour évaluer la relation entre les variables indépendantes et dépendantes.

régression Simple: revenu et bonheur

voyons s’il existe une relation linéaire entre le revenu et le bonheur dans notre enquête auprès de 500 personnes dont le revenu varie de 15 000 $à 75 000$, où le bonheur est mesuré sur une échelle de 1 à 10.,

pour effectuer une analyse de régression linéaire simple et vérifier les résultats, vous devez exécuter deux lignes de code. La première ligne de code rend le modèle linéaire, et la deuxième ligne affiche le résumé du modèle:

income.happiness.lm <- lm(happiness ~ income, data = income.data)summary(income.happiness.lm)

La sortie ressemble à ceci:

Cette sortie tableau présente le premier modèle de l’équation, puis résume les valeurs résiduelles du modèle (voir l’étape 4).,

la section des Coefficients montre:

  1. Les estimations (estimation) pour les paramètres du modèle – la valeur de l’ordonnée à l’origine (dans ce cas 0,204) et l’effet estimé du revenu sur le bonheur (0,713).
  2. l’erreur type des valeurs estimées (Std. Erreur).
  3. la statistique de test (valeur t, dans ce cas la statistique t).
  4. La valeur p ( Pr(> | t | ) ), alias la probabilité de trouver la statistique t donnée si l’hypothèse nulle d’aucune relation était vraie.,

Les trois dernières lignes sont des diagnostics de modèle – la chose la plus importante à noter est la valeur p (ici c’est 2.2 e-16, ou presque zéro), qui indiquera si le modèle correspond bien aux données.

à partir de ces résultats, nous pouvons dire qu’il existe une relation positive significative entre le revenu et le bonheur (valeur p< 0,001), avec une augmentation du bonheur de 0,713 unité (+/- 0,01) pour chaque augmentation unitaire du revenu.,

régression Multiple: le vélo, le tabagisme et les maladies cardiaques

voyons s’il existe une relation linéaire entre le vélo au travail, le tabagisme et les maladies cardiaques dans notre enquête imaginaire de 500 villes. Le taux de vélo de travail comprise entre 1 et 75%, les taux de tabagisme entre 0,5 et 30%, et les taux de maladies cardiaques entre 0,5% et 20.5%.

pour tester la relation, nous avons d’abord adapté un modèle linéaire avec la maladie cardiaque comme variable dépendante et le vélo et le tabagisme comme variables indépendantes., L’exécution de ces deux lignes de code:

heart.disease.lm<-lm(heart.disease ~ biking + smoking, data = heart.data)summary(heart.disease.lm)

La sortie ressemble à ceci:

L’effet estimé de vélo sur la maladie cardiaque est -0.2, alors que l’estimation de l’effet du tabagisme est 0.178.

cela signifie que pour chaque augmentation de 1% du vélo au travail, il y a une diminution corrélée de 0,2% de l’incidence des maladies cardiaques. Pendant ce temps, pour chaque augmentation de 1% du tabagisme, il y a une augmentation de 0,178% du taux de maladie cardiaque.,

les erreurs types pour ces coefficients de régression sont très faibles et les statistiques t sont très importantes (-147 et 50,4, respectivement). Les valeurs p reflètent ces petites erreurs et les grandes statistiques T. Pour les deux paramètres, il y a une probabilité presque nulle que cet effet soit dû au hasard.

rappelez-vous que ces données sont composées pour cet exemple, donc dans la vraie vie, ces relations ne seraient pas si claires!,

Étape 4: Vérifier l’homoscédasticité

avant de procéder à la visualisation des données, nous devons nous assurer que nos modèles correspondent à l’hypothèse d’homoscédasticité du modèle linéaire.

régression Simple

Nous pouvons exécuterplot(income.happiness.lm) pour vérifier si les données observées répondent aux hypothèses de notre modèle:

par(mfrow=c(2,2))
plot(income.happiness.lm)
par(mfrow=c(1,1))

notez que la commandepar(mfrow()) divisera la fenêtre des tracés en nombre de lignes et de colonnes spécifiées entre parenthèses., Donc par(mfrow=c(2,2)) le divise en deux lignes et deux colonnes. Pour revenir à tracer un graphique dans toute la fenêtre, définissez à nouveau les paramètres et remplacez le (2,2) par (1,1).

ce sont les parcelles résiduelles produites par le code:

les Résidus sont la variance inexpliquée. Ils ne sont pas exactement les mêmes que l’erreur du modèle, mais ils sont calculés à partir de ça, donc, voir un biais dans les résidus seraient également indiquer un biais dans l’erreur.,

la chose la plus importante à rechercher est que les lignes rouges représentant la moyenne des résidus sont toutes essentiellement horizontales et centrées autour de zéro. Cela signifie qu’il n’y a pas de valeurs aberrantes ou de biais dans les données qui rendraient une régression linéaire invalide.

dans le Q-Qplot Normal en haut à droite, nous pouvons voir que les résidus réels de notre modèle forment une ligne presque parfaitement un à un avec les résidus théoriques d’un modèle parfait.

sur la base de ces résidus, nous pouvons dire que notre modèle répond à l’hypothèse de l’homoscédasticité.,

régression Multiple

encore une fois, nous devrions vérifier que notre modèle convient bien aux données, et que nous n’avons pas de grande variation dans l’erreur du modèle, en exécutant ce code:

par(mfrow=c(2,2))
plot(heart.disease.lm)
par(mfrow=c(1,1))

la sortie ressemble à ceci:

comme avec notre régression simple, les résidus ne montrent aucun biais, nous pouvons donc dire que notre modèle correspond à l’hypothèse de l’homoscédasticité.,

Étape 5: visualisez les résultats avec un graphique

ensuite, nous pouvons tracer les données et la droite de régression à partir de notre modèle de régression linéaire afin que les résultats puissent être partagés.

régression simple

suivez 4 étapes pour visualiser les résultats de votre régression linéaire simple.,

  1. Tracer les points de données sur un graphique
income.graph<-ggplot(income.data, aes(x=income, y=happiness))+ geom_point()income.graph

  1. Ajouter une droite de régression linéaire pour le tracé de données

Ajoutez la ligne de régression à l’aide de geom_smooth() et en tapant lm en tant que votre méthode pour la création de la ligne. Cela ajoutera la droite de la régression linéaire ainsi que l’erreur type de l’estimation (dans ce cas +/- 0.,01) comme une lumière grise bande entourant la ligne:

income.graph <- income.graph + geom_smooth(method="lm", col="black")income.graph

  1. Ajout de l’équation de la droite de régression.
income.graph <- income.graph + stat_regline_equation(label.x = 3, label.y = 7)income.graph

  1. Rendre le graphique prêt pour la publication

On peut ajouter un peu de style de paramètres à l’aide de theme_bw() et de faire des étiquettes personnalisées à l’aide de labs().,

income.graph + theme_bw() + labs(title = "Reported happiness as a function of income", x = "Income (x$10,000)", y = "Happiness score (0 to 10)")

Ce produit finis graphique que vous pouvez inclure dans vos papiers:

régression Multiple

La visualisation de l’étape de régression multiple est plus difficile que pour la régression simple, parce que nous avons maintenant deux prédicteurs. Une option consiste à tracer un plan, mais ceux-ci sont difficiles à lire et ne sont pas souvent publiés.

nous allons essayer une méthode différente: tracer la relation entre le vélo et les maladies cardiaques à différents niveaux de tabagisme., Dans cet exemple, le tabagisme sera traité comme un facteur à trois niveaux, uniquement dans le but d’afficher les relations dans nos données.

Il y a 7 étapes à suivre.

  1. Créer un nouveau dataframe avec les informations nécessaires pour tracer le modèle

Utilisation de la fonction expand.grid() pour créer un dataframe avec les paramètres que vous fournissez., Dans cette fonction, nous allons:

  • créer une séquence de la valeur la plus basse à la valeur la plus élevée de vos données de vélo observées;
  • choisir les valeurs minimale, moyenne et maximale du tabagisme, afin de faire 3 niveaux de tabagisme sur lesquels prédire les taux de maladie cardiaque.

cela ne créera rien de nouveau dans votre console, mais vous devriez voir un nouveau bloc de données apparaître dans l’onglet Environnement. Cliquez dessus pour l’afficher.,

  1. prédire les valeurs de la maladie cardiaque en fonction de votre modèle linéaire

ensuite, nous enregistrerons nos valeurs « y prédites » en tant que nouvelle colonne dans le jeu de données que nous venons de créer.

plotting.data$predicted.y <- predict.lm(heart.disease.lm, newdata=plotting.data)
  1. Tour de la fumer des nombres à deux chiffres après la virgule

Cela va rendre la légende plus facile à lire plus tard.,

plotting.data$smoking <- round(plotting.data$smoking, digits = 2)
  1. Changer le « fumer » variable d’un facteur

Cela nous permet de tracer l’interaction entre le vélo et les maladies du coeur à chacun des trois niveaux de fumer que nous avons choisi.,

plotting.data$smoking <- as.factor(plotting.data$smoking)
  1. Plot the original data
heart.plot <- ggplot(heart.data, aes(x=biking, y=heart.disease)) + geom_point()heart.plot

  1. Add the regression lines
heart.plot <- heart.plot + geom_line(data=plotting.data, aes(x=biking, y=predicted.y, color=smoking), size=1.25)heart.plot

  1. Make the graph ready for publication

Because this graph has two regression coefficients, the stat_regline_equation() function won’t work here., Mais, si nous voulons ajouter notre modèle de régression pour le graphique, nous pouvons le faire comme ceci:

heart.plot + annotate(geom="text", x=30, y=1.75, label=" = 15 + (-0.2*biking) + (0.178*smoking)")

C’est le fini de graphique que vous pouvez inclure dans vos papiers!

Étape 6: rapportez vos résultats

en plus du graphique, incluez une brève déclaration expliquant les résultats du modèle de régression.

en rapportant les résultats de la régression linéaire simple
nous avons trouvé une relation significative entre le revenu et le bonheur (p< 0.001, R2 = 0.73 ± 0.,0193), avec une augmentation de 0,73 Unité du bonheur déclaré pour chaque augmentation de 10 000 income de revenu.
rapport des résultats de la régression linéaire multiple
dans notre enquête sur 500 villes, nous avons trouvé des relations significatives entre la fréquence du vélo au travail et la fréquence des maladies cardiaques et la fréquence du tabagisme et la fréquence des maladies cardiaques (p< 0 et p<0.001, respectivement).

plus précisément, nous avons trouvé une diminution de 0,2% (±0.,0014) dans la fréquence des maladies cardiaques pour chaque augmentation de 1% du vélo, et une augmentation de 0,178% (±0,0035) de la fréquence des maladies cardiaques pour chaque augmentation de 1% du tabagisme.

Laisser un commentaire

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