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

Un livre de Wikilivres.

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é[modifier | modifier le wikicode]

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
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[modifier | modifier le wikicode]

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[modifier | modifier le wikicode]

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[modifier | modifier le wikicode]

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[modifier | modifier le wikicode]

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[modifier | modifier le wikicode]

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[modifier | modifier le wikicode]

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é[modifier | modifier le wikicode]

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[modifier | modifier le wikicode]

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)[modifier | modifier le wikicode]

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[modifier | modifier le wikicode]

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 ;