In [1]:
#==============================================================================
# A distribuicao amostral da media quando a variancia e' desconhecida 
# (um pequeno estudo de Monte Carlo).
#
# A distribuicao t-Student com n-1 graus de liberade.
#==============================================================================
# Declarando valores para o estudo
#==============================================================================
set.seed(5438)
M      <- 100000         # numero de replicas
n      <- 15             # tamanho da amostra em cada replica
x      <- matrix(NA,M,n) # para salvar as amostras
mu     <- 5              # valor verdadeiro (neste estudo)
sigma2 <- 9              # valor verdadeiro (neste estudo)
sigma  <- sqrt(sigma2)   # valor verdadeiro (neste estudo)
In [2]:
#==============================================================================
# Gerando M amostras de tamanho n
#==============================================================================
for(j in 1:M){
    #==========================================================================
    # salvando as amostras de tamanho n por linha
    #==========================================================================
    x[j,] <- rnorm(n,mu,sigma)
}
In [3]:
#==============================================================================
# Calculando a media amostral das M amostras
#==============================================================================
xbar <- apply(x,1,"mean") # vetor de tamanho M
print(length(xbar))
[1] 100000
In [4]:
#==============================================================================
# Calculando a variancia amostral das M amostras
# Esse estimador "var" e' o S^2
#==============================================================================
xvar <- apply(x,1,"var") # vetor de tamanho M
print(length(xvar))
[1] 100000
In [5]:
#==============================================================================
# Calculando o desvio padrao amostral das M amostras
#==============================================================================
xdesvpad <- sqrt(xvar) # vetor de tamanho M
print(length(xdesvpad))
[1] 100000
In [6]:
#==============================================================================
# Analise da distribuicao de X barra dado sigma^2
#==============================================================================
aux    <- 5*sigma/sqrt(n)
xseq   <- seq(mu-aux,mu+aux,length=1001)
yseq   <- dnorm(xseq,mu,sigma/sqrt(n))

par(mfrow=c(1,1),lwd=2.0,cex.lab=1.5,cex.axis=1.5,lab=c(10,5,5),
    mar=c(5,5,2,2.5),xpd=T,cex.main=2.0)
hist(xbar,prob=T,lwd=2,nclass=30,main="",xlim=c(mu-aux,mu+aux),
  xlab=expression(bar(x)),ylab=expression(f(bar(x))),col=0)
lines(xseq,yseq,lwd=4,col="blue")
lines(rep(mu,2),c(0,max(yseq)),lwd=4,col="red",lty=2)
In [7]:
#==============================================================================
# Analise da distribuicao de S^2 dado sigma^2
#==============================================================================
aux    <- (n-1)+6*sqrt(2*(n-1))  
wseq   <- seq(0,1.1*aux,length=1001)
useq   <- dchisq(wseq,n-1)

chisq  <- (n-1)*xvar/sigma2 # alterando a distribuicao de S^2

par(mfrow=c(1,1),lwd=2.0,cex.lab=1.5,cex.axis=1.5,lab=c(10,5,5),
    mar=c(5,5,2,2.5),xpd=T,cex.main=2.0)
hist(chisq,prob=T,lwd=2,nclass=30,main="",xlim=c(0,1.1*aux),
  xlab=expression(y),ylab=expression(f(y)),col=0)
lines(wseq,useq,lwd=4,col="blue")
In [8]:
#==============================================================================
# Analise da distribuicao de X barra (sigma^2 desconhecido)
#==============================================================================
aux    <- 4*sigma
aseq   <- seq(-aux,aux,length=10001)
bseq   <- dt(aseq,n-1)

tpad   <- sqrt(n)*(xbar-mu)/xdesvpad

par(mfrow=c(1,1),lwd=2.0,cex.lab=1.5,cex.axis=1.5,lab=c(10,5,5),
    mar=c(5,5,2,2.5),xpd=T,cex.main=2.0)
hist(tpad,prob=T,lwd=2,nclass=30,main="",xlim=c(-aux,aux),
  xlab=expression(t),ylab=expression(f(t)),col=0)
lines(aseq,bseq,lwd=4,col="blue")
In [9]:
#==============================================================================
# Analise da distribuicao de S^2 dado sigma^2
# O interesse e' so' mostrar S^2 com distribuicao gama.
#==============================================================================
aux    <- sigma2+6*sqrt(2*(sigma2^2)/(n-1))  
wseq   <- seq(0,1.1*aux,length=1001)
a      <- (n-1)/2
b      <- a/sigma2
useq   <- dgamma(wseq,a,b)

par(mfrow=c(1,1),lwd=2.0,cex.lab=1.5,cex.axis=1.5,lab=c(10,5,5),
    mar=c(5,5,2,2.5),xpd=T,cex.main=2.0)
hist(xvar,prob=T,lwd=2,nclass=30,main="",xlim=c(0,1.1*aux),
  xlab=expression(s^2),ylab=expression(f(s^2)),col=0)
lines(wseq,useq,lwd=4,col="blue")
lines(rep(sigma2,2),c(0,max(useq)),lwd=4,col="red",lty=2)