Para detalles de las distribuciones puede obtener el libro “Modelos de probabilidad” en la siguiente dirección
https://1drv.ms/b/s!Aj-hHTVbsx01hs9cx6tbr9v1vZKjzQ?e=qyn6U4
Los métodos de simulación de variables aleatorias continuas pueden adaptarse para variables aleatorias continuas, como en el caso particular del método de la transformada inversa.
Sea una variable aleatoria discreta para la cualPara simular \(X\) tal que \(P(X=x_{j})= p_{j}\), sea \(U\) una variable aleatoria continua con distribución uniforme en \((0,1)\) y sea: \[\begin{equation*} X= \begin{cases} x_{1} &\text{si $ U \leq p_{1} $}\\ x_{2} &\text{si $ p_{1}<U \leq p_{1}+p_{2} $}\\ x_{3} &\text{si $ p_{2}<U \leq p_{1}+p_{2}+p_{3} $}\\ \vdots\\ x_{j} &\text{si $ \displaystyle\sum_{i=1}^{j-1}p_{i} < U \leq \displaystyle\sum_{i01}^{j}p_{i}$}\\ \end{cases} \end{equation*}\]
En general, para utilizar este método para simular una variable aleatoria discreta se sigue el siguiente procedimiento:
Calcular la probabilidad para la distribución de probabilidad, \(f(x)\), de la variable a modelar.
Calcular las probabilidades acumuladas, \(F(x)\).
Generar números psudoaleatorios de la distribución uniforme en (0,1).
Comparar el valor de \(F(x)\) y determinar los valores de \(x\) que correspondan a \(F(x)\).
Ejemplo. Durante 50 días se observó el número de unidades de un artículo que se demandaron en una tienda y se obtuvieron los datos que se muestran a continuación:
La simulación de esta distribución de probabilidad empírica se muestra a continuación.
t(da)
## [,1] [,2] [,3] [,4] [,5] [,6] [,7]
## demanda 0.00 1.00 2.0 3.0 4.00 5.00 6.00
## días 3.00 8.00 10.0 15.0 9.00 3.00 2.00
## probabilidad 0.06 0.16 0.2 0.3 0.18 0.06 0.04
u=runif(100000,0,1)
CL="0:0.06=0;0.06:0.22=1;0.22:0.42=2;0.42:0.72=3;0.72:0.90=4;0.90:0.96=5;0.96:1=6"
x=recode(u,CL)
T1<-table(x)
T2<-T1/100000
par(mfrow=c(1,2))
plot(T2,ylab="",main="",xlab="demanda simulada")
abline(h=0)
demanda<-c(0,1,2,3,4,5,6)
prob<-c(0.06,0.16, 0.2,0.3,0.18,0.06,0.04)
plot(demanda,prob, type="h",main="",xlab="demanda real",lwd=2,ylab="")
abline(h=0)
La función de probabilidad de una variable aleatoria discreta tiene la forma: \[\begin{equation*} f(x)= \begin{cases} \dfrac{1}{N} &\text{si $ x=0,1,2,\cdots,N$}\\ 0, &\text{en otro caso.} \end{cases} \end{equation*}\] La función de distribución acumulada es: \[\begin{equation*} F(x)= \begin{cases} 0, &\text{si x<1}\\ \dfrac{1}{N}, &\textit{si $1\leq x<2$}\\ \dfrac{2}{N}, &\textit{si $2\leq x<3$}\\ \vdots \\ \dfrac{k}{N} &\textit{si $k\leq x<N$}\\ 1 ,&\textit{si $x \geq N $} \end{cases} \end{equation*}\]
Ejemplo. Simular la variable aleatoria uniforme discreta que tiene función de probabilidad}
\[\begin{equation*} f(x)= \begin{cases} \dfrac{1}{10} &\text{si $ x=0,1,2,\cdots,10$}\\ 0 &\text{en otro caso.} \end{cases} \end{equation*}\]
Se hace:
\[\begin{equation*} X= \begin{cases} 1 & \text{si $ 0 \leq u \leq 0.1 $}\\ 2& \text{si $ 0.1< u \leq 0.2 $}\\ 3& \text{si $ 0.2< u \leq 0.3 $}\\ 4& \text{si $ 0.3< u \leq 0.4 $}\\ 5& \text{si $ 0.4< u \leq 0.5 $}\\ 6& \text{si $ 0.5< u \leq 0.6 $}\\ 7& \text{si $ 0.6< u \leq 0.7 $}\\ 8& \text{si $ 0.7< u \leq 0.8 $}\\ 9& \text{si $ 0.8< u \leq 0.9 $}\\ 10& \text{si $ 0.9< u \leq 1.00 $} \end{cases} \end{equation*}\]
u=runif(100000,0,1)
CL="0:0.1=1;0.1:0.2=2;0.2:0.3=3;0.3:0.4=4;0.4:0.5=5;0.5:0.6=6;0.6:0.7=7;0.7:0.8=8;0.8:0.9=9;0.9:1=10"
x=recode(u,CL)
T1<-table(x)
T2<-T1/100000
par(mfrow=c(1,2))
plot(T2,main=" ",ylab="",xlab="Dist. simulada")
abline(h=0)
valores<-c(1,2,3,4,5,6,7,8,9,10)
proba=c(0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1)
plot(valores,proba, type="h",main="",ylim=c(0,0.11),ylab="",lwd=2,xlab="Dist. teórica")
Sea una variable aleatoria con distribución Bernoulli de parámetro \(p\) \[\begin{equation*} f(x)= \begin{cases} 1-p & \text{si $ x=0 $}\\ p & \text{si $x=1 $} \end{cases} \end{equation*}\] Y la distribución acumulada: \[\begin{equation*} F(x)= \begin{cases} 1-p & \text{si $0\leq x<1-p $}\\ 1 & \text{si $x\geq 1 $} \end{cases} \end{equation*}\] Entonces, se hace: \[\begin{equation*} x= \begin{cases} 0 & \text{si $ 0\leq u \leq 1-p $}\\ 1 & \text{si $1-p< u \leq 1 $} \end{cases} \end{equation*}\]
Ejemplo. Sea una variable aleatoria discreta con distribución Bernoulli de parámetro $ p=0.3 $
Se generan números pseudoaleatorios en (0,1), \(u\).
Entonces, se tiene que: \[\begin{equation*} x= \begin{cases} 0 & \text{si $ 0\leq u \leq 0.7 $}\\ 1 & \text{si $0.7< u \leq 1 $} \end{cases} \end{equation*}\]
u=runif(100000,0,1)
CL="0:0.7=0;0.7:1.0=1"
x=recode(u,CL)
T1<-table(x)
T2<-T1/100000
par(mfrow=c(1,2))
plot(T2,ylab="",main="",xlab="Dist. Simulada")
abline(h=0)
y<-c(0, 1)
prob<-c(0.7,0.3)
plot(y,prob, type="h",main="",ylim=c(0,0.75),xlab="Dist. teórica",ylab="",lwd=2)
abline(h=0)
La función de probabilidad de una variable aleatoria con distribución binomial es: \[\begin{equation*} f(x)= \begin{cases} \dbinom{n}{x}p^{x}(1-p)^{n-x} &\text{si $ x=0,1,2,\ldots,n$}\\ 0 &\text{en otro caso.} \end{cases} \end{equation*}\] Una variable aleatoria discreta con distribución binomial con parámetros \(n\) y \(p\) puede ser generada a partir de la suma de \(n\) variables aleatorias Bernoulli con parámetro \(p\).
\[\begin{equation*} x=\displaystyle\sum_{i=1}^{n}x_{i}\sim b(n,p) \end{equation*}\]
Ejemplo. Simular una variable aleatoria discreta que tiene distribución binomial con parámetros \(n =8\) y \(p=0.5\)
u1=runif(100000,0,1);CL="0:0.9=0;0.9:1.0=1";x1=recode(u1,CL)
u2=runif(100000,0,1);CL="0:0.9=0;0.9:1.0=1";x2=recode(u2,CL)
u3=runif(100000,0,1);CL="0:0.9=0;0.9:1.0=1";x3=recode(u3,CL)
u4=runif(100000,0,1);CL="0:0.9=0;0.9:1.0=1";x4=recode(u4,CL)
u5=runif(100000,0,1);CL="0:0.9=0;0.9:1.0=1";x5=recode(u5,CL)
u6=runif(100000,0,1);CL="0:0.9=0;0.9:1.0=1";x6=recode(u6,CL)
u7=runif(100000,0,1);CL="0:0.9=0;0.9:1.0=1";x7=recode(u7,CL)
u8=runif(100000,0,1);CL="0:0.9=0;0.9:1.0=1";x8=recode(u8,CL)
xt=x1+x2+x3+x4+x5+x6+x7+x8
T1<-table(xt)
T2<-T1/100000
par(mfrow=c(1,2))
plot(T2,ylab="",main="",xlab="Dist. simulada")
abline(h=0)
x<-0:8
y=dbinom(x,8,0.1)
plot(x,y,main="",xlab="Dist. teórica",ylab="", lwd=2,xlim=c(0,8),type="h",ylim=c(0,0.5))
La distribución Poisson puede simularse mediante el método de transformada inversa.
Ejemplo. Simular la distribución Poisson de parámetro \(\lambda = 1.5\).
u=runif(100000,0,1)
CL="0:0.2231302=0;
0.2231303:0.5578254=1;
0.5578255:0.8088468=2;
0.8088469:0.9343575=3;
0.9343576:0.9814241=4;
0.9814242:0.9955440=5;
0.9955441:0.9990740=6;
0.9990741:0.9998304=7;
0.9998305:0.9999723=8;
0.9999724:0.9999959=9;
0.9999960:1=10"
x=recode(u,CL)
T1<-table(x)
T2<-T1/100000
par(mfrow=c(1,2))
plot(T2,ylab="",main="",xlab="Dist. Simulada")
abline(h=0)
x=0:8
y=dpois(x,1.5)
plot(x,y,main="",lwd=2 ,xlim=c(0,11),type="h",ylim=c(0,0.35),ylab="",xlab="Dist. teórica")
La distribución geométrica tiene función de probabilidad dada por: \(f(x)=pq^{x}\)
Suponer que los éxitos ocurren con probabilidad \(p\,(0<p<1)\), y que se realizan ensayos hasta que ocurre un éxito. Sea \(X\) la variable aleatoria discreta que indica el número de ensayos hasta que ocurre el primer éxito, entonces,
$P(X=i)=p(1-p)^{i} $$ i$
Entonces,
\[\begin{align*} \displaystyle\sum_{i=1}^{j-1}P(X=i)&=1-P(X>j-1)\\ &=1-P(primeros\,j-1\,sean\,fallas)\\ &=1-(1-p)^{j-1}\quad j \geq 1 \end{align*}\] Se puede simular una variable uniforme, \(U\), en el intervalo (0,1) y hacer \(X\) igual al valor \(j-\) ésimo para el cualo en forma equivalente
donde \(1-U\) tiene la misma distribución que \(U\), entonces se puede definir \(X\) como:
\[\begin{align*} X&=min \lbrace \vert (1-p)^{j} \leq U \rbrace \\ &=min \lbrace j\vert j\,Ln\,(1-p) \leq ln \, U \rbrace\\ &=min \lbrace j \vert j \geq \dfrac{ln\,U}{ln\,(1-p)}\rbrace \end{align*}\] Con lo cual, \[\begin{equation*} X=\left[ \dfrac{ln\,U}{Ln \,(1-p)} \right] \end{equation*}\] donde \(\left[ \,\right]\) es la parte entera.
Ejemplo. Simular una distribución geométrica con \(p=0.3\)
p<-0.3
u<-runif(100000,0,1)
x<-floor(log(u)/log(1-p))
table(x)
## x
## 0 1 2 3 4 5 6 7 8 9 10 11 12
## 29918 21051 14644 10342 7149 5021 3514 2491 1813 1218 849 594 405
## 13 14 15 16 17 18 19 20 21 22 23 24 25
## 287 214 165 107 83 38 31 24 18 11 4 4 2
## 26 29 39
## 1 1 1
par(mfrow=c(1,2))
plot(table(x),main="",ylab="",xlab="Dist. simulada")
abline(h=0)
y=0:max(x)
plot(dgeom(y,0.3),xlim=c(0,max(x)),ylab="",ylim=c(0,0.3),type="h",lwd=2,
main="",xlab="Dist. teórica")
La distribución binomial negativa tiene función de probabilidad: \[\begin{equation*} f(x)= \begin{cases} \dbinom{x + k -1}{k-1}p^{k}(1-p)^{x} &\text{si $ x=0, 1, 2,\ldots$}\\ 0 &\text{en otro caso} \end{cases} \end{equation*}\] La distribución binomial negativa de parámetros \(k\) y \(p\) puede simularse a partir de la distribución geométrica.
\(Y=X_{1}+X_{2}+X_{3}+\cdots +X_{k}\)
Ejemplo. Simular una variable aleatoria discreta con distribución binomial negativa de parámetros \(k=6\) y \(p=0.4\).
p=0.4
u1=runif(100000,0,1);x1=floor(log(u1)/log(1-p))
u2=runif(100000,0,1);x2=floor(log(u2)/log(1-p))
u3=runif(100000,0,1);x3=floor(log(u3)/log(1-p))
u4=runif(100000,0,1);x4=floor(log(u4)/log(1-p))
u5=runif(100000,0,1);x5=floor(log(u5)/log(1-p))
u6=runif(100000,0,1);x6=floor(log(u6)/log(1-p))
x=x1+x2+x3+x4+x5+x6
T1<-table(x)
T2<-T1/100000
par(mfrow=c(1,2))
plot(T2,main="",ylab="",xlab="Dist. simulada")
y=0:max(x)
plot(dnbinom(y,6,0.4),xlim=c(0,max(x)),ylim=c(0,0.1),type="h",
lwd=2, main="",xlab="Dist. teórica")
— |
---|