jueves, 22 de septiembre de 2016

14-Simulando variables aleatorias discretas.

Simulando variables discretas 2
#método feo 1
#simular una v.a. que tenga función de proba
fx=c(.5,.5)
#ejemplo 1
ns=10000; x=1
for(i in 1:ns){
  u=runif(1)
  if(u<=fx[1]){x[i]=0}else{x[i]=1}
}
hist(x,2,col=c(1,3))

#ejemplo 2
fx=c(.1,.05,.15,.3,.01,.39)
ns=10000; x=1
for(i in 1:ns){
  u=runif(1)
  if(u<=cumsum(fx)[1]){x[i]=0}
  for(j in 1:5){
    if(u>cumsum(fx)[j]&&u<=cumsum(fx)[j+1]){x[i]=j}
  }
}
hist(x,-0.5:5.5,freq=F,col=1:6)
abline(h=fx,col=1:6)

fx
## [1] 0.10 0.05 0.15 0.30 0.01 0.39
#método feo 2
#simular una v.a. que tenga función de proba
fx=c(.5,.5)
#ejemplo 1
ns=1000; x=1
#mo= muestra ordenada
mo=c(0,1)
x=sample(mo,ns,replace = T)
hist(x,2,col=c(1,3))

####TAREA MORAL
# qué significa concatenar (concatenate)
#ejemplo 2
fx=c(.1,.05,.15,.3,.01,.39)
ns=10000; x=1
mo=c(rep(0,(100*fx[1])),rep(1,(100*fx[2])),
     rep(2,(100*fx[3])),rep(3,(100*fx[4])),
     rep(4,(100*fx[5])),rep(5,(100*fx[6])))
x=sample(mo,ns,replace = T)
hist(x,-0.5:5.5,freq=F,col=1:6)
abline(h=fx,col=1:6)

#######################################
#Método que aprovecha la función sample
#######################################
ns=10000
########
fx=c(.1,.05,.15,.3,.01,.39)
x=sample(0:5,ns,replace = T ,prob = fx)
hist(x,-0.5:5.5,freq=F,col=1:6)
abline(h=fx,col=1:6)

#Ejemplo Poisson
fx=dpois(0:100,34)
x=sample(0:100,ns,replace = T ,prob = fx)
hist(x,20,freq=F,col=5)
points(0:100,fx,pch=18,col=2,cex=1.5)

#Ejemplo Binomial
ns=10000
fx=dbinom(0:50,50,0.4)
x=sample(0:50,ns,replace = T,prob = fx)
hist(x,-0.5:50.5,freq=F,col=7)
lines(0:50,fx,col=2,lwd=3,lty=2)

No hay comentarios:

Publicar un comentario