Revenir à l'accueil

(1) Introduction

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.

(2) PRESENTATION ET ANALYSE DE LA BASE DE DONNEES

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")

A/ Première approche intuitive du jeu de données

A-1/Premier nettoyage des données et mise en forme

#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)
}

A-2/Sélection de variables explicatives pour une régression linéaire multiple

#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))

B/ Analyse détaillée des variables explicatives

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))
}

B-1/ Les variables concernant le type de logement

B-1-1/ La superficie du logement (qu)
#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')

B-1-2/ Le mode de chauffage du logement (KMOD1)
#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')

B-1-3/ La ressource énergétique utilisée (KMOD1)
#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 

B-1-4/ L’époque de construction (IAAT)
#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')

B-1-5/ Le type de logement
#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')

B-2/ Les variables concernant la localisation

B-2-1/ Le climat (GZC2)
#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")

B-2-2/ La géographie urbaine (POL99)
#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')

B-3/ Les variables concernant l’occupation du logement

B-3-1/ La composition du ménage (??)
#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')

B-3-2/ Les revenus du ménage
# 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.

C/ Proposition de catégories logements

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.

(3) ANALYSE DES RESULTATS ET CONCLUSION

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 :

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.

(4) ETAT DES LIEUX, ENJEUX ET REVUE DES MODÈLES EXISTANTS EN LIEN AVEC LE SUJET

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.