Dans la lignée de la semaine 1, ce devoir porte sur l’étude évaluant la qualité de relation et la quantité d’information reçue par des patients lors d’un séjour à l’hôpital. 534 patients ont été recrutés sur plusieurs hôpitaux de la région parisienne.
Pour effectuer des calculs quels qu’ils soient, il faut tout d’abord charger le fichier de données pour obtenir un dataframe utilisable par R
Estimez le modèle de régression linéaire expliquant la variable « score.relation » par les variables « age », « sexe », « score.information », « amelioration.sante », « amelioration.moral », « profession », « service ». (le script doit inclure la vérification éventuelle des conditions de validité de la méthode utilisée)
#Création d'un modèle de régression linéaire multiple expliquant la variable score.relation
m<-lm(score.relation~age+sexe+score.information+amelioration.sante+amelioration.moral+profession+service, data = satpatient)
summary(m)
##
## Call:
## lm(formula = score.relation ~ age + sexe + score.information +
## amelioration.sante + amelioration.moral + profession + service,
## data = satpatient)
##
## Residuals:
## Min 1Q Median 3Q Max
## -16.7892 -2.1343 0.6682 2.7140 10.1691
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 20.74420 1.79158 11.579 < 2e-16 ***
## age 0.04276 0.01468 2.914 0.00386 **
## sexe -0.49000 0.49332 -0.993 0.32143
## score.information 0.27390 0.03788 7.230 4.59e-12 ***
## amelioration.sante 0.65586 0.34225 1.916 0.05634 .
## amelioration.moral 0.74913 0.28617 2.618 0.00933 **
## profession 0.07315 0.14513 0.504 0.61464
## service 0.10190 0.10819 0.942 0.34707
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 4.103 on 281 degrees of freedom
## (245 observations deleted due to missingness)
## Multiple R-squared: 0.2733, Adjusted R-squared: 0.2552
## F-statistic: 15.1 on 7 and 281 DF, p-value: < 2.2e-16
# La variable score.relation peut être expliquée par 3 variables explciatives car leur p-value est à inférieure à 5% : age, score.information et amelioration.moral
# Vérifions les conditions de validité. Il y en a 3:
# * normalité du terme de bruit
# * variance du bruit ne doit dépendre ni des valeurs de la variable à expliquer ni des valeurs des variables explicatives
# * le bruit ne doit pas avoir de structure de corrélation interne
hist(resid(m), col="grey",main="normalité du bruit")
Estimez le modèle de régression logistique expliquant la variable « recommander.b » par les variables « age », « sexe », « score.information », « amelioration.sante », « amelioration.moral », « profession », « service ». Notons que la variable « recommander.b » est une transformation de la variable « recommander» en une variable binaire où « recommander.b » vaut 0 si « recommander» vaut 0 ou 1, et 1 si « recommander» vaut 2. (le script doit inclure la vérification éventuelle des conditions de validité de la méthode utilisée)
#On recode la variable recommander en variable binaire
satpatient$recommander.b<-ifelse(satpatient$recommander==2,1,0)
#On test que les 3 niveaux de recommandation sont bien répartis sur 2 valeurs 0 ou 1
table(satpatient$recommander,satpatient$recommander.b, useNA = "always")
##
## 0 1 <NA>
## 0 16 0 0
## 1 120 0 0
## 2 0 269 0
## <NA> 0 0 129
#On estime le modèle
ml<-glm(recommander.b~age+sexe+score.information+amelioration.sante+amelioration.moral+profession+service, data =satpatient, family = "binomial")
summary(ml)
##
## Call:
## glm(formula = recommander.b ~ age + sexe + score.information +
## amelioration.sante + amelioration.moral + profession + service,
## family = "binomial", data = satpatient)
##
## Deviance Residuals:
## Min 1Q Median 3Q Max
## -2.2368 -0.9558 0.5539 0.8580 1.5854
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -4.132041 1.016251 -4.066 4.78e-05 ***
## age 0.010876 0.007863 1.383 0.1666
## sexe 0.435549 0.274599 1.586 0.1127
## score.information 0.101498 0.021107 4.809 1.52e-06 ***
## amelioration.sante 0.386929 0.182781 2.117 0.0343 *
## amelioration.moral 0.269792 0.159343 1.693 0.0904 .
## profession -0.048853 0.078028 -0.626 0.5312
## service -0.021586 0.058126 -0.371 0.7104
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 391.41 on 313 degrees of freedom
## Residual deviance: 340.68 on 306 degrees of freedom
## (220 observations deleted due to missingness)
## AIC: 356.68
##
## Number of Fisher Scoring iterations: 4
## (Intercept) age sexe
## 0.01605009 1.01093568 1.54581211
## score.information amelioration.sante amelioration.moral
## 1.10682767 1.47245212 1.30969169
## profession service
## 0.95232099 0.97864518
#Seul les p value de score.information et amelioration.sante sont < 5% ==> ce sont les deux seules variables explicatives statistiquement associées au niveau de recommandation. Le signe du coeff est positif, cad qu'un bon score d'information et une amélioration de l'état de santé du patient aménera le patient à recommander le service.
#Conditions de validité:
#il faut au moins 5 à 10 evenements par variable explicative
#Comptons le nb de classes par variable explicative: age(1), sexe(2), score.information(1), amelioration.sante(4), amelioration.moral(4), profession(7), service(8). Cela correspond à 1+2+1+4+4+7+8, soit 28 classes.
#10 événements par variable explicative: 7*10 = 70 et on a 269 patients qui ont recommandé.
# 5 évenements par variable explicative: 7*5 = 35 et on a 269 patients qui ont recommandé.
# Le nb de patient ayant recommandé leur service rempli la condition de validité de la rég logistique
#############################Q1################################
#Création d'un modèle de régression linéaire multiple expliquant la variable score.relation
m<-lm(score.relation~age+sexe+score.information+amelioration.sante+amelioration.moral+profession+service, data = satpatient)
summary(m)
##
## Call:
## lm(formula = score.relation ~ age + sexe + score.information +
## amelioration.sante + amelioration.moral + profession + service,
## data = satpatient)
##
## Residuals:
## Min 1Q Median 3Q Max
## -16.7892 -2.1343 0.6682 2.7140 10.1691
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 20.74420 1.79158 11.579 < 2e-16 ***
## age 0.04276 0.01468 2.914 0.00386 **
## sexe -0.49000 0.49332 -0.993 0.32143
## score.information 0.27390 0.03788 7.230 4.59e-12 ***
## amelioration.sante 0.65586 0.34225 1.916 0.05634 .
## amelioration.moral 0.74913 0.28617 2.618 0.00933 **
## profession 0.07315 0.14513 0.504 0.61464
## service 0.10190 0.10819 0.942 0.34707
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 4.103 on 281 degrees of freedom
## (245 observations deleted due to missingness)
## Multiple R-squared: 0.2733, Adjusted R-squared: 0.2552
## F-statistic: 15.1 on 7 and 281 DF, p-value: < 2.2e-16
# La variable score.relation peut être expliquée par 3 variables explciatives car leur p-value est à inférieure à 5% : age, score.information et amelioration.moral
# Vérifions les conditions de validité. Il y en a 3:
# * normalité du terme de bruit
# * variance du bruit ne doit dépendre ni des valeurs de la variable à expliquer ni des valeurs des variables explicatives
# * le bruit ne doit pas avoir de structure de corrélation interne
hist(resid(m), col="grey",main="normalité du bruit")
#La distribution des résidus (bruit) est normale
#Les autres conditions ne sont pas faciles à vérifier et on jette un voile pudique sur le test de leur validité
#############################Q2################################
#On recode la variable recommander en variable binaire
satpatient$recommander.b<-ifelse(satpatient$recommander==2,1,0)
#On test que les 3 niveaux de recommandation sont bien répartis sur 2 valeurs 0 ou 1
table(satpatient$recommander,satpatient$recommander.b, useNA = "always")
##
## 0 1 <NA>
## 0 16 0 0
## 1 120 0 0
## 2 0 269 0
## <NA> 0 0 129
#On estime le modèle
ml<-glm(recommander.b~age+sexe+score.information+amelioration.sante+amelioration.moral+profession+service, data =satpatient, family = "binomial")
summary(ml)
##
## Call:
## glm(formula = recommander.b ~ age + sexe + score.information +
## amelioration.sante + amelioration.moral + profession + service,
## family = "binomial", data = satpatient)
##
## Deviance Residuals:
## Min 1Q Median 3Q Max
## -2.2368 -0.9558 0.5539 0.8580 1.5854
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -4.132041 1.016251 -4.066 4.78e-05 ***
## age 0.010876 0.007863 1.383 0.1666
## sexe 0.435549 0.274599 1.586 0.1127
## score.information 0.101498 0.021107 4.809 1.52e-06 ***
## amelioration.sante 0.386929 0.182781 2.117 0.0343 *
## amelioration.moral 0.269792 0.159343 1.693 0.0904 .
## profession -0.048853 0.078028 -0.626 0.5312
## service -0.021586 0.058126 -0.371 0.7104
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 391.41 on 313 degrees of freedom
## Residual deviance: 340.68 on 306 degrees of freedom
## (220 observations deleted due to missingness)
## AIC: 356.68
##
## Number of Fisher Scoring iterations: 4
## (Intercept) age sexe
## 0.01605009 1.01093568 1.54581211
## score.information amelioration.sante amelioration.moral
## 1.10682767 1.47245212 1.30969169
## profession service
## 0.95232099 0.97864518
#Seul les p value de score.information et amelioration.sante sont < 5% ==> ce sont les deux seules variables explicatives statistiquement associées au niveau de recommandation. Le signe du coeff est positif, cad qu'un bon score d'information et une amélioration de l'état de santé du patient aménera le patient à recommander le service.
#Conditions de validité:
#il faut au moins 5 à 10 evenements par variable explicative
#Comptons le nb de classes par variable explicative: age(1), sexe(2), score.information(1), amelioration.sante(4), amelioration.moral(4), profession(7), service(8). Cela correspond à 1+2+1+4+4+7+8, soit 28 classes.
#10 événements par variable explicative: 7*10 = 70 et on a 269 patients qui ont recommandé.
# 5 évenements par variable explicative: 7*5 = 35 et on a 269 patients qui ont recommandé.
# Le nb de patient ayant recommandé leur service rempli la condition de validité de la rég logistique