R Language
Fonctions de distribution
Recherche…
Introduction
?Distributions
.
Remarques
Il y a généralement quatre préfixes:
- d -La fonction de densité pour la distribution donnée
- p -La fonction de distribution cumulative
- q -Obtenir le quantile associé à la probabilité donnée
- r -Obtenir un échantillon aléatoire
Pour les distributions intégrées dans l'installation de base de R, voir ?Distributions
.
Distribution normale
Utilisons *norm
comme exemple. De la documentation:
dnorm(x, mean = 0, sd = 1, log = FALSE)
pnorm(q, mean = 0, sd = 1, lower.tail = TRUE, log.p = FALSE)
qnorm(p, mean = 0, sd = 1, lower.tail = TRUE, log.p = FALSE)
rnorm(n, mean = 0, sd = 1)
Donc, si je voulais connaître la valeur d'une distribution normale standard à 0, je le ferais
dnorm(0)
Ce qui nous donne 0.3989423
, une réponse raisonnable.
De la même manière, pnorm(0)
donne .5
. Encore une fois, cela a du sens, car la moitié de la distribution est à gauche de 0.
qnorm
fera essentiellement le contraire de pnorm
. qnorm(.5)
donne 0
.
Enfin, il y a la fonction rnorm
:
rnorm(10)
Génère 10 échantillons à partir de la normale.
Si vous voulez changer les paramètres d'une distribution donnée, changez-les simplement
rnorm(10, mean=4, sd= 3)
Distribution binomiale
Nous illustrons maintenant les fonctions dbinom
, pbinom
, qbinom
et rbinom
définies pour la distribution binomiale .
La fonction dbinom()
donne les probabilités pour différentes valeurs de la variable binomiale. Au minimum, il nécessite trois arguments. Le premier argument de cette fonction doit être un vecteur de quantiles (les valeurs possibles de la variable aléatoire X
). Les deuxième et troisième arguments sont les defining parameters
la distribution, à savoir n
(le nombre d'essais indépendants) et p
(la probabilité de succès dans chaque essai). Par exemple, pour une distribution binomiale avec n = 5
, p = 0.5
, les valeurs possibles pour X sont 0,1,2,3,4,5
. C'est-à-dire que la fonction dbinom(x,n,p)
donne les valeurs de probabilité P( X = x )
pour x = 0, 1, 2, 3, 4, 5
.
#Binom(n = 5, p = 0.5) probabilities
> n <- 5; p<- 0.5; x <- 0:n
> dbinom(x,n,p)
[1] 0.03125 0.15625 0.31250 0.31250 0.15625 0.03125
#To verify the total probability is 1
> sum(dbinom(x,n,p))
[1] 1
>
Le graphique de distribution de probabilité binomiale peut être affiché comme dans la figure suivante:
> x <- 0:12
> prob <- dbinom(x,12,.5)
> barplot(prob,col = "red",ylim = c(0,.2),names.arg=x,
main="Binomial Distribution\n(n=12,p=0.5)")
Notez que la distribution binomiale est symétrique lorsque p = 0.5
. Pour démontrer que la distribution binomiale est faussée lorsque p
est supérieur à 0.5
, considérez l'exemple suivant:
> n=9; p=.7; x=0:n; prob=dbinom(x,n,p);
> barplot(prob,names.arg = x,main="Binomial Distribution\n(n=9, p=0.7)",col="lightblue")
Lorsque p
est inférieur à 0.5
la distribution binomiale est positivement asymétrique, comme indiqué ci-dessous.
> n=9; p=.3; x=0:n; prob=dbinom(x,n,p);
> barplot(prob,names.arg = x,main="Binomial Distribution\n(n=9, p=0.3)",col="cyan")
Nous allons maintenant illustrer l'utilisation de la fonction de distribution cumulative pbinom()
. Cette fonction peut être utilisée pour calculer des probabilités telles que P( X <= x )
. Le premier argument de cette fonction est un vecteur de quantiles (valeurs de x).
# Calculating Probabilities
# P(X <= 2) in a Bin(n=5,p=0.5) distribution
> pbinom(2,5,0.5)
[1] 0.5
La probabilité ci-dessus peut également être obtenue comme suit:
# P(X <= 2) = P(X=0) + P(X=1) + P(X=2)
> sum(dbinom(0:2,5,0.5))
[1] 0.5
Pour calculer, les probabilités du type: P( a <= X <= b )
# P(3<= X <= 5) = P(X=3) + P(X=4) + P(X=5) in a Bin(n=9,p=0.6) dist
> sum(dbinom(c(3,4,5),9,0.6))
[1] 0.4923556
>
Présenter la distribution binomiale sous la forme d'un tableau:
> n = 10; p = 0.4; x = 0:n;
> prob = dbinom(x,n,p)
> cdf = pbinom(x,n,p)
> distTable = cbind(x,prob,cdf)
> distTable
x prob cdf
[1,] 0 0.0060466176 0.006046618
[2,] 1 0.0403107840 0.046357402
[3,] 2 0.1209323520 0.167289754
[4,] 3 0.2149908480 0.382280602
[5,] 4 0.2508226560 0.633103258
[6,] 5 0.2006581248 0.833761382
[7,] 6 0.1114767360 0.945238118
[8,] 7 0.0424673280 0.987705446
[9,] 8 0.0106168320 0.998322278
[10,] 9 0.0015728640 0.999895142
[11,] 10 0.0001048576 1.000000000
>
Le rbinom()
est utilisé pour générer des échantillons aléatoires de tailles spécifiées avec une valeur de paramètre donnée.
# Simulation
> xVal<-names(table(rbinom(1000,8,.5)))
> barplot(as.vector(table(rbinom(1000,8,.5))),names.arg =xVal,
main="Simulated Binomial Distribution\n (n=8,p=0.5)")