Buscar este blog

Ejercicios en Excel y R (Binomial Negativa)




·           Binomial Negativa

1.         Resolviendo por Excel

La probabilidad que un alumno que no entienda binomial negativa repruebe el examen es de 75% si se pide seleccionar 5 alumnos reprobados al azar. Calcular la probabilidad de haber tomado 3 alumnos aprobados antes de los 5 reprobados.

Para resolver este ejercicio en Excel se usa la función que a continuación se  muestra.
NEGBINOMDIST (núm_fracasos;núm_éxitos;prob_éxito)

Una vez encontrada la función q se va a utilizar, se sustituyen los parámetros de la función con los que se muestran en la siguiente tabla: 


Binomial Negativa
r
5
x
3
p
0,75
q
0,25


Masa de Probabilidad
0,129776001
Media
1,666666667
Varianza
2,222222222


NEGBINOMDIST(3; 5; .75)=.1297
Media = r*(1-p)/p = 1,666666667
Varianza = r*(1-p)/(p*p) = 2,222222222

Por lo tanto, el 12.97% de tomar 3 alumnos aprobados antes de los 5 reprobados

2.        Usando la librería Stats en R
Para comenzar se debe de cargar la librería que se va usar, en este caso la librería stats.

> library(stats)

A continuación se busca la función que se va usar para resolver el ejercicio, para ellos podemos utilizar una función que nos mostrara una ayuda sobre las diferentes funciones que utiliza la librería stats, la función es:

>help(stats)

Esta función nos mostrara una ayuda en línea sobre el paquete que se desee, ahora en dicha pagina se buscara por la distribución requerida, en este caso la Distribución Binomial Negativa. 

Una vez ubicada la distribución podemos observar que tiene los siguientes métodos :
  1. rnbinom (n, size, prob) # Genera números aleatorios
  2. pnbinom (q, size, prob, lower.tail = TRUE, log.p = FALSE) # Muestra la función acumulada
  3. dnbinom (x, size, prob, log = FALSE) # Muestra la función de densidad
  4. qnbinom (p, size, prob, lower.tail = TRUE, log.p = FALSE) # Es la inversa de la funcion acumulada
Como se puede observar cada función tiene diferente uso, en este caso se utilizara la función dnbinom ya que queremos calcular la función de densidad.

Ahora volviendo a R, se introduce la función dnbinom para verificar los parámetros de la función:

> dnbinom
function (x, size, prob, mu, log = FALSE)
{
    if (!missing(mu)) {
        if (!missing(prob))
            stop("'prob' and 'mu' both specified")
        .Internal(dnbinom_mu(x, size, mu, log))
    }
    else .Internal(dnbinom(x, size, prob, log))
}
<environment: namespace:stats>

Ahora procedemos a resolver el problema usando la función anterior y los parámetros mostrados en la tabla anteriormente mostrada.

> x<-3
> r<-5
> p<-.75
> dnbinom(x,r,p)
[1] 0.129776
> Media<-(r*(1-p))/p
> Varianza<-(r*(1-p))/(p*p)
> Media
[1] 1.666666667
> Varianza
[1] 2.22222222

3.         Usando la librería distr en R

En este caso se seguirán los mismos pasos descritos en el punto anterior, la única diferencia es que se trabajara con la librería distr.

Esta librería su característica es que trabaja con objetos, es decir, se asigna a una variable que contendrá la misma función(s) que se utilizan en la librería stas, sin embargo las función de la librería en esta ocasión cambian y a continuación se muestran :

a.      r(X)(n) # Genera números aleatorios
b.      d(X)(x, log = FALSE) # Muestra la función de densidad
c.       p(X)(q, lower.tail = TRUE, log.p = FALSE) # Muestra la función acumulada
d.      q(X)(p, lower.tail = TRUE, log.p = FALSE) # Es la inversa de la función acumulada

Como en la librería anterior solo usaremos la función d, para calcular la función de densidad y se usara la misma función de la librería stats (dnbinom)

Volviendo a R y siguiendo los pasos del anterior punto, tenemos:

> library(distr) ## Se carga la librería que se va a usar
> help(distr) ## Muestra la ayuda en línea acerca de la librería que se va a usar
> ## Inicializamos las variables a utilizar para resolver el problema
> r<-3
> p<-.75
> x<-5
> P_X_5<-Nbinom(r,p)
> d(P_X_5)(X)
[1] 0.129776
       >## Para la Media y la Varianza, se deja igual ya que no se requiere de ninguna función determinada       para calcularlas
       >Media<-(r*(1-p))/p
       >Varianza<-(r*(1-p))/(p*p)
       >Media
       [1] 1.6666667
       >Varianza
       [1] 2.22222222