Variable Aleatoria Discreta. Distribución Binomial.
p = 0.8
n = 3
masaBinomial <- function(x,p,n){
factorial(n)/(factorial(x)*factorial(n-x))*(p**x)*((1-p)**(n-x))
}
x = c(0:3)
prob = c(masaBinomial(0:3,p,n))
datos = data.frame(x ,prob)
datos
## x prob
## 1 0 0.008
## 2 1 0.096
## 3 2 0.384
## 4 3 0.512
#========================
# Preámbulo
#========================
rango = seq(0,3)
distribucion = dbinom(rango, size = 3,prob = 0.8)
datos=data.frame(rango,distribucion)
#Gráfico
library("ggplot2")
grafico = ggplot(data=datos,aes(x=rango,y=distribucion))
grafico = grafico + geom_bar(stat="identity",fill="lightblue3")
grafico = grafico + theme_bw() + ggtitle("Distribución de probabilidades")
grafico = grafico + xlab("Rango") + ylab("Probabilidad")
plot(grafico)
Variable Aleatoria Discreta. Distribución Binomial Negativa.
p = 0.10 # probabilidad de tener el gen
r = 2 # hasta obtener el r'esimo éxito (2 personas)
x = 4 # numero de test hasta detectar a 2 personas portadoras del gen
# P(X>=4) = 1 - P(X<=3)
x = 3
print(1-pnbinom(x-2,r,p)) # X >= 4
## [1] 0.972
E = r/p
print(E)
## [1] 20
#========================
# Preámbulo
#========================
personas = seq(0,100)
fallas = 2
distribucion = dnbinom(x=personas, fallas, prob=0.10)
datos=data.frame(personas,distribucion)
#Gráfico
library("ggplot2")
grafico = ggplot(data=datos,aes(x=personas,y=distribucion))
grafico = grafico + geom_bar(stat="identity",fill="lightblue3")
grafico = grafico + theme_bw() + ggtitle("Distribución de
probabilidades")
grafico = grafico + xlab("Pruebas") + ylab("Probabilidad")
plot(grafico)
Variable Aleatoria Discreta. Distribución Hipergeométrica, dado que no hay reposición en la muestra.
N = 800 # numero de elementos de la población (Total)
k = 240 # 30% de 800 hombres que tiene el marcador
n = 10 # tamaño de la muestra (10 hombres)
x = 1 # Escoger a 1 hombre que tenga el marcador
dhyper(x,k,N-k,n)
## [1] 0.1200794
# P(x>1)
# x > 1
phyper(x,k,N-k,n,lower.tail = F)
## [1] 0.8523523
#========================
# Preámbulo
#========================
library("Rlab")
exitos=seq(0:10) #Exitos
distribucion = dhyper(exitos,k,N-k,n)
datos=data.frame(exitos,distribucion)
#Gráfico
library("ggplot2")
grafico = ggplot(data=datos,aes(x=exitos,y=distribucion))
grafico = grafico + geom_bar(stat="identity",fill="lightblue3")
grafico = grafico + theme_bw() + ggtitle("Distribución de
probabilidades")
grafico = grafico + xlab("Hombres con marcador de cromosoma") + ylab("Probabilidad")
plot(grafico)
Variable Aleatoria Discreta. Distribución Poison
x = 5 # Numero de llamadas que se hacen en 1 hora
# Regla de 3
#8 llamadas -> 1 hora
#lambda(var)-> 1 hora
lambda = 8
#P(X=5)
dpois(x,lambda)
## [1] 0.09160366
# P(X<=3)
x = 3
# Probabilidad acumulada de x = 0 a x = 3
ppois(x,lambda)
## [1] 0.04238011
meanTime = 129 #min
sd = 14 #min
# media
meanTotal = 129 * 10 # minutos
print(meanTotal)
## [1] 1290
# varianza
varianza = sd * sd * 10 * 10 # minutos^2
print(varianza)
## [1] 19600
aproxBin = function(X,n,p){
return((X+0.5-n*p)/sqrt(n*p*(1-p)))
}
x = 3
n = 3
p = 0.8
pnorm(aproxBin(x, n, p), 0, 1)
## [1] 0.9438244
La aproximación mediante dist. normal se puede comprobar mediante n * p = 2,4, lo cual es menor que 5, por lo tanto no es buena y los valores son distantes.
x = 5
lambda = 8
z = function(k,lambda){return((k-lambda)/sqrt(lambda))}
prob = pnorm(z(x,lambda),0,1)
print(prob)
## [1] 0.1444222
x = (0:3)
sum(pnorm(z(x,lambda),0,1))
## [1] 0.06450039
Cómo se puede apreciar el lambda es 8, por lo que se estima que sea una buena aproximación y cómo se puede apreciar los valores son cercanos pero no precisos, por lo que no se podría decirse que es una aproximación buena.