L’énergie est le sixième poste de dépense budgétaire des ménages en France, dont un peu plus de la moitié est directement affectée au logement. C’est ce que nous apprend l’étude de l’INSEE « Les dépenses d’énergie des ménages depuis 20 ans »1. Le taux d’effort énergétique, passant de 11,6 % en 1985 à 8,4 % en 2006, a peu baissé malgré les progrès technologiques et ceux de la construction : les dépenses énergétiques des ménages restent lourdes, et principalement pour leur logement. Pour mieux comprendre de telles dépenses, nous avons choisi de regarder en détail les variations dans les dépenses énergétiques liées au logement, d’un ménage à l’autre. Notre objectif est de répondre à la question suivante : quels sont les principaux facteurs expliquant la facture énergétique des ménages en France ? Nous avons à notre disposition les données recueillies par l’INSEE à l’occasion de l’Enquête Nationale Logement de 2006. Les données sont assez anciennes, la part des dépenses énergétiques des ménages ayant peu varié entre 1985, on supposera que leur validité reste suffisante pour comprendre les comportements et la caractéristiques actuels des ménages. Après un tour d’horizon de plusieurs travaux sur la nature et les conditions des dépenses énergétiques des ménages, nous présenterons la structure de la base de données utilisée ici, et notamment du nettoyage nécessaire pour la rendre exploitable en analyse statistique. On présentera ensuite les méthodologies descriptives et exploratoires retenues, nous ayant amené à construire différents modèles d’interprétation. Enfin, on présentera et discutera les résultants issus de l’analyse permise par ces modèles.
Les données à notre disposition sont celles de l’Enquête Nationale Logements de 2006. Composée de de plus de 35 000 observations selon presque 1 000 variables (374 pour les logements, 568 pour les ménages, sans tenir compte des variables concernant les individus que nous n’avons pas utilisées), la base de données est particulièrement complexe et nécessite plusieurs étapes de nettoyage et préparation. On y trouve 3 tables, l’une à l’échelle des ménages, une autre à l’échelle des logements, et la dernière à l’échelle des individus. Dans un souci de simplification, nous avons choisi de travailler sur la table des logements, desquels on retire toutes les entrées correspondant à des logements hébergeant plusieurs ménages. Ces derniers sont assez rares, ils apportent peu d’information mais beaucoup de complexité, ils ne sont donc pas indispensables à la compréhension de notre objet.
#Chargement des bibliothèques de fction
library(dplyr,quietly = TRUE)
library(foreign,quietly = TRUE)
library(sf,quietly = TRUE)
library(cartography,quietly = TRUE)
library(RColorBrewer,quietly = TRUE)
library(ggplot2,quietly = TRUE)
library(cowplot,quietly = TRUE)
library(ggthemes,quietly = TRUE)
library(FactoMineR,quietly = TRUE)
#Définition du répertoire de travail
setwd("/Volumes/Macintosh HD 2/Universite_Informatique/4_MastereSp_DeSIGeo/UE6_Statistique_FouilleDonnees/1_Statistique/4_Projet")
#Chargement de la base de données des logements
logt_2006<-read.dbf("ENL/logement.dbf")
#Chargement de la base de données des ménages
men_2006<-read.dbf("ENL/menage.dbf")
#Recherche des identifiants des logements habités par plus d'un ménage
idlog_plusMen <- names(table(men_2006$idlog)[table(men_2006$idlog)>1])
length(idlog_plusMen)
## [1] 183
#Retrait des logements habités par plusieurs ménages
logt_2006 <- logt_2006 %>%
filter(!idlog %in% idlog_plusMen)
#Jointure des deux bases de données - On s'intéresse à présent au jeu de données logt_men_2006, jointure des deux bases de données
logt_men_2006 <- merge(logt_2006,men_2006,by.x="idlog",by.y="idlog")
#Remarquons que tous les logements du jeu de données sont des résidences principales
table(logt_men_2006$champbis)
##
## 1
## 36772
#Création d'un jeu simplifié de données en retirant les variables les plus souvent manquantes (pour 80% des observations au moins)
variables=c()
compteNA=c()
nbSuppressions=0
for (varN in names(logt_men_2006)){
variables=c(variables,varN)
nbNA=sum(is.na(logt_men_2006[[varN]]))
compteNA=c(compteNA,nbNA)
if(nbNA/nrow(logt_men_2006)>=0.8){
nbSuppressions=nbSuppressions+1
logt_men_2006[[varN]]<-NULL
}
}
inventaireNA_logts=data.frame(variables,compteNA)
rm(variables)
rm(compteNA)
print(paste("Le nombre de variables supprimées est de :",nbSuppressions))
## [1] "Le nombre de variables supprimées est de : 317"
#Création d'une fonction pour identifier les valeurs extrêmes d'une variable (renvoie un vecteur de booléens)
#La fonction identifie comme TRUE les observations où la variable est supérieure ou inférieure à la moyenne de 4 écart-types ou plus
rechValeursExtremes <- function(nom_val,dataF){
id_extrPlus <- dataF[[nom_val]]>(mean(dataF[[nom_val]])+4*sd(dataF[[nom_val]]))
id_extrMoins <- dataF[[nom_val]]<(mean(dataF[[nom_val]])-4*sd(dataF[[nom_val]]))
return(id_extrPlus|id_extrMoins)
}
#Première analyse en fonction de quelques variables qui semblent jouer un rôle déterminant dans la consommation totale d'énergie du logement (coml)
#Nous avons sélectionné uniquement des variables catégorielles (aucune variable continue) :
# - HSHT: SURFACE HABITABLE - en tranches
# - HTL: TYPE DE LOGEMENT
# - MRDUC1: REVENU PAR UNITE DE CONSOMMATION - en déciles
# - KMOD1: MOYEN DE CHAUFFAGE DU LOGEMENT TRADITIONNEL
# - IAAT: ANNEE D'ACHEVEMENT DE LA CONSTRUCTION --> proposer une discrétisation: en fonction de la réglementation thermique par exemple
# - mnp: NOMBRE DE PERSONNES DU MENAGE
# - GZC2: ZONES CLIMATIQUES 2
# - POL99: CATEGORIE DE LA COMMUNE AU SEIN DU DECOUPAGE EN AIRES ET ESPACES URBAINS AU RP99
# - KCC1_x : Combustible utilisé pour la chaudière (x->1: Fioul, 2:Gaz réseau, 3: Gaz citerne 4:Charbon, 5:Bois, 6:Électricité, 7:Autres) 1: Oui 2: Non
logt_men_2006 %>%
select(coml, HSHT,HTL, MRDUC1, KMOD1, IAAT, mnp, GZC2,POL99) %>%
summary()
## coml HSHT HTL MRDUC1 KMOD1
## Min. : 13 1: 424 1 :18763 Min. : 1.000 1:16247
## 1st Qu.: 550 2:2667 2 :17485 1st Qu.: 2.000 2: 1155
## Median : 983 3:4948 8 : 194 Median : 5.000 3: 7165
## Mean : 1136 4:8408 4 : 107 Mean : 5.113 4: 194
## 3rd Qu.: 1500 5:7973 5 : 84 3rd Qu.: 8.000 5: 9977
## Max. :13913 6:5044 6 : 71 Max. :10.000 6: 2034
## 7:7308 (Other): 68
## IAAT mnp GZC2 POL99
## 6 :5457 Min. :1.000 1: 6544 1:26568
## 10 :5087 1st Qu.:1.000 2: 3519 2: 5394
## 3 :4608 Median :2.000 3: 5761 3: 1230
## 4 :4192 Mean :2.522 4: 3381 4: 3580
## 7 :4049 3rd Qu.:4.000 5:12964
## 8 :3413 Max. :6.000 6: 2698
## (Other):9966 7: 1905
logt_men_2006_reduit <- logt_men_2006[!(rechValeursExtremes("coml",logt_men_2006)|rechValeursExtremes("HSL1",logt_men_2006)|rechValeursExtremes("MRTOTA",logt_men_2006)),]
##Présentation de notre variable explicative :
box_conso <- ggplot(logt_men_2006, aes(y=coml)) +
geom_boxplot(outlier.size = 0.01,outlier.color = "transparent",fill="lavender")+
labs(title="Répartition de la consommation d'énergie : ensemble des données :")+
theme_tufte()
histo_conso <- ggplot(logt_men_2006, aes(x=coml)) +
geom_histogram(binwidth = 5)+
labs(title="")+
theme_tufte()
box_conso_red <- ggplot(logt_men_2006_reduit, aes(y=coml)) +
geom_boxplot(outlier.size = 0.01,outlier.color = "transparent",fill="lavender")+
labs(title="Répartition de la consommation d'énergie : sans les valeurs extrêmes :")+
theme_tufte()
histo_conso_red <- ggplot(logt_men_2006_reduit, aes(x=coml)) +
geom_histogram(binwidth = 5)+
labs(title="")+
theme_tufte()
plot_grid(box_conso,histo_conso,box_conso_red,histo_conso_red,ncol=2,nrow=2,rel_widths = c(1,2))
Les données concernant la consommation énergétique ne semblent pas véritablement continues, mais semblent se rapprocher de certaines valeurs arrondies à la centaine. Nous supposons que la précision des données dont nous disposons concernant les dépenses en énergie n’est pas homogène et que de nombreuses valeurs approximatives sont présentes dans le jeu de données. Pour pallier les différences de précision, nous proposons de lisser les données en les arrondissant à la centaine d’euros supérieure.
#Lissage de la variable coml
logt_men_2006$coutEnergie[logt_men_2006$coml<=100]=0
logt_men_2006$coutEnergie[logt_men_2006$coml>5000]=50
for(val in seq(100,5000,by=100)){
logt_men_2006$coutEnergie[logt_men_2006$coml>(val-100) & logt_men_2006$coml<=val]=(val-100)/100
}
#De nouveau, sélection d'un jeu de données réduit pour y intégrer la nouvelle variable coutEnergie
logt_men_2006_reduit <- logt_men_2006[!(rechValeursExtremes("coml",logt_men_2006)|rechValeursExtremes("HSL1",logt_men_2006)|rechValeursExtremes("MRTOTA",logt_men_2006)),]
box_conso_red <- ggplot(logt_men_2006_reduit, aes(y=coutEnergie)) +
geom_boxplot(outlier.size = 0.01,outlier.color = "transparent",fill="lavender")+
labs(title="Répartition lissée des dépenses énergétiques :")+
theme_tufte()
histo_conso_red <- ggplot(logt_men_2006_reduit, aes(x=coutEnergie)) +
geom_histogram(binwidth = 1)+
labs(title="")+
theme_tufte()
plot_grid(box_conso_red,histo_conso_red,ncol=2,nrow=1,rel_widths = c(1,2))
#Régression linéaire sur le jeu de données complet
summary(lm(coml~HSHT+HTL+as.factor(MRDUC1)+KMOD1+IAAT+as.factor(mnp)+GZC2+POL99+KCC1_1+KCC1_2+KCC1_3+KCC1_4+KCC1_5+KCC1_6+KCC1_7,data=logt_men_2006))
##
## Call:
## lm(formula = coml ~ HSHT + HTL + as.factor(MRDUC1) + KMOD1 +
## IAAT + as.factor(mnp) + GZC2 + POL99 + KCC1_1 + KCC1_2 +
## KCC1_3 + KCC1_4 + KCC1_5 + KCC1_6 + KCC1_7, data = logt_men_2006)
##
## Residuals:
## Min 1Q Median 3Q Max
## -2171.6 -327.3 -69.7 197.0 11869.5
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1795.8835 234.7450 7.650 2.08e-14 ***
## HSHT2 -25.6439 56.1523 -0.457 0.647902
## HSHT3 15.1892 54.7404 0.277 0.781416
## HSHT4 73.4553 54.3709 1.351 0.176708
## HSHT5 134.0790 54.9608 2.440 0.014713 *
## HSHT6 220.6073 55.9038 3.946 7.96e-05 ***
## HSHT7 571.6783 56.0294 10.203 < 2e-16 ***
## HTL2 -321.9031 14.0488 -22.913 < 2e-16 ***
## HTL3 -136.8785 131.9558 -1.037 0.299604
## HTL4 -244.2090 75.1904 -3.248 0.001164 **
## HTL5 377.8287 96.6909 3.908 9.35e-05 ***
## HTL6 -374.7610 93.5581 -4.006 6.20e-05 ***
## HTL7 -93.4494 465.2175 -0.201 0.840800
## HTL8 -229.8720 55.3771 -4.151 3.32e-05 ***
## as.factor(MRDUC1)2 -18.9686 17.2341 -1.101 0.271063
## as.factor(MRDUC1)3 -32.9140 18.0264 -1.826 0.067881 .
## as.factor(MRDUC1)4 -16.5133 18.0378 -0.915 0.359949
## as.factor(MRDUC1)5 -34.4916 18.5552 -1.859 0.063060 .
## as.factor(MRDUC1)6 -30.6223 19.1652 -1.598 0.110098
## as.factor(MRDUC1)7 -16.0978 19.2413 -0.837 0.402812
## as.factor(MRDUC1)8 -21.4331 19.2939 -1.111 0.266633
## as.factor(MRDUC1)9 30.7960 19.3174 1.594 0.110902
## as.factor(MRDUC1)10 157.3752 19.9058 7.906 2.77e-15 ***
## KMOD13 -627.6014 13.7734 -45.566 < 2e-16 ***
## KMOD14 -437.3772 50.1138 -8.728 < 2e-16 ***
## IAAT10 -417.5473 31.9952 -13.050 < 2e-16 ***
## IAAT2 -105.6280 32.9012 -3.210 0.001327 **
## IAAT3 -157.1004 31.7788 -4.944 7.72e-07 ***
## IAAT4 -151.2400 31.6932 -4.772 1.83e-06 ***
## IAAT5 -154.1248 32.6966 -4.714 2.45e-06 ***
## IAAT6 -177.7769 31.2976 -5.680 1.36e-08 ***
## IAAT7 -215.5562 32.0714 -6.721 1.84e-11 ***
## IAAT8 -255.4570 33.8351 -7.550 4.51e-14 ***
## IAAT9 -287.4325 34.1891 -8.407 < 2e-16 ***
## as.factor(mnp)2 106.6367 11.8245 9.018 < 2e-16 ***
## as.factor(mnp)3 169.6153 13.8830 12.217 < 2e-16 ***
## as.factor(mnp)4 195.0881 14.7250 13.249 < 2e-16 ***
## as.factor(mnp)5 229.5517 19.2304 11.937 < 2e-16 ***
## as.factor(mnp)6 395.9529 27.0876 14.617 < 2e-16 ***
## GZC22 -43.5598 18.9074 -2.304 0.021239 *
## GZC23 -174.9556 15.6542 -11.176 < 2e-16 ***
## GZC24 -53.2527 18.0254 -2.954 0.003137 **
## GZC25 31.3527 13.7106 2.287 0.022219 *
## GZC26 65.7760 18.9724 3.467 0.000527 ***
## GZC27 0.1469 22.1330 0.007 0.994704
## POL992 89.1522 14.7977 6.025 1.72e-09 ***
## POL993 94.4537 27.0107 3.497 0.000472 ***
## POL994 100.1093 18.5355 5.401 6.69e-08 ***
## KCC1_12 -380.1253 42.7210 -8.898 < 2e-16 ***
## KCC1_22 -11.0382 42.9143 -0.257 0.797014
## KCC1_32 -472.6109 49.9264 -9.466 < 2e-16 ***
## KCC1_42 -14.0249 72.2728 -0.194 0.846135
## KCC1_52 478.1661 48.3535 9.889 < 2e-16 ***
## KCC1_62 -41.5695 44.3449 -0.937 0.348556
## KCC1_72 -62.7160 48.2935 -1.299 0.194080
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 656.2 on 23551 degrees of freedom
## (13166 observations deleted due to missingness)
## Multiple R-squared: 0.4785, Adjusted R-squared: 0.4773
## F-statistic: 400.2 on 54 and 23551 DF, p-value: < 2.2e-16
#Régression linéaire sur ce jeu de données réduit -> R2 significativement meilleur
summary(lm(coml~HSHT+HTL+as.factor(MRDUC1)+KMOD1+IAAT+as.factor(mnp)+GZC2+POL99+KCC1_1+KCC1_2+KCC1_3+KCC1_4+KCC1_5+KCC1_6+KCC1_7,data=logt_men_2006_reduit))
##
## Call:
## lm(formula = coml ~ HSHT + HTL + as.factor(MRDUC1) + KMOD1 +
## IAAT + as.factor(mnp) + GZC2 + POL99 + KCC1_1 + KCC1_2 +
## KCC1_3 + KCC1_4 + KCC1_5 + KCC1_6 + KCC1_7, data = logt_men_2006_reduit)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1982.9 -289.3 -55.2 203.5 3603.1
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1912.9414 182.5023 10.482 < 2e-16 ***
## HSHT2 -20.7528 43.1441 -0.481 0.630514
## HSHT3 16.0723 42.0642 0.382 0.702397
## HSHT4 72.9231 41.7831 1.745 0.080950 .
## HSHT5 137.4069 42.2462 3.253 0.001145 **
## HSHT6 229.7116 42.9891 5.343 9.20e-08 ***
## HSHT7 514.8708 43.1016 11.946 < 2e-16 ***
## HTL2 -309.6152 10.8897 -28.432 < 2e-16 ***
## HTL3 -103.1346 101.3893 -1.017 0.309063
## HTL4 -245.9357 57.7981 -4.255 2.10e-05 ***
## HTL5 122.5235 77.6732 1.577 0.114712
## HTL6 -352.7400 71.8956 -4.906 9.35e-07 ***
## HTL7 -118.5049 357.4322 -0.332 0.740236
## HTL8 -238.0898 42.7056 -5.575 2.50e-08 ***
## as.factor(MRDUC1)2 -25.7107 13.2853 -1.935 0.052970 .
## as.factor(MRDUC1)3 -32.5863 13.8954 -2.345 0.019030 *
## as.factor(MRDUC1)4 -26.5539 13.9241 -1.907 0.056527 .
## as.factor(MRDUC1)5 -24.2535 14.3050 -1.695 0.090002 .
## as.factor(MRDUC1)6 -32.7727 14.7795 -2.217 0.026602 *
## as.factor(MRDUC1)7 -11.4931 14.8477 -0.774 0.438902
## as.factor(MRDUC1)8 -8.4529 14.8869 -0.568 0.570173
## as.factor(MRDUC1)9 17.1714 14.9322 1.150 0.250171
## as.factor(MRDUC1)10 82.5596 15.8608 5.205 1.95e-07 ***
## KMOD13 -605.1808 10.6317 -56.922 < 2e-16 ***
## KMOD14 -419.8021 38.8297 -10.811 < 2e-16 ***
## IAAT10 -313.7655 25.4605 -12.324 < 2e-16 ***
## IAAT2 -45.6900 26.2180 -1.743 0.081399 .
## IAAT3 -88.3742 25.3022 -3.493 0.000479 ***
## IAAT4 -85.3374 25.2084 -3.385 0.000712 ***
## IAAT5 -79.9428 25.9640 -3.079 0.002079 **
## IAAT6 -97.6243 24.9089 -3.919 8.91e-05 ***
## IAAT7 -143.4649 25.4967 -5.627 1.86e-08 ***
## IAAT8 -183.0573 26.8558 -6.816 9.57e-12 ***
## IAAT9 -214.4644 27.1368 -7.903 2.84e-15 ***
## as.factor(mnp)2 96.6841 9.1417 10.576 < 2e-16 ***
## as.factor(mnp)3 162.8476 10.7480 15.151 < 2e-16 ***
## as.factor(mnp)4 187.1254 11.4214 16.384 < 2e-16 ***
## as.factor(mnp)5 222.7361 15.0016 14.848 < 2e-16 ***
## as.factor(mnp)6 346.3190 21.2966 16.262 < 2e-16 ***
## GZC22 -53.4203 14.7239 -3.628 0.000286 ***
## GZC23 -155.2206 12.1187 -12.808 < 2e-16 ***
## GZC24 -49.0469 13.9780 -3.509 0.000451 ***
## GZC25 28.7911 10.6227 2.710 0.006727 **
## GZC26 52.8409 14.7215 3.589 0.000332 ***
## GZC27 -0.6855 17.1803 -0.040 0.968173
## POL992 65.8563 11.5520 5.701 1.21e-08 ***
## POL993 105.4560 21.0875 5.001 5.75e-07 ***
## POL994 92.4174 14.4718 6.386 1.74e-10 ***
## KCC1_12 -377.4295 33.1040 -11.401 < 2e-16 ***
## KCC1_22 -52.4682 33.2648 -1.577 0.114743
## KCC1_32 -469.7762 38.7854 -12.112 < 2e-16 ***
## KCC1_42 -74.6522 55.9434 -1.334 0.182078
## KCC1_52 394.7036 37.8228 10.436 < 2e-16 ***
## KCC1_62 -80.8955 34.3644 -2.354 0.018578 *
## KCC1_72 -86.8677 37.3579 -2.325 0.020065 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 504.1 on 23085 degrees of freedom
## (13024 observations deleted due to missingness)
## Multiple R-squared: 0.5667, Adjusted R-squared: 0.5657
## F-statistic: 559.1 on 54 and 23085 DF, p-value: < 2.2e-16
#Régression linéaire sur la variable coût de l'énergie redressée
summary(lm(coutEnergie~HSHT+HTL+as.factor(MRDUC1)+KMOD1+IAAT+as.factor(mnp)+GZC2+POL99+KCC1_1+KCC1_2+KCC1_3+KCC1_4+KCC1_5+KCC1_6+KCC1_7,data=logt_men_2006_reduit))
##
## Call:
## lm(formula = coutEnergie ~ HSHT + HTL + as.factor(MRDUC1) + KMOD1 +
## IAAT + as.factor(mnp) + GZC2 + POL99 + KCC1_1 + KCC1_2 +
## KCC1_3 + KCC1_4 + KCC1_5 + KCC1_6 + KCC1_7, data = logt_men_2006_reduit)
##
## Residuals:
## Min 1Q Median 3Q Max
## -19.431 -2.921 -0.538 2.044 36.185
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 18.64836 1.82533 10.216 < 2e-16 ***
## HSHT2 -0.21688 0.43151 -0.503 0.615256
## HSHT3 0.16169 0.42071 0.384 0.700739
## HSHT4 0.71823 0.41790 1.719 0.085689 .
## HSHT5 1.37384 0.42253 3.251 0.001150 **
## HSHT6 2.28619 0.42996 5.317 1.06e-07 ***
## HSHT7 5.13039 0.43109 11.901 < 2e-16 ***
## HTL2 -3.10084 0.10892 -28.470 < 2e-16 ***
## HTL3 -1.03008 1.01406 -1.016 0.309736
## HTL4 -2.44651 0.57808 -4.232 2.32e-05 ***
## HTL5 1.17013 0.77686 1.506 0.132023
## HTL6 -3.45420 0.71908 -4.804 1.57e-06 ***
## HTL7 -0.85352 3.57492 -0.239 0.811300
## HTL8 -2.35966 0.42713 -5.524 3.34e-08 ***
## as.factor(MRDUC1)2 -0.24804 0.13288 -1.867 0.061951 .
## as.factor(MRDUC1)3 -0.31990 0.13898 -2.302 0.021354 *
## as.factor(MRDUC1)4 -0.25251 0.13926 -1.813 0.069816 .
## as.factor(MRDUC1)5 -0.22979 0.14307 -1.606 0.108267
## as.factor(MRDUC1)6 -0.31504 0.14782 -2.131 0.033077 *
## as.factor(MRDUC1)7 -0.10182 0.14850 -0.686 0.492962
## as.factor(MRDUC1)8 -0.05826 0.14889 -0.391 0.695606
## as.factor(MRDUC1)9 0.19507 0.14935 1.306 0.191505
## as.factor(MRDUC1)10 0.83023 0.15863 5.234 1.68e-07 ***
## KMOD13 -6.03572 0.10633 -56.762 < 2e-16 ***
## KMOD14 -4.20164 0.38836 -10.819 < 2e-16 ***
## IAAT10 -3.11436 0.25465 -12.230 < 2e-16 ***
## IAAT2 -0.43896 0.26222 -1.674 0.094146 .
## IAAT3 -0.87567 0.25306 -3.460 0.000541 ***
## IAAT4 -0.85394 0.25213 -3.387 0.000708 ***
## IAAT5 -0.80506 0.25968 -3.100 0.001937 **
## IAAT6 -0.97403 0.24913 -3.910 9.27e-05 ***
## IAAT7 -1.42992 0.25501 -5.607 2.08e-08 ***
## IAAT8 -1.82394 0.26860 -6.790 1.14e-11 ***
## IAAT9 -2.12261 0.27141 -7.821 5.48e-15 ***
## as.factor(mnp)2 0.95566 0.09143 10.452 < 2e-16 ***
## as.factor(mnp)3 1.59675 0.10750 14.854 < 2e-16 ***
## as.factor(mnp)4 1.83606 0.11423 16.073 < 2e-16 ***
## as.factor(mnp)5 2.19599 0.15004 14.636 < 2e-16 ***
## as.factor(mnp)6 3.41684 0.21300 16.041 < 2e-16 ***
## GZC22 -0.50350 0.14726 -3.419 0.000630 ***
## GZC23 -1.52444 0.12121 -12.577 < 2e-16 ***
## GZC24 -0.47049 0.13980 -3.365 0.000766 ***
## GZC25 0.27767 0.10625 2.614 0.008967 **
## GZC26 0.54632 0.14724 3.710 0.000207 ***
## GZC27 0.02175 0.17183 0.127 0.899269
## POL992 0.68863 0.11554 5.960 2.56e-09 ***
## POL993 1.07299 0.21091 5.087 3.66e-07 ***
## POL994 0.95262 0.14474 6.581 4.76e-11 ***
## KCC1_12 -3.80162 0.33110 -11.482 < 2e-16 ***
## KCC1_22 -0.52415 0.33270 -1.575 0.115174
## KCC1_32 -4.71041 0.38792 -12.143 < 2e-16 ***
## KCC1_42 -0.82484 0.55953 -1.474 0.140450
## KCC1_52 3.92782 0.37829 10.383 < 2e-16 ***
## KCC1_62 -0.78855 0.34370 -2.294 0.021783 *
## KCC1_72 -0.87264 0.37364 -2.336 0.019526 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 5.042 on 23085 degrees of freedom
## (13024 observations deleted due to missingness)
## Multiple R-squared: 0.5669, Adjusted R-squared: 0.5659
## F-statistic: 559.6 on 54 and 23085 DF, p-value: < 2.2e-16
Nous avons réalisé trois régressions linéaires multiples utilisant les mêmes variables explicatives; la première a été effectuée sur l’ensemble du jeu de données , la seconde en retirant les observations ayant des valeurs extrêmes concernant leur facture énergétique et la taille du logement, la troisième en utilisant des données concernant la consommation énergétique ayant été redressées. La présence de données lacunaires conduit à retirer de nombreuses observations du modèle (un peu plus d’un tiers de l’ensemble). A fur et à mesure des étapes, le modèle linéaire gagne en robustesse. En effectuant la régression linéaire multiple sur les données de consommation redressées, on obtient un coefficient de détermination (R carré) de 0.57 (57% de la variance pouvant être expliquée par le modèle) avec une p-value significative. Pour autant, le modèle obtenu comprend de nombreuses variables, chacune susceptible d’adopter de nombreuses modalités et cette multiplicité complexifie l’appréhension du modèle. On note également la présence de nombreuses modalités n’ayant pas un effet significatif sur le prix de la consommation énergétique avec une p-value supérieure à 0,1.
#Régression linéaire sans tenir compte des variables concernant le type d'énergie utilisé pour la chaudière pour lesquelles des données sont manquantes.
#Coefficient de détermination valant 0.48
#summary(lm(coutEnergie~HSHT+HTL+as.factor(MRDUC1)+KMOD1+IAAT+as.factor(mnp)+GZC2+POL99,data=logt_men_2006_reduit))
Cette étape vise à une analyse des différentes variables explicatives utilisées dans les régressions linéaires multiples celles-ci correspondent à trois grandes catégories: les variables décrivant le logement, les variables informant sur la localisation géographique et les variables concernant le ménage occupant le logement. L’objectif de cette analyse est notamment de proposer des regroupements des modalités que peuvent adopter ces variables explicatives en fonction de l’influence sur la dépense en énergie. Les différents regroupements proposés sont présentés à la suite.
#Fonction pour générer des histogrammes des variables regroupées
histoRegroup <- function(var1,var2){
dataHisto <- subset(logt_men_2006,select=c(var1,var2))
colnames(dataHisto) <- c("VAR1","VAR2")
dataHisto <- dataHisto %>%
group_by(VAR1,VAR2) %>%
summarise(NB_LOGTS = n())
histo_init <- ggplot(dataHisto, aes(x=VAR1,y=NB_LOGTS))+
geom_bar(stat="sum",fill='#1F2E50')+
labs(title=var1)+
theme_tufte()+
theme(axis.title.y=element_blank(),
axis.title.x=element_blank(),
plot.title = element_text(hjust = 0.5),
legend.position='none')
histo_group <- ggplot(dataHisto, aes(x=VAR2,y=NB_LOGTS))+
geom_bar(stat="sum",fill='#006e33')+
labs(title=var2)+
theme_tufte() +
theme(axis.title.y=element_blank(),
axis.title.x=element_blank(),
plot.title = element_text(hjust = 0.5),
legend.position='none')
plot_grid(histo_init,histo_group,ncol=2,nrow=1,rel_widths = c(1,1))
}
#On propose un nouveau regroupement des variables concernant la taille des logements en fonction des coefficients observés avec la régression linéaire
logt_men_2006$taillelogt[logt_men_2006$HSHT %in% c(1,2)] <- '0-39'
logt_men_2006$taillelogt[logt_men_2006$HSHT %in% c(3,4)] <- '40-79'
logt_men_2006$taillelogt[logt_men_2006$HSHT %in% c(5,6)] <- '80-119'
logt_men_2006$taillelogt[logt_men_2006$HSHT ==7] <- 'z119+'
Regroupement de la variable HSHT (taille des logements) :
#Représentation graphique
histoRegroup('HSHT','taillelogt')
#On propose un nouveau regroupement des variables sur le mode de chauffage en fonction des coefficients observés avec la régression linéaire
#Chaudière individuelle : KMOD1 = 1 : référence
logt_men_2006$typchauf[logt_men_2006$KMOD1 == 1] <- "ChaufInd"
#Chauffage collectif (urbain, collectif ou mixte): KMOD1 = 2 | 3 | 4 : coefficients compris entre -580 et -700
logt_men_2006$typchauf[logt_men_2006$KMOD1 %in% c(2,3,4)] <- "ChaufCol"
#Chauffage individuel électrique ou autre : KMOD1 = 5 | 6 : coefficients compris entre -170 et -260
logt_men_2006$typchauf[logt_men_2006$KMOD1 %in% c(5,6)] <- "ElecAutres"
Regroupement des types de chauffage :
#Représentation graphique
histoRegroup('KMOD1','typchauf')
#On propose un nouveau regroupement des variables du type de ressource énergétique en fonction des coefficients observés avec la régression linéaire
#Fioul ou gaz en citerne : si non utilisés (2) coefficient valant -377 ou -470 (l'utilisation augmente la facture)
#Bois : si non utilisé (2) coefficient valant 395 (l'utilisation diminue la facture)
#Electricité ou catégorie "Autres" si non utilisé (2) coefficient valant environ -80 (l'utilisation augmente la facture)
#Pour les autres ressources, pas d'influence significative
logt_men_2006$energie <- "0_ref"
logt_men_2006$energie[logt_men_2006$KCC1_1 == 1 | logt_men_2006$KCC1_3 == 1] <- "Fioul"
logt_men_2006$energie[logt_men_2006$KCC1_5 == 1] <- "Bois"
logt_men_2006$energie[logt_men_2006$KCC1_6 == 1 | logt_men_2006$KCC1_7 == 1] <- "Elec"
dataHisto <- logt_men_2006 %>%
select(energie) %>%
group_by(energie) %>%
summarise(NB_LOGTS = n())
histo_energie <- ggplot(dataHisto, aes(x=energie,y=NB_LOGTS))+
geom_bar(stat="sum",fill='#006e33')+
theme_tufte() +
theme(axis.title.y=element_blank(),
axis.title.x=element_blank(),
plot.title = element_text(hjust = 0.5),
legend.position='none')
histo_energie
#On propose un nouveau regroupement des variables de l'époque de construction en fonction des coefficients observés avec la régression linéaire
#Logements construits avant 1975 : IAAT comppris entre 1 et 6 : référence ou non significatif
#Logements construits après 1975 : IAAT comppris entre 7 et 10 : coefficients variant de -60 `à -250
logt_men_2006$epoq[logt_men_2006$IAAT %in% as.character(seq(1,6))] <- "Pre75"
logt_men_2006$epoq[logt_men_2006$IAAT %in% as.character(seq(7,10))] <- "Post75"
#Représentation graphique
histoRegroup('IAAT','epoq')
#On propose un nouveau regroupement des variables concernant le type du logement en fonction des coefficients observés avec la régression linéaire
#Logements individuels : HTL = 1 | 5 | 7 : référence ou non significatif
#Logements collectifs : HTL = 2 | 3 | 4 | 6 | 8 : coefficients variant de -233 à -260
logt_men_2006$typlog[logt_men_2006$HTL %in% c(1,5,7)] <- "LogtInd"
logt_men_2006$typlog[logt_men_2006$HTL %in% c(2,3,4,6,8)] <- "LogtCol"
#Représentation graphique
histoRegroup('KMOD1','typlog')
#Regroupement des logements par département
clim_dep <- logt_men_2006 %>%
select(DEP,GZC2) %>%
group_by(DEP,GZC2) %>%
summarise(NB_LOGTS=n())
#Récupération de données vectorielles
nc <- st_read("Geofla_DEP/DEPARTEMENT/DEPARTEMENT.shp", quiet=TRUE)
nc <- st_transform(nc, 2154)
#Représentation cartographique des logements
nc<-merge(nc,clim_dep,by.x=2, by.y=1,all.x=TRUE)
nc$GZC2 <- as.numeric(as.character(nc$GZC2))
plot(st_geometry(nc), col = "lightgrey", border = "black", lwd = 0.2,
bg = "white")
propSymbolsTypoLayer(x = nc, spdfid="CODE_DEPT", dfid="DEP",
var = "NB_LOGTS", inches = 0.2, lwd=0.5,
var2 = "GZC2",col=brewer.pal(7, "Set2"),
legend.var.title.txt = "Nbre de logements",
legend.var.pos = 'bottomleft',
legend.var2.pos = "topleft",
legend.var2.title.txt = "Zone climatique")
#On propose un nouveau regroupement des variables climatiques en fonction des coefficients observés avec la régression linéaire
#Secteurs de la bordure méditerranénne : GZC2 = 1 : référence
logt_men_2006$clim[logt_men_2006$GZC2 == 1] <- "SE"
#Secteurs de la façade atlantique : GZC2 = 2 | 3 : coefficients d'environ -130 et -60
logt_men_2006$clim[logt_men_2006$GZC2 %in% c(2,3)] <- "OSO"
#Secteurs Nord et Nord-Est : GZC2 = 5 | 6 : coefficients d'environ +50
logt_men_2006$clim[logt_men_2006$GZC2 %in% c(5,6)] <- "NNE"
#Pour les autres secteurs, le coefficient n'est pas significatif, on propose une répartition en fonction des départements (aidés par une régression linéaire non présentée dans le document)
#Les zones de montagnes sont plutôt dans des secteurs méditerranéens (en fait cette modalité joue plutôt un rôle diminutif sur la consommation énergétique ), malgré quelques exceptions reclassées (Vosges, Haute-Savoie, Isère, ...) en NNE. La Normandie et les Pays de la Loire sont plutôt classés en OSO.
logt_men_2006$clim[logt_men_2006$GZC2 == 7] <- "SE"
logt_men_2006$clim[logt_men_2006$DEP %in% c(14,61,53,72,49,37,86,36,87,23,76,27)] <- "OSO"
logt_men_2006$clim[logt_men_2006$DEP %in% c(80,62,88,74,38,73)] <- "NNE"
#Représentation graphique
histoRegroup('GZC2','clim')
#Représentation cartographique du nouveau découpage climatique
clim_dep2 <- logt_men_2006 %>%
select(DEP,clim)%>%
group_by(DEP,clim)%>%
summarise(NB=n())
nc <- st_read("Geofla_DEP/DEPARTEMENT/DEPARTEMENT.shp", quiet=TRUE)
nc <- st_transform(nc, 2154)
nc<-merge(nc,clim_dep2,by.x=2, by.y=1,all.x=TRUE)
nc$clim <- as.factor(as.character(nc$clim))
plot(st_geometry(nc), col = "lightgrey", border = "black", lwd = 0.2,
bg = "white")
propSymbolsTypoLayer(x = nc, spdfid="CODE_DEPT", dfid="DEP",
var = "NB", inches = 0.2, lwd=0.5,
var2 = "clim",col=brewer.pal(3, "Set2"),
legend.var.title.txt = "Nbre de logements",
legend.var.pos = 'bottomleft',
legend.var2.pos = "topleft",
legend.var2.title.txt = "Zones climatiques simplifiées")
#Quantité de logements selon leur localisation au regard de la géographie urbaine
#Regroupement des logements par zone climatique et par géographie urbaine
urba_clim <- logt_2006 %>%
select(GZC2,POL99) %>%
group_by(GZC2,POL99) %>%
summarise(NB_LOGTS = n())
#Rajout d'une colonne suppl??mentaire avec le nombre total de logements par zone climatique
urba_clim_temp=urba_clim %>%
group_by(GZC2) %>%
summarise(TOTAL_LOGTS_GZC=sum(NB_LOGTS))
urba_clim <- merge(urba_clim,urba_clim_temp, by.x="GZC2",by.y="GZC2")
rm(urba_clim_temp)
urba_clim$PART=round(urba_clim$NB_LOGTS/urba_clim$TOTAL_LOGTS_GZC,2)
#Représentation graphique
couleurs=brewer.pal(7, "Set2")[c(2,3,4,5,1,6,7)]
histo_geo_urbaine <- ggplot(urba_clim, aes(x=POL99,y=NB_LOGTS,fill=GZC2))+
geom_bar(stat="sum")+
facet_grid(.~GZC2)+
scale_fill_manual(values=couleurs)+
theme_tufte()
histo_geo_urbaine
#On propose un nouveau regroupement des variables de la géographie urbaine en fonction des coefficients observés avec la régression linéaire
#Communes appartenant à un pôle urbain POL99 = 1 : référence
logt_men_2006$geourb[logt_men_2006$POL99 == 1] <- "PU"
#Les autres communes (multipolarisées (hors couronne périurbaine ou non),rurales) POL99 = 2 | 3 | 4 : coefficients d'environ + 200
logt_men_2006$geourb[logt_men_2006$POL99 %in% c(2,3,4)] <- "MR"
#Représentation graphique
histoRegroup('POL99','geourb')
#Ajout d'un facteur correspondant à la part d'actifs du ménage
# mnp = NOMBRE DE PERSONNES DU MENAGE
# mpa = NOMBRE D'ACTIFS DU MENAGE
logt_men_2006$nbpers[logt_men_2006$mnp ==1] <- '1pers'
logt_men_2006$nbpers[logt_men_2006$mnp ==2] <- '2pers'
logt_men_2006$nbpers[logt_men_2006$mnp %in% c(3,4,5)] <- '345pers'
logt_men_2006$nbpers[logt_men_2006$mnp ==6] <- '6pers'
#Représentation graphique
histoRegroup('mnp','nbpers')
# Catégorisation des ménages selon leurs revenus
# MRDUC12 = REVENU ANNUEL TOTAL PAR UNITE DE CONSOMMATION FRANCE ENTIERE
logt_men_2006$cat_rev[logt_men_2006$MRDUC1 ==1] <- '0-7134'
logt_men_2006$cat_rev[logt_men_2006$MRDUC1 %in% seq(2,6)] <- '7134-18666'
logt_men_2006$cat_rev[logt_men_2006$MRDUC1 %in% seq(7,9)] <- '18666-33286'
logt_men_2006$cat_rev[logt_men_2006$MRDUC1 == 10] <- '33286+'
#Représentation graphique
histoRegroup('MRDUC1','cat_rev')
#Sélection d'un jeu de données réduit en supprimant les valeurs extrêmes de consommation, de taille de logement, de revenu
logt_men_2006_reduit <- logt_men_2006[!(rechValeursExtremes("coml",logt_men_2006)|rechValeursExtremes("HSL1",logt_men_2006)|rechValeursExtremes("MRTOTA",logt_men_2006)),]
#Régression linéaire sur ce jeu de données réduit -> R2 significativement meilleur
summary(lm(coutEnergie~taillelogt+typlog+typchauf+energie+epoq+clim+geourb+nbpers+cat_rev,data=logt_men_2006_reduit))
##
## Call:
## lm(formula = coutEnergie ~ taillelogt + typlog + typchauf + energie +
## epoq + clim + geourb + nbpers + cat_rev, data = logt_men_2006_reduit)
##
## Residuals:
## Min 1Q Median 3Q Max
## -20.011 -2.952 -0.526 2.115 35.693
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1.07661 0.15576 6.912 4.86e-12 ***
## taillelogt40-79 1.10722 0.10525 10.519 < 2e-16 ***
## taillelogt80-119 2.48171 0.11798 21.035 < 2e-16 ***
## taillelogtz119+ 5.56039 0.13641 40.762 < 2e-16 ***
## typlogLogtInd 2.98104 0.08049 37.037 < 2e-16 ***
## typchaufChaufInd 5.93666 0.08268 71.799 < 2e-16 ***
## typchaufElecAutres 4.88601 0.09281 52.647 < 2e-16 ***
## energieBois -2.50111 0.32201 -7.767 8.23e-15 ***
## energieElec 0.53357 0.13490 3.955 7.65e-05 ***
## energieFioul 3.59509 0.07901 45.502 < 2e-16 ***
## epoqPre75 0.88239 0.05783 15.258 < 2e-16 ***
## climOSO -1.41771 0.06318 -22.440 < 2e-16 ***
## climSE -0.57748 0.07057 -8.183 2.86e-16 ***
## geourbPU -0.54318 0.07022 -7.735 1.06e-14 ***
## nbpers2pers 0.98787 0.07163 13.790 < 2e-16 ***
## nbpers345pers 1.90736 0.07106 26.843 < 2e-16 ***
## nbpers6pers 3.36427 0.17570 19.148 < 2e-16 ***
## cat_rev18666-33286 -0.03180 0.09278 -0.343 0.732
## cat_rev33286+ 0.95212 0.12475 7.632 2.36e-14 ***
## cat_rev7134-18666 -0.38082 0.08215 -4.636 3.57e-06 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 5.015 on 36144 degrees of freedom
## Multiple R-squared: 0.5037, Adjusted R-squared: 0.5035
## F-statistic: 1931 on 19 and 36144 DF, p-value: < 2.2e-16
Nous effectuons une régression linéaire en utilisant les nouvelles variables issues de ces différents regroupements. Cette régression linéaire porte sur l’ensemble du jeu de données (aucune observation n’ayant été évincée pour absence de données) et permet d’expliquer une grande partie de la variance (avec un coefficient de détermination de 0.50)
On peut voir la différence entre les régressions multiples précédentes (par exemple, celle de la ligne 227) et celle-ci avec les nouvelles variables. La variation du coût de la consommation énergétique expliquée par ce second modèle est inférieure (50,3% contre 56,7% pour les premières) mais porte sur l’ensemble des observations (à la différence de la première pour laquelle 13 000 observations avaient été retirées).
En dehors de cet aspect majeur, la différence entre les coefficients de détermination de la régression utilisant les variables originelles de l’ENL et celle utilisant les variables simplifiées vient, en majeure partie, du regroupement des tailles de logts.
Le modèle obtenu conserve la majeure partie du pouvoir explicatif avec un nombre de modalités nettement moindre. Cette régression linéaire multiple gagne ainsi fortement en lisibilité, il devient aisé de connaître l’influence de telle ou telle caractéristique sur le coût de la consommation énergétique.
Dans cette troisième étape, nous essayons les méthodes d’analyse de données pour réduire le nombre de dimensions du jeu de données.
#On récupère un échantillon du jeu de données (20% des observations) pour effectuer une acm. En effet, le temps de calcul est trop long lorsque l'on utilise tout le jeu de données.
#Cet échantillonnage vérifie que la consommation énergétique totale suit une distribution équivalente dans l'échantillon et dans le jeu de données complet.
extrait_data <- logt_men_2006_reduit %>%
select(idlog,coml,coutEnergie,taillelogt,typlog,typchauf,energie,epoq,clim,geourb,nbpers,cat_rev)
ind <- caret::createDataPartition(extrait_data$coml,p=0.2,list=FALSE)
extrait_data <- extrait_data[ind,]
result_acm <- MCA(extrait_data,quanti.sup = c(1,2,3),,graph=FALSE)
result_acm$eig
## eigenvalue percentage of variance cumulative percentage of variance
## dim 1 0.30323069 14.363559 14.36356
## dim 2 0.17061449 8.081739 22.44530
## dim 3 0.13166067 6.236558 28.68186
## dim 4 0.12735700 6.032700 34.71456
## dim 5 0.12341069 5.845770 40.56033
## dim 6 0.12073938 5.719234 46.27956
## dim 7 0.11464985 5.430783 51.71034
## dim 8 0.11374535 5.387938 57.09828
## dim 9 0.11020563 5.220267 62.31855
## dim 10 0.10924351 5.174693 67.49324
## dim 11 0.10705551 5.071051 72.56429
## dim 12 0.09858392 4.669764 77.23405
## dim 13 0.09685645 4.587937 81.82199
## dim 14 0.09229177 4.371716 86.19371
## dim 15 0.08487146 4.020227 90.21393
## dim 16 0.07630847 3.614612 93.82855
## dim 17 0.05015838 2.375923 96.20447
## dim 18 0.04937676 2.338899 98.54337
## dim 19 0.03075111 1.456631 100.00000
Les cinq premières dimensions de l’acm restituent plus de 40% de la variance (variable selon l’échantillon de données). Plus de deux tiers de la variance est résumée en prenant en considération dix premières dimensions.
result_acm$var$eta2
## Dim 1 Dim 2 Dim 3 Dim 4 Dim 5
## taillelogt 0.61188192 8.144020e-02 0.187043383 0.6424678928 0.027320994
## typlog 0.71390479 2.386411e-03 0.005255081 0.0025406304 0.004543936
## typchauf 0.43105250 6.643773e-01 0.006488341 0.0012844885 0.016185221
## energie 0.07323553 5.094966e-01 0.060999173 0.0660006527 0.212522510
## epoq 0.16653690 1.733637e-01 0.001350438 0.0006549404 0.059401923
## clim 0.07064008 4.905460e-02 0.042919198 0.0328963369 0.261655849
## geourb 0.38219934 1.585561e-06 0.018878894 0.0099447711 0.071618832
## nbpers 0.12623561 3.532696e-02 0.447909366 0.0286664754 0.267935756
## cat_rev 0.15338954 2.008302e-02 0.414102153 0.3617567987 0.189511216
Cette matrice montre la participation des différentes variables à la construction des dimensions :
la dimension 1 résulte principalement du type du logement et de variables qui lui sont directement corrélées: la taille du logement, et dans une moindre mesure, le type du chauffage;
la dimension 2 dépend en premier lieu du type de chauffage et de l’énergie utilisée;
la dimension 3 est notamment construite d’après le nbre de personnes du ménage.
par(mfrow=c(1,2))
plot(result_acm,choix="quanti.sup")
plot(result_acm,invisible="ind")
Le graphique 1 montre le positionnement des variables quantitatives illustratives sur les différentes dimensions. On observe que le coût de l’énergie varie positivement avec les modalités logement individuel, +119m2, hors pôle urbain sur la dimension 1 et chauffage individuel, fioul sur la dimension 2. Nous réalisons ensuite une classification ascendante hiérarchique reposant sur les résultats de l’analyse de composantes principales pour distinguer différentes catégories de logement.
classif <- HCPC(result_acm,nb.clust=4,graph = FALSE)
plot(classif, choice="tree")
summary(lm(coutEnergie~clust,data=classif$data.clust))
##
## Call:
## lm(formula = coutEnergie ~ clust, data = classif$data.clust)
##
## Residuals:
## Min 1Q Median 3Q Max
## -17.866 -3.383 -0.918 2.617 32.638
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 5.9180 0.1952 30.311 <2e-16 ***
## clust2 0.4649 0.2229 2.086 0.037 *
## clust3 6.4442 0.2262 28.492 <2e-16 ***
## clust4 11.9476 0.2518 47.451 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 5.621 on 7231 degrees of freedom
## Multiple R-squared: 0.3794, Adjusted R-squared: 0.3791
## F-statistic: 1474 on 3 and 7231 DF, p-value: < 2.2e-16
La classification obtenue constitue une nouvelle variabe pouvant adopter 4 modalités et qui présente un facteur explicatif très fort sur le coût de la consommation énergétique (avec un coefficient de détermination proche de 0.4, variable selon l’échantillon utilisée pour l’acm). On obtient ainsi une catégorisation des données relativement ssimple qui est très significative au regard de la dépense en énergie.
bp_ens <- ggplot(extrait_data, aes(y=coutEnergie)) +
geom_boxplot(outlier.size = 0.01,outlier.color = "grey")+
labs(title="Ensemble")+
theme_tufte()+
theme(axis.text.x=element_blank(),
axis.ticks.x=element_blank(),
plot.title = element_text(hjust = 0.5))
bp_cluster <- ggplot(classif$data.clust, aes(x=clust, y=coutEnergie,color=clust)) +
geom_boxplot(outlier.size = 0.01,outlier.color = "grey")+
labs(title="Quatre catégories",color="")+
#scale_color_manual(values=c('#cf0000','#219d00'))+
theme_tufte()+
theme(axis.title.y=element_blank(),
axis.title.x=element_blank(),
axis.text.y=element_blank(),
axis.ticks.y=element_blank(),
plot.title = element_text(hjust = 0.5),
legend.position='none')
plot_grid(bp_ens,bp_cluster,ncol=2,nrow=1,rel_widths = c(1,4))
summary(classif$data.clust[classif$data.clust$clust==1,])
## idlog coml coutEnergie taillelogt typlog
## Min. :100796 Min. : 13.0 Min. : 0.000 0-39 :629 LogtCol:765
## 1st Qu.:329327 1st Qu.: 320.0 1st Qu.: 3.000 40-79 :138 LogtInd: 64
## Median :565093 Median : 529.0 Median : 5.000 80-119: 45
## Mean :559809 Mean : 650.5 Mean : 5.918 z119+ : 17
## 3rd Qu.:796304 3rd Qu.: 808.0 3rd Qu.: 8.000
## Max. :994630 Max. :3700.0 Max. :36.000
## typchauf energie epoq clim geourb nbpers
## ChaufCol :292 0_ref:679 Post75:223 NNE:522 MR: 45 1pers :441
## ChaufInd : 90 Bois : 1 Pre75 :606 OSO:162 PU:784 2pers :158
## ElecAutres:447 Elec : 83 SE :145 345pers:192
## Fioul: 66 6pers : 38
##
##
## cat_rev clust
## 0-7134 :445 1:829
## 18666-33286: 57 2: 0
## 33286+ : 18 3: 0
## 7134-18666 :309 4: 0
##
##
summary(classif$data.clust[classif$data.clust$clust==2,])
## idlog coml coutEnergie taillelogt
## Min. :100242 Min. : 20.0 Min. : 0.000 0-39 : 0
## 1st Qu.:322152 1st Qu.: 382.8 1st Qu.: 3.000 40-79 :2098
## Median :556487 Median : 600.0 Median : 5.000 80-119: 605
## Mean :553232 Mean : 698.2 Mean : 6.383 z119+ : 29
## 3rd Qu.:780185 3rd Qu.: 900.0 3rd Qu.: 8.000
## Max. :999994 Max. :3872.0 Max. :38.000
## typlog typchauf energie epoq clim
## LogtCol:2461 ChaufCol :1348 0_ref:2169 Post75: 700 NNE:1486
## LogtInd: 271 ChaufInd : 954 Bois : 1 Pre75 :2032 OSO: 659
## ElecAutres: 430 Elec : 184 SE : 587
## Fioul: 378
##
##
## geourb nbpers cat_rev clust
## MR: 99 1pers :995 0-7134 : 358 1: 0
## PU:2633 2pers :853 18666-33286: 576 2:2732
## 345pers:840 33286+ : 183 3: 0
## 6pers : 44 7134-18666 :1615 4: 0
##
##
summary(classif$data.clust[classif$data.clust$clust==3,])
## idlog coml coutEnergie taillelogt typlog
## Min. :100523 Min. : 25 Min. : 0.00 0-39 : 1 LogtCol: 271
## 1st Qu.:331711 1st Qu.: 931 1st Qu.: 9.00 40-79 : 362 LogtInd:2153
## Median :551762 Median :1221 Median :12.00 80-119:1424
## Mean :550739 Mean :1294 Mean :12.36 z119+ : 637
## 3rd Qu.:769294 3rd Qu.:1581 3rd Qu.:15.00
## Max. :999451 Max. :4518 Max. :45.00
## typchauf energie epoq clim geourb
## ChaufCol : 3 0_ref:2410 Post75:1706 NNE:966 MR:1120
## ChaufInd : 891 Bois : 0 Pre75 : 718 OSO:905 PU:1304
## ElecAutres:1530 Elec : 14 SE :553
## Fioul: 0
##
##
## nbpers cat_rev clust
## 1pers : 360 0-7134 : 121 1: 0
## 2pers : 711 18666-33286: 869 2: 0
## 345pers:1295 33286+ : 191 3:2424
## 6pers : 58 7134-18666 :1243 4: 0
##
##
summary(classif$data.clust[classif$data.clust$clust==4,])
## idlog coml coutEnergie taillelogt typlog
## Min. :102269 Min. : 50 Min. : 0.00 0-39 : 0 LogtCol: 27
## 1st Qu.:307399 1st Qu.:1333 1st Qu.:13.00 40-79 : 87 LogtInd:1223
## Median :527340 Median :1740 Median :17.00 80-119:456
## Mean :536245 Mean :1843 Mean :17.87 z119+ :707
## 3rd Qu.:768320 3rd Qu.:2267 3rd Qu.:22.00
## Max. :998243 Max. :4524 Max. :45.00
## typchauf energie epoq clim geourb nbpers
## ChaufCol : 19 0_ref:341 Post75:432 NNE:519 MR:735 1pers :197
## ChaufInd :1224 Bois : 47 Pre75 :818 OSO:474 PU:515 2pers :509
## ElecAutres: 7 Elec : 44 SE :257 345pers:508
## Fioul:818 6pers : 36
##
##
## cat_rev clust
## 0-7134 : 80 1: 0
## 18666-33286:385 2: 0
## 33286+ :197 3: 0
## 7134-18666 :588 4:1250
##
##
La classification obtenue distingue quatre catégories de logements; celles-ci peuvent être résumées de la façon suivante (par ordre croissant du coût de la dépense en énergie):
Logement collectif de petite taille souvent <39m2 ->> environ 750 avec une consommation moyenne de 600 euros;
Logement collectif de taille moyenne de 40 à 119m2 ->> environ 2 800 avec une consommation moyenne de 700 euros;
Logement individuel plus récent (après 1975) ->> environ 2 200 avec une consommation moyenne de 1 300 euros;
Logement individuel ancien (avant 1975) souvent chauffé au fioul ->> envion 1 500 avec une consommation moyenne 1 800 euros
On peut ensuite s’intéresser à préciser au sein de chacune de ces catégories, les facteurs susceptibles d’expliquer les dépenses en énergie.
#On récupère l'ensemble des variables du jeu de données réduits, on continue toujours à travailler avec l'échantillon des données ayant été clusterisé.
logt_men_2006_cluster <- merge(classif$data.clust[,c(1,13)],logt_men_2006_reduit,by.x=1,by.y=1)
#Gtoit2 Isolation thermique du toit
logt_men_2006_cluster$toit[logt_men_2006_cluster$Gtoit2 %in% c(1,2)] <- "Bon"
logt_men_2006_cluster$toit[logt_men_2006_cluster$Gtoit2 %in% c(3,4)] <- "Med"
#Haut Hauteur sous plafond (1: <2.2m 2: 2.2m à 3m 3: >3m)
logt_men_2006_cluster$hauteur[logt_men_2006_cluster$Haut %in% c(1,2)] <- "0-3m"
logt_men_2006_cluster$hauteur[logt_men_2006_cluster$Haut ==3] <- "3m+"
#Gvit1 Fenêtres en double-vitrage (1: oui 2 non)
#On teste l'influence de certaines variables sur l'ensemble de l'échantillon et dans chacun des clusters.
summary(lm(coutEnergie~toit+Gvit1+hauteur+clim,data=logt_men_2006_cluster))
##
## Call:
## lm(formula = coutEnergie ~ toit + Gvit1 + hauteur + clim, data = logt_men_2006_cluster)
##
## Residuals:
## Min 1Q Median 3Q Max
## -15.559 -4.449 -0.928 3.089 31.931
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 14.9110 0.1937 76.978 < 2e-16 ***
## toitMed 0.2696 0.3114 0.866 0.38666
## Gvit12 0.3781 0.2788 1.356 0.17516
## hauteur3m+ 2.1595 0.4664 4.630 3.79e-06 ***
## climOSO -1.8416 0.2596 -7.095 1.55e-12 ***
## climSE -0.9827 0.3082 -3.189 0.00144 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 6.914 on 3625 degrees of freedom
## (3604 observations deleted due to missingness)
## Multiple R-squared: 0.02101, Adjusted R-squared: 0.01966
## F-statistic: 15.56 on 5 and 3625 DF, p-value: 3.522e-15
summary(lm(coutEnergie~toit+Gvit1+hauteur+clim,data=logt_men_2006_cluster[logt_men_2006_cluster$clust %in% c(1,2),]))
##
## Call:
## lm(formula = coutEnergie ~ toit + Gvit1 + hauteur + clim, data = logt_men_2006_cluster[logt_men_2006_cluster$clust %in%
## c(1, 2), ])
##
## Residuals:
## Min 1Q Median 3Q Max
## -9.9317 -3.7713 -0.7931 2.2287 23.0683
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 11.77129 0.48133 24.456 < 2e-16 ***
## toitMed -0.86142 0.69889 -1.233 0.21868
## Gvit12 0.02182 0.64139 0.034 0.97288
## hauteur3m+ -0.18628 1.11951 -0.166 0.86796
## climOSO -4.00089 0.82318 -4.860 1.87e-06 ***
## climSE -2.70739 0.82989 -3.262 0.00123 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 5.4 on 309 degrees of freedom
## (3246 observations deleted due to missingness)
## Multiple R-squared: 0.08897, Adjusted R-squared: 0.07423
## F-statistic: 6.036 on 5 and 309 DF, p-value: 2.391e-05
summary(lm(coutEnergie~toit+Gvit1+hauteur+clim,data=logt_men_2006_cluster[logt_men_2006_cluster$clust %in% c(3,4),]))
##
## Call:
## lm(formula = coutEnergie ~ toit + Gvit1 + hauteur + clim, data = logt_men_2006_cluster[logt_men_2006_cluster$clust %in%
## c(3, 4), ])
##
## Residuals:
## Min 1Q Median 3Q Max
## -16.790 -4.292 -1.132 3.210 31.868
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 15.2918 0.2038 75.033 < 2e-16 ***
## toitMed 0.5483 0.3305 1.659 0.097244 .
## Gvit12 0.9498 0.2977 3.191 0.001433 **
## hauteur3m+ 2.5580 0.4909 5.211 1.99e-07 ***
## climOSO -2.1603 0.2698 -8.007 1.61e-15 ***
## climSE -1.1552 0.3219 -3.589 0.000337 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 6.873 on 3310 degrees of freedom
## (358 observations deleted due to missingness)
## Multiple R-squared: 0.03261, Adjusted R-squared: 0.03115
## F-statistic: 22.32 on 5 and 3310 DF, p-value: < 2.2e-16
Le fait de réaliser la régression en utilisant les cluster permet d’augmenter la significativité des variables explicatives pour les logements individuels mais pas pour les logements collectifs. On observe ainsi l’influence de variables explicatives de deuxième ordre : la présence de double vitrage, l’état de la toiture, la hauteur des pièces. On peut aussi réintégrer des variables explicatives n’ayant pas été utilisées pour la classification ascendante hiérarchique.
Quels sont les principaux facteurs expliquant la facture énergétique des ménages en France ? D’après notre modèle, les variables les plus déterminantes sont la taille et la localisation du logement, sa géographie urbaine (milieu rural ou pôle urbain) et sa typologie (individuel ou collectif), le nombre de personnes dans le ménage, la catégorie de revenus, le type d’énergie utilisée pour le chauffage, et la date de construction du logement.
Ces analyses nous amènent à repérer les variables ayant le plus de poids dans l’explication de la consommation énergétique des ménages :
les logements individuels consomment plus que les logements collectifs;
plus le logement est grand, plus la consommation est élevée;
les ménages disposant de moyens de chauffages individuels (chaudières) consomment plus que ceux avec chauffage collectif ou chauffage électrique;
la localisation du logement semble déterminante : le nord-nord-est a une consommation nettement plus élevée que la moyenne, ce qui peut s’expliquer par des raisons climatiques;
plus il y a d’occupants plus la consommation est importante;
les revenus du ménage ont une influence versatile.
En résumant ces différentes variables à l’aide d’une méthode de réduction du nombre de dimensions, on parvient à constituer quatre catégories assez homogènes de consommateurs distinguées en fonction du type de logement notamment (individuel ou collectif) et d’autres variables comme la taille, le type d’énergie utilisée.
Au sein de ces 4 groupes, on peut observer de manière plus précise le rôle de certaines variables secondaires qui peuvent alors disposer d’un pouvoir explicatif non négligeable. Le fait de réaliser la régression en utilisant les cluster permet d’augmenter la significativité des variables explicatives pour les logements individuels mais pas pour les logements collectifs. On observe ainsi l’influence de variables explicatives de deuxième ordre : la présence de double vitrage, l’état de la toiture, la hauteur des pièces. L’état du revêtement de façade n’est jamais significatif.
Notre étude s’inscrit donc dans la continuité des précédentes. Elle a nécessité un gros travail de préparation des données (sélection, nettoyage, lissage et redressement) afin de pouvoir établir un modèle qui explique 40% de la variance avec une distinction des données selon 4 catégories. Le modèle pourrait être améliorée en affinant la recherche des variables explicatives au sein de chacune des catégories de logement.
Pour construire cette analyse, nous nous sommes inspirés des dernières études réalisées dans le domaine de la consommation d’énergie dans le secteur résidentiel, notamment la publication « Energy policy » de Fateh Belaïd réalisée en 2016 qui explore les déterminants de la consommation énergétique dans le secteur résidentiel en France à partir des données détaillées de l’enquête nationale logement (ENL) de 2006. L’étude précédente se base sur des travaux précédents et étudie la consommation d’énergie résidentielle en fonction de deux catégories de variables : d’une part les caractéristiques physiques du logement et d’autre part les composantes socio-économiques et socio-démographiques des foyers. L’étude « Energy Policy » se situe dans la continuité des travaux précédents qui ont établi certains processus en matière de consommation énergétique résidentielle. Ainsi, Summerfield et al. (2010) mettent en avant la complexité liée à une multitude de facteurs interdépendants. Brounen et al. (2012) démontrent que beaucoup d’études négligent les comportements économiques des ménages. Des études antérieures (Sonderegger en 1978 et Guerra Santin en 2010) expliquent entre 40 et 54% des variations de la consommation énergétique résidentielle par des caractéristiques physiques des logements. Sanquist et al. (2012) expliquent quant à eux 40% des variations par 5 facteurs liés au mode de vie des ménages. D’autres études, comme celle de Chen et al. (2013) mettent en avant le fait que l’âge de l’occupant est plus important le revenu du foyer. Valenzuela et al. (2014) ont montré que les ménages mariés et ceux vivants dans des grands ensembles de logements consommaient moins d’énergie par mètre carré. Partant de cet état de fait, l’étude « Energy policy (Belaïd 2016) analyse la consommation d’énergie dans le secteur résidentiel en neutralisant les variables physiques des logements.
Fateh BELAID, “Understanding the spectrum of domestic energy consumption : Empirical evidence from France”, ODYSEE, 2016 Fateh BELAID, “Features of residential energy consumption: Evidence from France using an innovative multilevel modelling approac”, Phebus, 2018 Le but de ces articles est de déterminer les facteurs qui influencent le plus la consommation énergétique des ménages. L’étude a été menée sur un (très) grand nombre de variables à l’échelle des régions et à l’échelle des départements sur l’ensemble de la France métropolitaine. Les éléments proposés nous conforté dans la sélection de variables pertinentes - en particulier la surface des logements, la composition des ménages et le type d’énergie utilisée - et nous ont orienté dans le nettoyage et la préparation de celles-ci.
Sébastien Merceron, Maël Theulière, « Les dépenses d’énergie des ménages depuis 20 ans : Une part en moyenne stable dans le budget, des inégalités accrues », Insee Premiere n°1315, division Conditions de vie des ménages, Insee, octobre 2010 Cette étude s’intéresse à l’évolution des dépenses énergétiques des ménages entre 1985 et 2006. On y apprend que l’effort énergétique est globalement resté stable malgré une baisse de 3 points, (8,4 % en 2006, dont 4,8 % spécifiquement pour la résidence). Les auteurs attribuent cette stabilité à une compensation de l’amélioration des performances énergétiques par l’augmentation de la surface moyenne des logements. Ils observent aussi un accroissement des inégalités, notamment entre ville et campagne, entre habitant dense et habitat parsemé, et enfin entre ménages âgés et ménages jeunes.
Arthur Lengronne, « L’évolution de la consommation des ménages entre 1968-2018 », Le Web Pédagogique : PFEG La Morandière, lewebpedagogique.com, 2018 https://lewebpedagogique.com/pfeglamorandiere/category/theme-1-quels-acteurs-creent-la-richesse/levolution-de-la-consommation-des-menages/ L’auteur étudie l’évolution des logements et l’évolution de la consommation des ménages en considérant notamment la consommation des équipements électriques. Parmi les autres variables mentionnées se trouvent le nombre de logement, le nombre de propriétaires, la surface habitable et le nombre d’habitants du logement. Cette étude a été réalisée à l’échelle nationale.
Etude de l’institut Gesellschaft für Konsumforschung, « Les Français et l’énergie : usages, dépenses, rénovation », Cofidis Retail, 2017 https://www.cofidis-retail.fr/parlons-commerce/francais-energie-usages-depenses-renovation/ Cet article indique la part de propriétaires français qui utilisent les énergies renouvelables pour leur logement en 2017. Cet article a une visée commerciale et reprend les résultats de l’étude pour promouvoir les énergies renouvelables. Ainsi les chiffres partagés sont ceux issus de la distinction entre énergies renouvelables et énergies non renouvelables. Bien que cette étude s’inscrive dans une démarche commerciale (donc fortement biaisée), elle soulève une hypothèse intéressante. En effet, elle suppose que certains ménages ayant les revenus les plus modestes consomment plus que d’autres en raison de leurs équipements souvent abordables à l’achat mais peu économes tandis que d’autres ménages ont les moyens d’acquérir des appareils qui consomment moins d’énergie.
Mathias DENJEAN, « Consommation énergétique des ménages en 2012 », Chiffres et statistiques, Commissariat général au développement durable, 2015 https://www.statistiques.developpement-durable.gouv.fr/sites/default/files/2018-10/chiffres-stats645-conso-energetiques-des-menages2012-juin2015.pdf Cette étude porte sur la consommation énergétique des ménages de France à l’échelle d’un département. Il est question du type d’énergie utilisé (gaz, électricité, bois, GPL , fioul ou autre) en fonction des caractéristiques du logement, à savoir : sa surface habitable, sa période d’achèvement (logement ancien ou récent), sa localisation, le statut de l’habitant (locataire ou propriétaire) , l’occupation en semaine.
François-Xavier Dussud, Daniel Lepoittevin, Nicolas Riedinger, « Les ménages et la consommation d’énergie », rapport du MINISTÈRE DE L’ENVIRONNEMENT, DE L’ÉNERGIE ET DE LA MER, EN CHARGE DES RELATIONS INTERNATIONALES SUR LE CLIMAT, service de l’observation et des statistiques (SoeS), 2017 https://www.statistiques.developpement-durable.gouv.fr/sites/default/files/2018-10/thema-01-menages.pdf Cette étude se focalise sur la consommation des ménages en précarité énergétique sur l’ensemble des résidences principales de la France métropolitaine. La dépense énergétique est estimée par m². Elle identifie également les profils-types des ménages en précarité énergétique. La suite se concentre sur les caractéristiques du logement, puis sur leur localisation. Des indicateurs de précarité sont utilisés tout au long de l’étude.
Aurian de Maupeou, « Les inégalités dans la consommation d’énergie », étude Selectra et Seloger.com, 2019 https://selectra.info/energie/actualites/expert/inegalites-consommation-energie Il est question de la consommation d’un ménage selon son statut (locataire ou propriétaire), la surface habitable du logement, la date de construction du logement, la localisation et le type de chauffage. Deux échelles sont utilisées : échelle communale et échelle départementale. L’étude porte sur la France métropolitaine.