Descrever o objetivo do relatório!
Neste relatório, sairemos dos problemas de análise de intensidade de sinal e faremos um estudo sobre a taxa de erros do tipo 1 do teste F para determinados níveis de significância (1%, 5% e 10%) e também analisaremos o poder desse teste para esses mesmos níveis de significância.
O teste de erro consiste em escolhermos uma média populacional, no caso 90, e gerar uma função normal com 30 amostras e um desvio padrão de 4. Vamos realizar o teste dez mil vezes e verificar a taxa de erros. Iremos saber a taxa de erro pois fomos nós quem escolhemos a média populacional, e atribuímos o mesmo valor à média amostral, logo sempre que o teste de hipótese rejeitar que a média amostral é igual à média populacional temos um erro do tipo 1.
Já no teste de poder, vamos mudar o valor da média populacional para um valor levemente diferente da média amostral. Nesse caso, nossa intenção é que o teste rejeite que a média populacional é igual à média amostral. Sempre que ele aceitar essa igualdade, ele cometerá um erro do tipo 2 (o poder é o complemento do erro do tipo 2: Poder = 1 - erro do tipo 2).
#Criando uma função para calcular o alpha empririco
calcular_alpha_empirico <- function(alpha, ntestes = 10000, n = 30, mu = 90, sd = 4) {
ztab <- qnorm(1 - alpha/2)
res <- numeric(ntestes)
for (i in 1:ntestes) {
amostra <- rnorm(n, mean = mu, sd = sd)
xbar <- mean(amostra)
z <- (xbar - mu) / (sd / sqrt(n))
res[i] <- if (abs(z) >= ztab) 1 else 0
}
return(mean(res))
}
# Criando uma função para calcular o Poder
calcular_poder <- function(alpha, mu_verdadeiro = 92, mu_hipotese = 90, ntestes = 10000, n = 30, sd = 4) {
ztab <- qnorm(1 - alpha/2)
res <- numeric(ntestes)
for (i in 1:ntestes) {
amostra <- rnorm(n, mean = mu_verdadeiro, sd = sd)
xbar <- mean(amostra)
z <- (xbar - mu_hipotese) / (sd / sqrt(n))
res[i] <- if (abs(z) >= ztab) 1 else 0
}
return(mean(res))
}
#Note que o codigo não da erro, mesmo sem eu informar os valores de alpha, pois se trata de funções, e o codigo só vai realizar as funções quando elas forem chamadas.
# Alfas teóricos que queremos testar
alphas <- c(0.01, 0.05, 0.10)
# Chamando as funções para calcular os alphas empiricos e o poder para cada nivel de significancia
resultados <- data.frame(
Alpha_Teorico = alphas,
Alpha_Empirico = sapply(alphas, calcular_alpha_empirico),
Poder = sapply(alphas, calcular_poder)
)
# Mostrar a tabela formatada
print(resultados)
## Alpha_Teorico Alpha_Empirico Poder
## 1 0.01 0.0090 0.5635
## 2 0.05 0.0503 0.7884
## 3 0.10 0.1020 0.8686
Podemos notar que nosso alpha empírico está aceitável quando comparado ao nível de significância, com uma leve exceção ao caso 2 no qual o alpha empírico está maior que o nível de significância. Já o poder nos traz uma visualização sobre a relação entre o nível de significância e existência do erro do tipo 2, de forma que, enquanto menor o nível de significância, menor o poder, logo mais vezes uma hipótese falsa foi aceita, no caso de um nível de significância maior, o poder aumenta.
Uma possível conclusão seria que níveis de significância maiores são melhores, porém se analisarmos que o erro do tipo 1 é rejeitar uma hipótese verdadeira, aumentar o nível de significância aumenta a quantidade de vezes que esse erro acontece, o alpha empírico demonstra exatamente isso.
Dessa vez, irei deixar os códigos amostra, pois esse tema é um pouco mais complicado e futuros alunos com facilidade em programação podem conseguir entender melhor o tema analisando o código, e alunos com dificuldade em programar podem ler os comentários do mesmo para entender o que cada parte do código está fazendo e, caso o copiem, irão saber exatamente o que está acontecendo em suas análises.