Buscar..


Introducción

R tiene muchas funciones integradas para trabajar con distribuciones de probabilidad, con documentos oficiales que comienzan en ?Distributions .

Observaciones

Generalmente hay cuatro prefijos:

  • d -La función de densidad para la distribución dada.
  • p -La función de distribución acumulativa
  • q -Obtener el cuantil asociado con la probabilidad dada
  • r-obtener una muestra aleatoria

Para las distribuciones integradas en la instalación básica de R, consulte ?Distributions .

Distribución normal

Usemos *norm como ejemplo. De la documentación:

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)

Así que si quisiera saber el valor de una distribución normal estándar en 0, lo haría

dnorm(0)

Lo que nos da 0.3989423 , una respuesta razonable.

De la misma manera pnorm(0) da .5 . Nuevamente, esto tiene sentido, porque la mitad de la distribución está a la izquierda de 0.

qnorm hará esencialmente lo contrario de pnorm . qnorm(.5) da 0 .

Finalmente, está la función rnorm :

rnorm(10)

Se generarán 10 muestras del estándar normal.

Si desea cambiar los parámetros de una distribución dada, simplemente cámbielos como se indica.

rnorm(10, mean=4, sd= 3)

Distribución binomial

Ahora ilustramos las funciones dbinom , pbinom , qbinom y rbinom definidas para la distribución binomial .

La función dbinom() da las probabilidades para varios valores de la variable binomial. Mínimamente requiere tres argumentos. El primer argumento para esta función debe ser un vector de cuantiles (los valores posibles de la variable aleatoria X ). El segundo y tercer argumento son los defining parameters de la distribución, a saber, n (el número de ensayos independientes) y p (la probabilidad de éxito en cada ensayo). Por ejemplo, para una distribución binomial con n = 5 , p = 0.5 , los valores posibles para X son 0,1,2,3,4,5 . Es decir, la función dbinom(x,n,p) da los valores de probabilidad P( X = x ) para 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
> 

La gráfica de distribución de probabilidad binomial se puede mostrar como en la siguiente figura:

> 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

Tenga en cuenta que la distribución binomial es simétrica cuando p = 0.5 . Para demostrar que la distribución binomial está sesgada negativamente cuando p es mayor que 0.5 , considere el siguiente ejemplo:

> 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 sesgado negativamente

Cuando p es menor que 0.5 la distribución binomial está sesgada positivamente como se muestra a continuación.

> 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 positivamente sesgado

Ahora ilustraremos el uso de la función de distribución acumulativa pbinom() . Esta función se puede utilizar para calcular probabilidades como P( X <= x ) . El primer argumento de esta función es un vector de cuantiles (valores 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 probabilidad anterior también se puede obtener de la siguiente manera:

# P(X <= 2) = P(X=0) + P(X=1) + P(X=2)
> sum(dbinom(0:2,5,0.5))
[1] 0.5

Para calcular, probabilidades del tipo: 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
> 

Presentando la distribución binomial en forma de tabla:

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

El rbinom() se utiliza para generar muestras aleatorias de tamaños específicos con valores de parámetros dados.

# 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 simulado



Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow