Chargement des packages et données

accidents = read_csv("./data_TP/accidents_label.csv")
## Parsed with column specification:
## cols(
##   .default = col_character(),
##   Num_Acc = col_double(),
##   an_nais = col_double(),
##   occutc = col_double(),
##   dep = col_double(),
##   nbv = col_double(),
##   lartpc = col_double(),
##   larrout = col_double(),
##   year = col_double(),
##   Y = col_double()
## )
## See spec(...) for full column specifications.
accidents %>% summarise_all(class)
## # A tibble: 1 x 25
##   Num_Acc an_nais occutc dep   nbv   lartpc larrout year  catu  sexe 
##   <chr>   <chr>   <chr>  <chr> <chr> <chr>  <chr>   <chr> <chr> <chr>
## 1 numeric numeric numer~ nume~ nume~ numer~ numeric nume~ char~ char~
## # ... with 15 more variables: num_veh <chr>, catv <chr>, lum <chr>,
## #   agg <chr>, int <chr>, atm <chr>, col <chr>, com <chr>, adr <chr>,
## #   catr <chr>, prof <chr>, surf <chr>, situ <chr>, env1 <chr>, Y <chr>
accidents = accidents %>% mutate(dep = factor(dep))
accidents %>% summarise_all(class)
## # A tibble: 1 x 25
##   Num_Acc an_nais occutc dep   nbv   lartpc larrout year  catu  sexe 
##   <chr>   <chr>   <chr>  <chr> <chr> <chr>  <chr>   <chr> <chr> <chr>
## 1 numeric numeric numer~ fact~ nume~ numer~ numeric nume~ char~ char~
## # ... with 15 more variables: num_veh <chr>, catv <chr>, lum <chr>,
## #   agg <chr>, int <chr>, atm <chr>, col <chr>, com <chr>, adr <chr>,
## #   catr <chr>, prof <chr>, surf <chr>, situ <chr>, env1 <chr>, Y <chr>

Statistiques descriptives et visualisation

variable_class = accidents %>% summarise_all(class) %>% gather(variable,class)
for (colonne in variable_class$variable){
  if (filter( variable_class, variable == colonne)$class=="character" | filter( variable_class, variable == colonne)$class=="factor" ){
  print(c(colonne,dim(unique(accidents%>% select(colonne)))))
  }
}
## [1] "dep" "8"   "1"  
## [1] "catu" "4"    "1"   
## [1] "sexe" "2"    "1"   
## [1] "num_veh" "79"      "1"      
## [1] "catv" "33"   "1"   
## [1] "lum" "5"   "1"  
## [1] "agg" "2"   "1"  
## [1] "int" "9"   "1"  
## [1] "atm" "9"   "1"  
## [1] "col" "7"   "1"  
## [1] "com" "761" "1"  
## [1] "adr"    "109560" "1"     
## [1] "catr" "7"    "1"   
## [1] "prof" "4"    "1"   
## [1] "surf" "9"    "1"   
## [1] "situ" "5"    "1"   
## [1] "env1" "3"    "1"
accidents = accidents %>% select(-c("adr","num_veh","com"))
variable_class = accidents %>% summarise_all(class) %>% gather(variable,class)
for (colonne in variable_class$variable){
  if (filter( variable_class, variable == colonne)$class=="character" | filter( variable_class, variable == colonne)$class=="factor" ){
    print(accidents %>% group_by(get(colonne)) %>% summarise(moyenne= mean(Y)))}
}
## # A tibble: 8 x 2
##   `get(colonne)` moyenne
##   <fct>            <dbl>
## 1 750             0.0524
## 2 770             0.300 
## 3 780             0.215 
## 4 910             0.143 
## 5 920             0.0880
## 6 930             0.243 
## 7 940             0.109 
## 8 950             0.181 
## # A tibble: 4 x 2
##   `get(colonne)`                     moyenne
##   <chr>                                <dbl>
## 1 Conducteur                           0.106
## 2 Passager                             0.158
## 3 Pieton                               0.277
## 4 Pieton en roller ou en trottinette   0.267
## # A tibble: 2 x 2
##   `get(colonne)` moyenne
##   <chr>            <dbl>
## 1 Feminin          0.134
## 2 Masculin         0.129
## # A tibble: 33 x 2
##    `get(colonne)`                          moyenne
##    <chr>                                     <dbl>
##  1 Autobus                                  0.111 
##  2 Autocar                                  0.0854
##  3 Autre vehicule                           0.269 
##  4 Bicyclette                               0.164 
##  5 Categorie plus utilisee (VL + caravane)  0.167 
##  6 Categorie plus utilisee (VL + remorque)  0.0357
##  7 Cyclomoteur <50cm3                       0.187 
##  8 Engin special                            0.107 
##  9 Motocyclette > 125 cm                    0.261 
## 10 Motocyclette > 50 cm et <= 125 cm        0.189 
## # ... with 23 more rows
## # A tibble: 5 x 2
##   `get(colonne)`                        moyenne
##   <chr>                                   <dbl>
## 1 Crepuscule ou aube                      0.144
## 2 Nuit avec eclairage public allume       0.136
## 3 Nuit avec eclairage public non allume   0.156
## 4 Nuit sans eclairage public              0.222
## 5 Plein jour                              0.122
## # A tibble: 2 x 2
##   `get(colonne)`     moyenne
##   <chr>                <dbl>
## 1 En agglomeration     0.119
## 2 Hors agglomeration   0.176
## # A tibble: 9 x 2
##   `get(colonne)`                    moyenne
##   <chr>                               <dbl>
## 1 Autre intersection                 0.201 
## 2 Giratoire                          0.173 
## 3 Hors intersection                  0.146 
## 4 Intersection a plus de 4 branches  0.0623
## 5 Intersection en T                  0.114 
## 6 Intersection en X                  0.104 
## 7 Intersection en Y                  0.0928
## 8 Passage a niveau                   0.258 
## 9 Place                              0.0589
## # A tibble: 9 x 2
##   `get(colonne)`       moyenne
##   <chr>                  <dbl>
## 1 Autre                  0.190
## 2 Brouillard ou fumee    0.253
## 3 Neige ou grele         0.140
## 4 Normale                0.130
## 5 Pluie forte            0.143
## 6 Pluie legere           0.119
## 7 Temps couvert          0.144
## 8 Temps eblouissant      0.188
## 9 Vent fort ou tempete   0.2  
## # A tibble: 7 x 2
##   `get(colonne)`                                moyenne
##   <chr>                                           <dbl>
## 1 Autre collision                                0.162 
## 2 Deux vehicules, frontale                       0.235 
## 3 Deux vehicules, par le cote                    0.108 
## 4 Deux vehicules,par l arriere                   0.0945
## 5 Sans collision                                 0.203 
## 6 Trois vehicules et plus, collisions multiples  0.116 
## 7 Trois vehicules et plus, en chaine             0.0568
## # A tibble: 7 x 2
##   `get(colonne)`                                         moyenne
##   <chr>                                                    <dbl>
## 1 Autoroute                                                0.124
## 2 Autre                                                    0.185
## 3 Hors reseau public                                       0.231
## 4 Parc de stationnement ouvert a la circulation publique   0.190
## 5 Route Departementale                                     0.188
## 6 Route Nationale                                          0.170
## 7 Voie Communale                                           0.103
## # A tibble: 4 x 2
##   `get(colonne)` moyenne
##   <chr>            <dbl>
## 1 Bas de cote      0.170
## 2 Pente            0.140
## 3 Plat             0.129
## 4 Sommet de cote   0.150
## # A tibble: 9 x 2
##   `get(colonne)`      moyenne
##   <chr>                 <dbl>
## 1 autre                 0.204
## 2 boue                  0.280
## 3 corps gras ou huile   0.133
## 4 enneigee              0.118
## 5 flaques               0.165
## 6 inondee               0.209
## 7 mouillee              0.127
## 8 normale               0.131
## 9 verglacee             0.196
## # A tibble: 5 x 2
##   `get(colonne)`              moyenne
##   <chr>                         <dbl>
## 1 Sur accotement               0.404 
## 2 Sur bande d arret d urgence  0.181 
## 3 Sur chaussee                 0.126 
## 4 Sur piste cyclable           0.0924
## 5 Sur trottoir                 0.223 
## # A tibble: 3 x 2
##   `get(colonne)` moyenne
##   <chr>            <dbl>
## 1 00               0.118
## 2 03               0.157
## 3 99               0.141
ggplot(accidents %>% group_by(year) %>% summarise(moyenne= mean(Y)),aes(x=year,y=moyenne)) + geom_line()

- Proposer une réprésentation graphique pour visualiser le pourcentage d’accidents graves en fonction des autres variables continues

variable_class
## # A tibble: 22 x 2
##    variable class    
##    <chr>    <chr>    
##  1 Num_Acc  numeric  
##  2 an_nais  numeric  
##  3 occutc   numeric  
##  4 dep      factor   
##  5 nbv      numeric  
##  6 lartpc   numeric  
##  7 larrout  numeric  
##  8 year     numeric  
##  9 catu     character
## 10 sexe     character
## # ... with 12 more rows
ggplot(accidents %>% group_by(an_nais) %>% summarise(moyenne= mean(Y)),aes(x=an_nais,y=moyenne)) + geom_line()

ggplot(accidents %>% group_by(occutc) %>% summarise(moyenne= mean(Y)),aes(x=occutc,y=moyenne)) + geom_line()