Exercício 10

# 0. Define os parâmetros
set.seed(666) # semente 
mu_real <- 70
sigma_conhecido <- 5
n <- 3
confianca <- 0.95
num_repeticoes <- 100




# Simula uma amostra aleatória de tamanho 3 
amostra_unica <- rnorm(n, mean = mu_real, sd = sigma_conhecido)
x_barra <- mean(amostra_unica)
s_amostral <- sd(amostra_unica)

print(paste("Amostra simulada:", paste(round(amostra_unica, 2), collapse=", ")))
## [1] "Amostra simulada: 73.77, 80.07, 68.22"
print(paste("Média amostral (x_barra):", round(x_barra, 2)))
## [1] "Média amostral (x_barra): 74.02"
print(paste("Desvio padrão amostral (s):", round(s_amostral, 2)))
## [1] "Desvio padrão amostral (s): 5.93"
# a) IC com sigma CONHECIDO (z) 
# Fórmula: x_barra +/- z * (sigma / sqrt(n))
z_critico <- qnorm(1 - (1 - confianca) / 2) # qnorm(0.975) = 1.96
margem_erro_z <- z_critico * (sigma_conhecido / sqrt(n))
ic_a_inf <- x_barra - margem_erro_z
ic_a_sup <- x_barra + margem_erro_z
print(paste0("a) IC 95% (sigma conhecido): [", round(ic_a_inf, 2), " ; ", round(ic_a_sup, 2), "]"))
## [1] "a) IC 95% (sigma conhecido): [68.36 ; 79.68]"
# b) IC com sigma DESCONHECIDO (t)
# Fórmula: x_barra +/- t * (s / sqrt(n))
graus_liberdade <- n - 1 # n-1 = 2
t_critico <- qt(1 - (1 - confianca) / 2, df = graus_liberdade) # qt(0.975, df=2)
margem_erro_t <- t_critico * (s_amostral / sqrt(n))
ic_b_inf <- x_barra - margem_erro_t
ic_b_sup <- x_barra + margem_erro_t
print(paste0("b) IC 95% (sigma desconhecido): [", round(ic_b_inf, 2), " ; ", round(ic_b_sup, 2), "]"))
## [1] "b) IC 95% (sigma desconhecido): [59.3 ; 88.75]"
print("Comparação (c):")
## [1] "Comparação (c):"
print(paste("O valor t crítico (t=", round(t_critico, 3), ") é muito maior que o z crítico (z=", round(z_critico, 3), ")."))
## [1] "O valor t crítico (t= 4.303 ) é muito maior que o z crítico (z= 1.96 )."
print("Isso acontece porque a amostra é muito pequena (n=3), gerando alta incerteza.")
## [1] "Isso acontece porque a amostra é muito pequena (n=3), gerando alta incerteza."
print("Por isso, o intervalo (b) é geralmente bem mais largo que o (a).")
## [1] "Por isso, o intervalo (b) é geralmente bem mais largo que o (a)."
# Criar vetores para guardar os contadores
contador_a <- 0
contador_b <- 0

# Loop (repetir 100 vezes)
for (i in 1:num_repeticoes) {
  # 1. Simular uma nova amostra
  amostra <- rnorm(n, mean = mu_real, sd = sigma_conhecido)
  x_barra <- mean(amostra)
  s_amostral <- sd(amostra)
  
  # 2. Calcular IC (a) - sigma conhecido 
  # z_critico já foi calculado (é 1.96)
  margem_erro_z <- z_critico * (sigma_conhecido / sqrt(n))
  ic_a_inf <- x_barra - margem_erro_z
  ic_a_sup <- x_barra + margem_erro_z
  
  # 3. Calcular IC (b) - sigma desconhecido 
  # t_critico já foi calculado (é 4.303 para gl=2)
  margem_erro_t <- t_critico * (s_amostral / sqrt(n))
  ic_b_inf <- x_barra - margem_erro_t
  ic_b_sup <- x_barra + margem_erro_t
  
  # 4. Verificar se continha mu_real (70)
  if (mu_real >= ic_a_inf && mu_real <= ic_a_sup) {
    contador_a <- contador_a + 1
  }
  if (mu_real >= ic_b_inf && mu_real <= ic_b_sup) {
    contador_b <- contador_b + 1
  }
}

# 5. Mostrar proporções 
print(paste("Proporção (a) (sigma conhecido) que conteve mu=70:", contador_a, "%"))
## [1] "Proporção (a) (sigma conhecido) que conteve mu=70: 93 %"
print(paste("Proporção (b) (sigma desconhecido) que conteve mu=70:", contador_b, "%"))
## [1] "Proporção (b) (sigma desconhecido) que conteve mu=70: 92 %"
print("Ambas as proporções devem ser próximas de 95%.")
## [1] "Ambas as proporções devem ser próximas de 95%."