You are on page 1of 9

set.

seed(123)
n= 1000
p = 0.52
u = runif(n);
b1 = ifelse (u<=p,1,0)
saida = matrix (c(p,p*(1-p), mean(b1), var(b1)), ncol=2,byrow=TRUE)
saida
dimnames(saida) =list (c('Terico' , 'Imprico'),
c('Mdia', 'Varincia'))
saida
tb= table(b1)
tb
barplot(tb, space = 1.5, col= c("lightblue", "mistyrose"))
tb.prop=prop.table(tb)
tb.prop
graphics.off()
barplot(tb.prop,space = 1.5,col=1.2, angle = c(45,90),density= 20)
title(main =list ("BERNOULLI com n=100 e p=0,52", font =4))
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
set.seed(1234)
nobs = c(10,100,500,1000,5000,10000)
p=0.52
b1.1 = c()
for(i in 1:length(nobs)){
u= runif(nobs[i])
b1=ifelse(u<=p,1 , 0)
b1.1 = rbind (b1.1,as.matrix(b1))
}
n.obs=rep(nobs,times=nobs)
saida1=cbind(n.obs, b1.1)
head(saida1)
tapply(saida1[,2], saida1[,1],mean)
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
#1 forma de armazenar valores gerados#
set.seed(1234)
nobs = c(10,100,500,1000,5000,10000)
p=0.52
b1.1 = c()
n.obs=c()
for(i in 1:length(nobs)){
u= runif(nobs[i])
b1=ifelse(u<=p,1 , 0)
n.obs = rbind (n.obs, as.matrix(rep(nobs[i],nobs[i])))
b1.1=rbind(b1.1, as.matrix(b1))
}

saida1=cbind(n.obs, b1.1)
dim(saida1)
head(saida1)
media1= tapply(saida1 [,2],saida1[,1],mean)
vari1=tapply(saida1[,2],saida1[,1],var)
media1
vari1
#2 forma de armazenar valores gerados#
set.seed(1234)
nobs = c(10,100,500,1000,5000,10000)
p=0.52
b1.1 = vector('numeric', length=sum(nobs))
n.obs=vector('numeric', length=sum(nobs))
for(i in 1:length(nobs)){
u= runif(nobs[i])
b1=ifelse(u<=p,1 , 0)
b1.1[(sum(nobs[1:i]) - nobs[i]+1) : (sum (nobs[1:i]))]=b1
}
length(b1.1)
set.seed(1234)
nobs = c(10,100,500,1000,5000,10000)
p=0.52
b1.1 = vector('numeric', length=sum(nobs))
n.obs=vector('numeric', length=sum(nobs))
for(i in 1:length(nobs)){
u= runif(nobs[i])
b1=ifelse(u<=p,1 , 0)
b1.1[(sum(nobs[1:i]) - nobs[i]+1) : (sum (nobs[1:i]))]=b1
n.obs[(sum(nobs[1:i]) - nobs[i]+1) : (sum (nobs[1:i]))]=rep(nobs[i],nobs[i])
}
saida1=cbind(n.obs, b1.1)
dim(saida1)
head(saida1)
media2= tapply(saida1 [,2],saida1[,1],mean)
vari2=tapply(saida1[,2],saida1[,1],var)
media2
vari2
#3 forma de armazenar valores gerados#
set.seed(1234)
nobs=c(10,100,500,1000,5000,10000)
#nobs = seq(10,10000,100)
p=0.52

b1.1 = vector('numeric', length=sum(nobs))


n.obs=vector('numeric', length=sum(nobs))
gerados=c()
dadosnovos=c()
for(i in 1:length(nobs)){
n=nobs[i]
u= runif(n)
b1=ifelse(u<=p,1 , 0)
ns=rep(n,n)
dadosnovos=cbind(ns,b1)
gerados=rbind(gerados,dadosnovos)
}
dim(gerados)
sum(nobs)
length(ns)
media3=tapply(gerados[,2],gerados [,1],mean)
vari3=tapply(gerados[,2],gerados[,1],var)
saida=rbind(media3,vari3)
row.names(saida)=c('Mdia' , 'Varincia')
round(saida,3)
#verificando o comportamento do tamanho da amostra
nobs=seq(10,10000,100)
#phat
plot(nobs, media3,type='l')
abline (h=0, col=2,lty='dashed')
#vies
plot(nobs,(media3-1),type='l')
abline (h=0, col=2,lty='dashed')
#vies relativo
plot(nobs,(media3-1)/p,type='l')
abline (h=0, col=2,lty='dashed')
rbind(media1 , media2, media3)
rbind(vari1,vari2,vari3)
#EXERCICIO COM AMOSTRA BINOMIAL
set.sees(1234)
N=10000
n=10

p=0.52
x=c()
for (i in 1:N) {
u=runif(n)
b1=ifelse(u<=p,1,0)
x=rbind(x,sum(b1))
}
length (x)
#ITEM A (Esperana estimada da v.a. gerada)
saida=matrix(c(n*p,n*p*(1-p),mean(x),var(x)),ncol=2,byrow=T)
dimnames(saida)=list(c('Teorico','Impirico'),
c ('Mdia', 'Varincia'))
saida
#ITEM B (Distribuio amostral de phat,histograma e curva teorica da distribuio)
phat=x/n
tb=prop.table(table(phat))
tb
#distribuio de frequencia de phat
dist.Bi=cbind(table(phat),prop.table(table(phat)))
colnames(dist.Bi)=c('Fi','fr')
dist.Bi
#distribuio de frequencia de phat (em classes)
phat.classes=cut(phat,seq(0,1,len=10))
phat.classes
dist.Bi=cbind(table(phat.classes),prop.table(table(phat.classes)))
colnames(dist.Bi)=c('Fi','fr')
dist.Bi
#grficos
op=par(mfrow=c(1,2))
plot(prop.table(table(phat)),ylim=c(0,.3),ylab='Fr',, xlab=expression(hat(p)))
points(0:n/n,rep(0,(n+1)),col=2,pch=16)
points (0:n/n,dbinom(0:n,n,p),col=2,pch=8)
text (0:n/n,prop.table(table(phat))+.02,labels=round(dbinom(0:n,n,p),2))
#Histograma
hist(phat,breaks=10,prob=T,col='lightblue', main='',ylab='Fr',
xlab=expression(hat(p)))
lines(xs<-seq(0,n/n,len=100),
dnorm(xs,p,sd=sqrt(p*(1-p)/n)),col='red')
#par(op)
#graphics.off()
#dev.off

#ITEM C (Calcule o vies de phat)


vies=mean(phat)-p
vies
#ITEM D (P(X<4) = )
probT= pbinom(4,n,p)
probT
probI=sum(x<=4)/length(x)
probI
#Item E (Fazer um grfico para a variavel amostrada x~ N(np,npq))
dist.Bi=cbind(table(x),prop.table(table(x)))
colnames(dist.Bi)=c('Fi','fr')
dist.Bi
op=par(mfrow=c(1,4),bg="lightblue")
plot(prop.table(table(x)),main='',ylab='Fr',
xlab=expression(x))
points(0:n,rep(0,(n+1)),col=2,pch=16)
points (0:n,dbinom(0:n,n,p),col=2,pch=8)
#Histograma
hist(x,breaks=10,prob=T, col = 'magenta',main='',ylab='Fr',xlab=expression(x))
lines(xs<-seq(0,n,len=100), dnorm(xs,n*p,sd=sqrt(n*p*(1-p))),col='blue',lty='dashed')
par(op)
op=par(mfrow=c(1,4),bg="white",fg="green",col.axis="pink",col.lab="red",
col.main="black" )
plot(prop.table(table(x)), main='',ylab='Fr',xlab=expression(x))
points(0:n,rep(0,(n+1)),col=2,pch=16)
points(0:n,dbinom(0:n,n,p),col=2,pch=8)
hist(x,breaks=10, prob=T,col="#FF9900",main='',ylab='Fr',
xlab=expression(x))
lines (xs<-seq(0,n,len=100),dnorm(xs,n*p,sd=sqrt(n*p*(1-p))))
par(op)
palette(rainbow(90))
palette()

#Simular 5000 lanamento de um dado no viciado


#por meio do mtodo de transformao inversa e
#por amostragem aleatoria das faces
#e apresentar sua distrtibuio de frequencias

n=5000
u=runif(n)
face1=ifelse(u<-1/6,1,
ifelse(u<-2/6,2,
ifelse(u<-3/6,3,
ifelse(u<-4/6,4,
ifelse(u<-5/6,5,
ifelse(u<-6/6,6))))))
dist.dados1=round(cbind(table(face1),
prop.table(table(face1))),3)
colnames(dist.dados1)=c('Fi','fr')
dist.dados1
#Outra forma
face2=sample(1:6,5000,replace=T)
face2
dist.dados2=round(cbind(table(face2),prop.table(table(face2))),3)
colnames(dist.dados2)=c('Fi','fr')
dist.dados2
#Grafico usando a Uniforme
op=par(mfrow=c(1,2))
plot(prop.table(table(face1)),main='Usando runif', ylab='Fr',xlab='x~U[0,1]')
abline (h=1/6,col=2,lty='dashed')
#Grafico usando a sample (amostra)
plot(prop.table(table(face2)),main='Usando sample',
ylab='Fr',xlab='X~U[0,1]')
abline(h=1/6,col=2,lty='dashed')
par(op)

#+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+#
POISSON
#
#com tamanho da amostra N=1 para valor lambda (LB) igual a 10.
#+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+# Procedimento (mtodo de rejeio)
#i)
#ii)
#iii)
#iv)

Fazer n=0 e P=1;


Gerar um nmero aleatrio U_{n+1} e substituir P por P.U_{n+1};
Se, P < exp(-LB), aceitar x=n, caso contrario, rejeitar n atual, fazer n=n+1,
Retornar aos procedimentos no passo (ii) at N

n=-1
p=1
while (p>=exp(-10)){
u=uniform(1)
p=p*u
n=n+1
}
n
p
u
#+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+#
POISSON
# a) gerar uma amostra de tamanho n=5000 para X ~ Po(10)
# b) Fazer a distribuio de frequencias (tabela com frequencia absolutas e relativas) e grafico com #
asteriscos indicando a probabilidade teorica
# c) Comparar o calor esperado estimado com o valor esperado teorico
# d)Calcular P(X,5),com a amostra e o teorico
# e)Calcular P(5<= x <= 11), com a amostra e o teorico
# f) Faa dois graficos que apresentem os pontos de massa para o calculo das probabilidades dos # # #
itens (d) e (e)
#+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+# a) gerar uma amostra de tamanho n=5000 para X ~ Po(10)
set.seed(123)
nobs=5000
x1=c()
x2=vector("numeric",length=nobs)
for (i in 1:nobs){
n=-1
p=1
while (p>=exp(-10)){
u=runif(1)
p=p*u
n=n+1
}
x1=rbind(x1,n)
x2[i] = n
}

#porque fazer este?

cbind (x1,x2) [1:10, ]


set.seed(123)
nobs=5000
lb=10
x=vector("numeric",len=nobs)
for (i in 1:nobs){
n=-1
p=1
while (p>=exp(-lb)){
u=runif(1)
p=p*u
n=n+1
}
x[i] = n
}
# b) Fazer a distribuio de frequencias (tabela com frequencia absolutas e relativas) e grafico com #
asteriscos indicando a probabilidade teorica
tb=prop.table(table(x))
tb
dist.Po=cbind(table(x),tb)
colnames(dist.Po) = c('Fi','fr')
dist.Po
#grafico
plot(tb,ylab='Fr', xlim=c(0,max(x)),
main=expression(paste('Distribuio de X ~Po',
(lambda==10))))
points(xs<-0:max(x),rep(0,length(xs)),col=2,pch=16)
points(xs<-0:max(x),dpois(xs,lb),col=2,pch=8)
# c) Comparar o calor esperado estimado com o valor esperado teorico
saida=matrix(c(lb,lb,mean(x),var(x)),ncol=2,byrow=T)
dimnames(saida)=list(c('Teorico','Imprico'),
c('Mdia','Varincia'))
saida
# d)Calcular P(X<5),com a amostra e o teorico
probT=ppois(5,lb)
probT

probI=sum(x<=5)/length(x)
probI
# e)Calcular P(5<= x <= 11), com a amostra e o teorico
probT=ppois(11,lb) - ppois(4,lb)
probT
probI=sum(x>=5 & x<=11)/length(x)
probI
# f) Faa dois graficos que apresentem os pontos de massa para o calculo das probabilidades dos # # #
itens (d) e (e)
x11(width=8,height=4)
op=par(mfrow=c(1,2))
plot(prop.table(table(x)),main=expression(paste('Distribuio de X~Po',
(lambda==10))),ylab='P(x)', xlab='X')
points(0:5,rep(0,(5-0+1)),col=2,pch=16)
points(0:5,dpois(0:5,lb),col=2,pch=8)
legend("topright","(x,y)", pch=8,"P(X=x)",col=2)
plot(prop.table(table(x)),main=expression(paste('Distribuio de X~Po',
(lambda==10))),ylab='P(x)', xlab='X')
points(5:11,rep(0,(11-5+1)),col=2,pch=16)
points(5:11,dpois(5:11,lb),col=2,pch=8)
legend("topright","(x,y)", pch=8,"P(X=x)",col=2)
par(op)