# Programmer en R/Les loi de probabilités, ajustement et test

* Introduction
** Faire ses premiers pas
** Installer R
** Choisir son environnement de travail
** Installer des librairies
** Se documenter
* Manipulation et mise en forme des données
** Manipuler les nombres
** Manipuler les vecteurs
** Manipuler les chaînes de caractères
** Manipuler les facteurs
** Manipuler les dates et les heures
** Manipuler un tableau de données
** Manipuler une liste
* Importation et exportation des données
** Importer un fichier CSV
** Résoudre les problèmes d'encodage des caractères
** Importer un fichier TSV
** Importer un fichier texte à largeur fixe
** Importer des données depuis un tableur
** Import un fichier JSON
** Extraire des données d'une page web
* Visualisation de données
** Comprendre la grammaire des graphiques
** Représenter une carte
** Visualiser une carte choroplèthe
* Modélisation statistique
** Estimer un modèle de régression linéaire
** Estimer un modèle de régression circulaire
* Communication
* Programmation avancée
** Programmer une boucle
** Programmer une fonction
* Outils mathématiques
** Optimiser une fonction
** Manipuler les matrices
** Les fonctions statistiques de base
** Les loi de probabilités, ajustement et test
* Introduction
** Faire ses premiers pas
** Installer R
** Choisir son environnement de travail
** Installer des librairies
** Se documenter
* Manipulation et mise en forme des données
** Manipuler les nombres
** Manipuler les vecteurs
** Manipuler les chaînes de caractères
** Manipuler les facteurs
** Manipuler les dates et les heures
** Manipuler un tableau de données
** Manipuler une liste
* Importation et exportation des données
** Importer un fichier CSV
** Résoudre les problèmes d'encodage des caractères
** Importer un fichier TSV
** Importer un fichier texte à largeur fixe
** Importer des données depuis un tableur
** Import un fichier JSON
** Extraire des données d'une page web
* Visualisation de données
** Comprendre la grammaire des graphiques
** Représenter une carte
** Visualiser une carte choroplèthe
* Modélisation statistique
** Estimer un modèle de régression linéaire
** Estimer un modèle de régression circulaire
* Communication
* Programmation avancée
** Programmer une boucle
** Programmer une fonction
* Outils mathématiques
** Optimiser une fonction
** Manipuler les matrices
** Les fonctions statistiques de base
** Les loi de probabilités, ajustement et test
[ Modifier le sommaire ]
Le logiciel R dispose d'une extension (package) dédiée aux statistiques, stats, qui est chargée par défaut. Il contient les lois statistiques suivantes : lois bêta, binomiale, de Cauchy, χ$^2$ (khi-deux, khi carré), exponentielle, F de Fisher, gamma, géométrique, hypergéométrique, log-normale, multinomiale, binomiale négative, normale, de Poisson, t de Student, uniforme, de Weibull, du paradoxe des dates d'anniversaire, du rang signé de Wilcoxon, de Tukey et de la somme des rangs de Wilcoxon.

## Fonctions relatives aux lois de probabilité

Pour chacune de ces lois, R fournit, lorsqu'elle est définie, la densité de probabilité, la fonction de répartition (probabilités cumulées), la fonction de probabilité inverse (quantiles) et un générateur de nombres aléatoires suivant cette loi. Les noms des fonctions sont déterminés de manière systématique.
Nom des fonctions liées aux lois de probabilité :
| Loi, suffixe | Fonctions, préfixe | Fonctions, préfixe | Fonctions, préfixe | Fonctions, préfixe |
| Loi, suffixe | Densité de probabilité d | Fonction de répartition p | Quantiles q | Générateur aléatoire r |
| bêta, beta | dbeta | pbeta | qbeta | rbeta |
| binomiale, binom | dbinom | pbinom | qbinom | rbinom |
| de Cauchy, cauchy | dcauchy | pcauchy | qcauchy | rcauchy |
| χ$^2$, chisq | dchisq | pchisq | qchisq | rchisq |
| exponentielle, exp | dexp | pexp | qexp | rexp |
| F, f | df | pf | qf | rf |
| gamma, gamma | dgamma | pgamma | qgamma | rgamma |
| géométrique, geom | dgeom | pgeom | qgeom | rgeom |
| hypergéométrique, hyper | dhyper | phyper | qhyper | rhyper |
| log-normale, lnorm | dlnorm | plnorm | qlnorm | rlnorm |
| multinomiale, multinom | dmultinom | pmultinom | qmultinom | rmultinom |
| binomiale négative, nbinom | dnbinom | pnbinom | qnbinom | rnbinom |
| normale, norm | dnorm | pnorm | qnorm | rnorm |
| de Poisson, pois | dpois | ppois | qpois | rpois |
| t de Student, t | dt | pt | qt | rt |
| uniforme, unif | dunif | punif | qunif | runif |
| de Weibull, weibull | dweibull | pweibull | qweibull | rweibull |

## Paramètres des fonctions

Les paramètres des fonctions dépendent des paramètres des lois. Deux options sont utilisées de manière générale :
* log = TRUE ou log.p = TRUE : la probabilité est exprimée par son logarithme népérien ln(p) ;
* lower.tail = FALSE : la probabilité est exprimée par la probabilité complémentaire 1 – p.
Ces options ne sont illustrées que pour la loi normale. Nous donnons quelques exemples pour des lois fréquemment utilisées.

### Loi normale

Une loi normale admet deux paramètres : l'espérance (ou moyenne, mean) μ (mu) et l'écart type (standard deviation) σ (sigma). On a donc :
* dnorm(x) : densité de probabilité en x de la loi normale centrée réduite, φ(x) ; dnorm(x, m, s) ou dnorm(x, mean = m, sd = s) : densité de probabilité en x de la loi normale d'espérance m et d'écart type s ;
* pnorm(x) : fonction de répartition en x de la loi normale centrée réduite, Φ(x) ; pnorm(x, m, s) ou pnorm(x, mean = m, sd = s) : idem pour la loi normale d'espérance m et d'écart type s ;
* qnorm(p) : quantile de la probabilité p pour la loi normale centrée réduite, Φ$^{–1}$(p) ; qnorm(p, m, s) ou qnorm(p, mean = m, sd = s) : idem pour la loi normale d'espérance m et d'écart type s ;
* rnorm(n) : génération de n nombres aléatoires suivant la loi normale centrée réduite ; rnorm(n, m, s) ou rnorm(n, mean = m, sd = s) : idem pour la loi normale d'espérance m et d'écart type s.
Par ailleurs, ces fonctions admettent des options :
* logarithme népérien de la probabilité : dnorm(x, mean = m, sd = s, log = TRUE) (= ln(dnorm(x, m, s))), pnorm(x, mean = m, sd = s, log.p = TRUE) (= ln( pnorm(x, m, s))), qnorm(p, mean = m, sd = s, log.p = TRUE) (= qnorm(exp(p), m, s)) ;
* probabilité complémentaire : pnorm(x, mean = m, sd = s, lower.tail = FALSE) (= 1 – pnorm(x, m, s)), qnorm(p, mean = m, sd = s, lower.tail = FALSE) (= qnorm(1 - p, m, s)).

### Loi uniforme

Une loi uniforme admet deux paramètres : le minimum a et le maximum b de l'intervalle de définition. On a donc :
* dunif(x) : densité de probabilité en x de la uniforme sur [0 ; 1] ; dunif(x, a, b) ou dunif(x, min = a, max = b) : densité de probabilité en x de la loi uniforme sur [a ; b] ;

### Loi binomiale

Une loi binomiale admet deux paramètres : la taille de l'échantillon (size, nombre de tirages) n et la probabilité de réussite de chaque épreuve, P. On a donc :
* dbinom(k, n, P) ou dbinom(k, size = n, prob = P) : probabilité d'avoir k réussite parmi n tirages ;

### Loi exponentielle

Une loi exponentielle admet un paramètre : le taux (rate) λ (lambda). On a donc :
* dexp(x, lambda) ou dexp(x, rate = lambda) : densité de probabilité en x de la loi exponentielle de paramètre beta et lambda ;

### Loi de Poisson

Une loi de Poisson admet un paramètre : son espérance λ (lambda). On a donc :
* dpois(k, l) ou dpois(k, lambda = l) : densité de probabilité en k de la loi de Poisson de paramètre l ;

### Loi du khi-carré

Une loi du χ$^2$ admet un paramètre : le nombre de degrés de liberté (degrees of freedom) k. On a donc :
* dchisq(x, k) ou dchisq(x, df = k) : densité de probabilité en x de la loi du χ$^2$ à k degrés de liberté ;
Les fonctions sont aussi définies pour les lois non-centrées ; on introduit alors le paramètre de décentralisation (non-centering parameter) λ : dchisq(x, k, lambda) ou dchisq(x, df = k, ncp = lambda).

### Loi t de Student

Une loi t de Student admet un paramètre : le nombre de degrés de liberté (degree of freedom) k. On a donc :
* dt(x, k) ou dt(x, df = k) : densité de probabilité en x de la loi t de Student à k degrés de liberté ;
Les fonctions sont aussi définies pour les lois non-centrées ; on introduit alors le paramètre de décentralisation μ : dt(x, k, mu) ou dt(x, df = k, ncp = mu).

### Loi F (de Fisher)

Une loi F admet deux paramètres : les degrés de liberté (degrees of freedom) ν$_1$ et ν$_2$ (nu). On a donc :
* df(x, nu1, nu2) ou df(x, df1 = nu1, df2 = nu2) : densité de probabilité en x de la loi F à ν$_1$ et ν$_2$ degrés de liberté ;
Les fonctions sont aussi définies pour les lois non-centrées ; on introduit alors le paramètre de décentralisation λ : df(x, nu1, nu2, lambda) ou df(x, df1 = nu1, df2 = nu2, ncp = lambda).

### Loi de Weibull

Une loi de Weibull admet deux paramètres : le paramètre de forme (shape) β (bêta, parfois noté k) et le paramètre d'échelle (scale) λ (lambda). On a donc :
* dweibull(x, beta, lambda) ou dweibull(x, shape = beta, scale = lambda) : densité de probabilité en x de la loi de Weibull de paramètres beta et lambda ;