Recherche…


Introduction

R dispose de nombreuses fonctions intégrées pour travailler avec des distributions de probabilités, les documents officiels commençant à ?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)")

Binomial Prob Dist

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")

Binomial à inclinaison négative

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")

Binomial positivement incliné

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)")

Binomial simulé



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow