## Objetivos específicos
# a) Gerar uma população normal;
## b) Amostrar repetidamente pares de amostras de tamanhos informados
## da população
## c) Estimar a variância a partir de cada amostra e calcular a razão
## entre as duas de cada par armazenando estes valores em um vetor.
## d) Usar este vetor para decidir, sob a distribuição F, se as
## razões anteriormente obtidas podem ser consideradas, ou não, como
## provenientes de uma mesma população, adotando um erro tipo I
## máximo para a inferência.
## Em outras palavras, o objetivo maior é ilustrar a flutuação
## normal do processo de amostragem e os possíveis erros de decisão
## na inferência influenciados por esta flutuação.
##===============================================================================
##-- Ini opções -----------------------------------------------------------------
## Tamanho das amostras
n1 <- 5 # Tamanho da amostra (n1)
n2 <- 50 # Tamanho da amostra (n2)
## Características da população
Mu <- 10
Sigma <- 2
## Número de pares de amostras
n <- 1e4 # Usar 1e2, 1e3, ..., 1e5
erro <- 5 # Define erro tipo I máximo a ser usado na inferência
# (informado em %)
##-- Fim opções -----------------------------------------------------------------
## Simulação
## Estimativas da variância a partir do tamanho n1
s2.n1 <- apply(matrix(rnorm(n * n1,
Mu,
Sigma),
ncol=n1),
1,
var)
## Estimativas da variância a partir do tamanho n2
s2.n2 <- apply(matrix(rnorm(n * n2,
Mu,
Sigma),
ncol=n2),
1,
var)
Fcal <- s2.n1 / s2.n2 # Valores da razão entre duas estimativas da variância
# de uma população normal observados
## Valor Ftab recebe valor limite da calda superior da distribuição Fi
## adotando erro tipo I máximo especificado = erro
Ftab <- qf(erro / 100,
n1-1,
n2-1,
lower.tail=FALSE)
## Inferência
dec <- Fcal < Ftab # Decisão: As amostras podem ser consideradas como
# provenientes de uma mesma população?
dec.cer <- length(dec[dec == TRUE])
dec.err <- n - dec.cer
# Plotar gráfico dos resultados observados
plot(Fcal,
ylab='Valores F calculados',
xlab='Número de pares de amostras',
font=2,
font.lab=2,
cex=0.5,
col='dark orange',
ylim=c(0, 10))
tab.inf <- parse(text=paste(paste('F[',
erro,
'~"%"]',sep=''),
'(',
n1 - 1,
', ',
n2 - 1,
')==',
round(Ftab,
2),
sep=''))
abline(h=Ftab)
text(n/2,
Ftab,
tab.inf,
font=4,
col='dark blue')
text(n/2,
Ftab/2,
paste('RAHo -> Decisões Corretas (%)',
100 * (dec.cer/n),
sep=' = '),
font=4,
col='dark green')
text(n/2,
Ftab + (max(Fcal) - Ftab)/2,
paste('RRHo -> Decisões Equivocadas (%)',
100 * (dec.err/n),
sep=' = '),
font=4,
col='red')