Comment effectuer une régression quantile dans R



La régression linéaire est une méthode que nous pouvons utiliser pour comprendre la relation entre une ou plusieurs variables prédictives et une variable de réponse .

Généralement, lorsque nous effectuons une régression linéaire, nous souhaitons estimer la valeur moyenne de la variable de réponse.

Cependant, nous pourrions plutôt utiliser une méthode connue sous le nom de régression quantile pour estimer toute valeur quantile ou centile de la valeur de réponse, telle que le 70e centile, le 90e centile, le 98e centile, etc.

Pour effectuer une régression quantile dans R, nous pouvons utiliser la fonction rq() du package quantreg , qui utilise la syntaxe suivante :

library(quantreg)

model <- rq(y ~ x, data = dataset, tau = 0.5)

où:

  • y : la variable de réponse
  • x : la ou les variables prédictives
  • data : le nom de l’ensemble de données
  • tau : Le centile à trouver. La valeur par défaut est la médiane (tau = 0,5), mais vous pouvez la définir sur n’importe quel nombre compris entre 0 et 1.

Ce didacticiel fournit un exemple étape par étape de la façon d’utiliser cette fonction pour effectuer une régression quantile dans R.

Étape 1 : Saisissez les données

Pour cet exemple, nous allons créer un ensemble de données contenant les heures étudiées et les résultats des examens obtenus pour 100 étudiants différents dans une université :

#make this example reproducible
set.seed(0)

#create data frame 
hours <- runif(100, 1, 10)
score <- 60 + 2*hours + rnorm(100, mean=0, sd=.45*hours)
df <- data.frame(hours, score)

#view first six rows
head(df)

     hours    score
1 9.070275 79.22682
2 3.389578 66.20457
3 4.349115 73.47623
4 6.155680 70.10823
5 9.173870 78.12119
6 2.815137 65.94716

Étape 2 : Effectuer une régression quantile

Ensuite, nous ajusterons un modèle de régression quantile en utilisant les heures étudiées comme variable prédictive et les résultats à l’examen comme variable de réponse.

Nous utiliserons le modèle pour prédire le 90e centile attendu des résultats aux examens en fonction du nombre d’heures étudiées :

library(quantreg)

#fit model
model <- rq(score ~ hours, data = df, tau = 0.9)

#view summary of model
summary(model)

Call: rq(formula = score ~ hours, tau = 0.9, data = df)

tau: [1] 0.9

Coefficients:
            coefficients lower bd upper bd
(Intercept) 60.25185     59.27193 62.56459
hours        2.43746      1.98094  2.76989

À partir du résultat, nous pouvons voir l’équation de régression estimée :

90e percentile de la note de l’examen = 60,25 + 2,437*(heures)

Par exemple, le 90e percentile des scores de tous les étudiants qui étudient 8 heures devrait être de 79,75 :

90e percentile de la note de l’examen = 60,25 + 2,437*(8) = 79,75 .

La sortie affiche également les limites de confiance supérieure et inférieure pour l’interception et les heures de la variable prédictive.

Étape 3 : Visualisez les résultats

Nous pouvons également visualiser les résultats de la régression en créant un nuage de points avec l’équation de régression quantile ajustée superposée sur le graphique :

library(ggplot2)

#create scatterplot with quantile regression line
ggplot(df, aes(hours,score)) +
  geom_point() + 
  geom_abline(intercept=coef(model)[1], slope=coef(model)[2])

Exemple de régression quantile dans R

Contrairement à une droite de régression linéaire traditionnelle, notez que cette droite ajustée ne traverse pas le cœur des données. Au lieu de cela, il passe par le 90e percentile estimé à chaque niveau de la variable prédictive.

Nous pouvons voir la différence entre l’équation de régression quantile ajustée et l’équation de régression linéaire simple en ajoutant l’argument geom_smooth() :

library(ggplot2)

#create scatterplot with quantile regression line and simple linear regression line
ggplot(df, aes(hours,score)) +
  geom_point() + 
  geom_abline(intercept=coef(model)[1], slope=coef(model)[2]) +
  geom_smooth(method="lm", se=F)

Régression quantile vs tracé de régression linéaire simple

La ligne noire affiche la ligne de régression quantile ajustée pour le 90e centile et la ligne bleue affiche la ligne de régression linéaire simple, qui estime la valeur moyenne de la variable de réponse.

Comme prévu, la simple ligne de régression linéaire traverse les données et nous montre la valeur moyenne estimée des résultats aux examens à chaque niveau d’heures.

Ressources additionnelles

Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes dans R :

Comment effectuer une régression linéaire simple dans R
Comment effectuer une régression linéaire multiple dans R
Comment effectuer une régression quadratique dans R

Ajouter un commentaire

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