Fouille de données et Dataviz 1

Author

Margot

Quarto

Quarto enables you to weave together content and executable code into a finished document. To learn more about Quarto see https://quarto.org.

Running Code

When you click the Render button a document will be generated that includes both content and the output of embedded code. You can embed code like this:

1 + 10
[1] 11

You can add options to executable code like this

[1] 4

The echo: false option disables the printing of code (only output is displayed).

Ecrire en LATEX dans Quarto

Il existe des formules en ligne et des formules en display.

En ligne: \(\int_0^{\infty}e^{-x^2}dx\)

En display :

\[ \int_0^{\infty}e^{-x^2}dx =\frac{\sqrt{\pi}}{2} \]

On considère un bateau de marchandises départies en cagettes. On On suppose que \(X \sim \mathcal{N}(100,20)\). On veut calculer la probabilité que X > 12O: \[ \Pr(X>120) \]

[1] 0.1586553

La probabilité que X > 120 est 0.1586553.

Comment faire pour que le résultat de ce calcul soit transparent et s’affiche directement dans mon document? 1- #| echo: false 2- ‘r …’

Exercice à faire

Reproduire le graphique suivant: Graphique à reproduire

Tidyverse

library(tidyverse)
── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
✔ dplyr     1.1.4     ✔ readr     2.1.5
✔ forcats   1.0.0     ✔ stringr   1.5.1
✔ ggplot2   3.5.1     ✔ tibble    3.2.1
✔ lubridate 1.9.4     ✔ tidyr     1.3.1
✔ purrr     1.0.4     
── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
✖ dplyr::filter() masks stats::filter()
✖ dplyr::lag()    masks stats::lag()
ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors

Les pipes

On joue avec l’enchainement de pipe: pour simplifier du code et synthétiser des expressions, on utilise des pipe \(|>\) qui renvoie une expression et un résultat vers une nouvelle expression.

120|>pnorm(100,20,lower.tail=FALSE)|>round(2)|>sqrt()
[1] 0.4

Manipuler des données

Ancienne manière d’appeler un jeu de données:

mtcars|> data()
df<-mtcars
df$mpg
 [1] 21.0 21.0 22.8 21.4 18.7 18.1 14.3 24.4 22.8 19.2 17.8 16.4 17.3 15.2 10.4
[16] 10.4 14.7 32.4 30.4 33.9 21.5 15.5 15.2 13.3 19.2 27.3 26.0 30.4 15.8 19.7
[31] 15.0 21.4

Nouvelle manière:

df|>select(mpg)
                     mpg
Mazda RX4           21.0
Mazda RX4 Wag       21.0
Datsun 710          22.8
Hornet 4 Drive      21.4
Hornet Sportabout   18.7
Valiant             18.1
Duster 360          14.3
Merc 240D           24.4
Merc 230            22.8
Merc 280            19.2
Merc 280C           17.8
Merc 450SE          16.4
Merc 450SL          17.3
Merc 450SLC         15.2
Cadillac Fleetwood  10.4
Lincoln Continental 10.4
Chrysler Imperial   14.7
Fiat 128            32.4
Honda Civic         30.4
Toyota Corolla      33.9
Toyota Corona       21.5
Dodge Challenger    15.5
AMC Javelin         15.2
Camaro Z28          13.3
Pontiac Firebird    19.2
Fiat X1-9           27.3
Porsche 914-2       26.0
Lotus Europa        30.4
Ford Pantera L      15.8
Ferrari Dino        19.7
Maserati Bora       15.0
Volvo 142E          21.4

Création de variables

On crée et déplace une variable pour convertir la donnée de miles/gallon (mpg) en litre par 100km (l_100km).

df <- df|>mutate(l_100km=100*3.78541/(mpg*1.60934))|>relocate(l_100km,.before = everything())

Création de graphiques

On génère un histogramme en ligne des consommations avec ggplot.

df|> ggplot(aes(x=l_100km))+
  geom_histogram(binwidth=5,fill="orange",color = "black")+
  labs(title="Histogramme de la consommation en litre par 100 km",
x ="Consommation (L/100km)",
y = "Nombre de voiture")

Reproduction de tableaux à partir de données brutes

article de base: https://par.moodle.lecnam.net/pluginfile.php/1611256/mod_resource/content/1/Generalized%20reverse….pdf

Intégrer et appréhender la donnée

library(Ecdat)
Loading required package: Ecfun

Attaching package: 'Ecfun'
The following object is masked from 'package:base':

    sign

Attaching package: 'Ecdat'
The following object is masked from 'package:datasets':

    Orange
#data(package="Ecdat") 

df <- Yogurt

#df |> names() obtenir le nom des variables

Commentaires sur le tableau:

Les prix moyens des yaourts sont harmonisés à l’once. 1 once = 28,35 g. 0.10682 est le prix moyen en dollar par once du Yoplait.

# moyenne
df$price.yoplait|>mean()/100
[1] 0.1068213

Il faudra convertir les unités en dollars pour rester homogène avec l’article.

# écart type
#formule 1/n: écart type de la population
((df$price.yoplait - mean(df$price.yoplait))^2/2412)|>sum()|>sqrt()
[1] 1.905869
#formule 1/(n-1): ecrat type sur l'échantillon
((df$price.yoplait - mean(df$price.yoplait))^2/2411)|>sum()|>sqrt()
[1] 1.906265
df$price.yoplait|> sd()
[1] 1.906265

Les variables qualitative de la bdd ont été encodées dichotomiquement pour obtenir des proportions de gens qui choisissent une certaine marque de yaourt (soit du market share). \[ X \sim B(n, p) \]

\[ E\left(\frac{X}{n}\right) = p \]

\[ Var\left(\frac{X}{n}\right) = \frac{1}{n^2} Var(X) = \frac{p(1 - p)}{n} \]