O presente trabalho tem como objetivo aplicar as metodologias de inferência estatística baseadas na teoria de Máxima Verossimilhança. Conforme solicitado, foram abordadas duas técnicas principais:
Teste_Z.R
.LRT.R
.Para a análise, foi escolhida a Distribuição Gama, que possui dois parâmetros (forma \(\alpha\) e taxa \(\beta\)). As metodologias foram aplicadas a um conjunto de dados reais para verificar o ajuste e realizar as inferências.
Inicialmente, são carregados os pacotes do R necessários para a
análise. O pacote ggplot2
é utilizado para a visualização
gráfica e LikRatioTest
contém a função para o Teste da
Razão de Verossimilhanças.
Foi utilizado o conjunto de dados rivers
, que já vem
instalado no R. Ele contém o comprimento, em milhas, de 141 dos
principais rios da América do Norte. São dados contínuos e
positivos.
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 135.0 310.0 425.0 591.2 680.0 3710.0
hist(dados, main="Histograma do Comprimento dos Rios", xlab="Comprimento (milhas)", col="steelblue")
O histograma mostra uma distribuição unimodal com uma assimetria positiva (ou à direita), onde a maioria dos rios tem comprimentos menores e alguns poucos rios são extremamente longos.
Esta seção adapta a lógica do arquivo Teste_Z.R
. A
abordagem consiste em encontrar os EMVs numericamente e usar a matriz de
informação de Fisher (aproximada pela Hessiana) para calcular
erros-padrão, intervalos de confiança e realizar o teste de Wald (Teste
Z).
Para encontrar os estimadores de máxima verossimilhança (EMV) para os
parâmetros \(\alpha\) (forma) e \(\beta\) (taxa), definimos a função de
log-verossimilhança negativa e a minimizamos utilizando a função
optim
.
lvero_gamma <- function(theta, y) {
alpha <- theta[1]
beta <- theta[2]
if (alpha <= 0 || beta <= 0) return(1e9)
-sum(dgamma(y, shape = alpha, rate = beta, log = TRUE))
}
modelo_gama_optim <- optim(
par = c(2, 0.01),
fn = lvero_gamma,
y = dados,
hessian = TRUE
)
# EMVs
emv_alpha <- modelo_gama_optim$par[1]
emv_beta <- modelo_gama_optim$par[2]
Os valores estimados para os parâmetros foram: - \(\hat{\alpha}\) (forma): 2.5794 - \(\hat{\beta}\) (taxa): 0.0044
Com base na normalidade assintótica do EMV, onde \(\hat{\theta} \approx N(\theta, I(\hat{\theta})^{-1})\), construímos os intervalos de confiança.
asy_conf_int_gamma <- function(mod, conf = 0.95) {
vcov <- solve(mod$hessian)
erros_padrao <- sqrt(diag(vcov))
z_critico <- qnorm(p = (1 - conf) / 2, lower.tail = FALSE)
LI <- mod$par - z_critico * erros_padrao
LS <- mod$par + z_critico * erros_padrao
cat(paste0("IC 95% para alpha: [", round(LI[1], 4), "; ", round(LS[1], 4), "]\n"))
cat(paste0("IC 95% para beta: [", round(LI[2], 4), "; ", round(LS[2], 4), "]\n"))
}
asy_conf_int_gamma(modelo_gama_optim)
## IC 95% para alpha: [2.0912; 3.0676]
## IC 95% para beta: [0.0035; 0.0052]
Interpretação: Com 95% de confiança, espera-se que o verdadeiro valor do parâmetro de forma (\(\alpha\)) esteja contido no intervalo acima. O mesmo se aplica ao parâmetro de taxa (\(\beta\)).
O Teste de Wald (ou Teste Z assintótico) é utilizado para testar hipóteses sobre os parâmetros. A seguir, testamos a hipótese nula \(H_0: \theta = \theta_0\) com valores plausíveis.
z_test_gamma <- function(theta0, mod) {
theta_hat <- mod$par
stand_error <- sqrt(diag(solve(mod$hessian)))
Statistic <- (theta_hat - theta0) / stand_error
p_valor <- 2 * pnorm(-abs(Statistic))
result <- cbind(theta_hat, stand_error, Statistic, p_valor)
colnames(result) <- c("Estimativa", "Erro Padrão", "Estat Z", "p-valor")
rownames(result) <- c("alpha", "beta")
knitr::kable(result, digits = 5, caption = "Resultado do Teste de Wald")
}
# alpha = 2.55 e beta = 0.0043
z_test_gamma(theta0 = c(2.55, 0.0043), mod = modelo_gama_optim)
Estimativa | Erro Padrão | Estat Z | p-valor | |
---|---|---|---|---|
alpha | 2.57943 | 0.24908 | 0.11814 | 0.90595 |
beta | 0.00436 | 0.00044 | 0.14442 | 0.88517 |
Para um nível de significância de 5% (\(\alpha_{sig} = 0.05\)), observamos que os p-valores para ambos os parâmetros são maiores que 0.05. Portanto, não há evidências para rejeitar a hipótese nula de que \(\alpha=2.55\) e \(\beta=0.0043\). Isso indica que esses valores são plausíveis para os verdadeiros parâmetros da distribuição que gerou os dados.
Para avaliar visualmente a qualidade do ajuste, sobrepomos a curva da densidade Gama com os parâmetros estimados ao histograma dos dados.
dados_plot <- data.frame(y = dados)
x_seq <- seq(min(dados), max(dados), length.out = 500)
dens_gama <- dgamma(x_seq, shape = emv_alpha, rate = emv_beta)
dens_plot <- data.frame(x = x_seq, k = dens_gama)
ggplot() +
geom_histogram(
data = dados_plot, aes(x = y, y = after_stat(density)),
colour = "black", fill = "steelblue", alpha = 0.7, bins = 15
) +
geom_line(
data = dens_plot, aes(x = x, y = k, color = "Gama"), size = 1
) +
theme_minimal(base_size = 12) +
labs(
title = "Ajuste da Distribuição Gama ao Comprimento dos Rios",
y = "Densidade", x = "Comprimento (milhas)", color = "Modelo"
) +
scale_color_manual(values = c("Gama" = "darkred"))
O gráfico confirma a adequação do modelo. A curva da densidade Gama estimada se ajusta bem ao histograma, seguindo a tendência central e a assimetria dos dados.
Para reproduzir a lógica do arquivo LRT.R
, utilizamos o
pacote LikRatioTest
para calcular a estatística do Teste da
Razão de Verossimilhanças. A estatística \(-2
\log(\lambda)\) segue assintoticamente uma distribuição \(\chi^2\).
A função de densidade de probabilidade (FDP) é definida na estrutura exigida pelo pacote.
Testamos a hipótese nula \(H_0: \alpha = 2.55\) contra \(H_1: \alpha \neq 2.55\).
alpha0 <- 2.55
chisq_calc_alpha <- lrt(f = pdf_gamma, data = dados, kicks = c(2, 0.01), par0 = list("alpha", alpha0))
p_valor_alpha <- pchisq(chisq_calc_alpha, df = 1, lower.tail = FALSE)
round(chisq_calc_alpha, 4)
## [1] 0.0099
## [1] 0.920654
O p-valor obtido (p > 0.05) indica que não temos evidências para rejeitar \(H_0\). Este resultado é consistente com o Teste de Wald, sugerindo que \(\alpha=2.55\) é um valor plausível.
Testamos a hipótese nula \(H_0: \beta = 0.0043\) contra \(H_1: \beta \neq 0.0043\).
beta0 <- 0.0043
chisq_calc_beta <- lrt(f = pdf_gamma, data = dados, kicks = c(2, 0.01), par0 = list("beta", beta0))
p_valor_beta <- pchisq(chisq_calc_beta, df = 1, lower.tail = FALSE)
round(chisq_calc_beta, 4)
## [1] 0.0133
## [1] 0.9083108
Novamente, o p-valor é alto (p > 0.05), e não rejeitamos \(H_0\). O valor \(\beta=0.0043\) é considerado plausível pelo teste.
Testamos a hipótese nula conjunta \(H_0: \alpha = 2.55, \beta = 0.0043\).
chisq_calc_ambos <- lrt(f = pdf_gamma, data = dados, kicks = c(2, 0.01), par0 = list(c("alpha", "beta"), c(alpha0, beta0)))
p_valor_ambos <- pchisq(chisq_calc_ambos, df = 2, lower.tail = FALSE)
round(chisq_calc_ambos, 4)
## [1] 0.0134
## [1] 0.9933303
A estatística de teste para a hipótese conjunta também resulta em um p-valor alto. Portanto, não rejeitamos a hipótese nula conjunta, confirmando que os valores \(\alpha = 2.55\) e \(\beta = 0.0043\) são conjuntamente plausíveis para o modelo.
Este trabalho realizou com sucesso a aplicação de duas metodologias
de inferência fundamentais baseadas em máxima verossimilhança. A escolha
do conjunto de dados rivers
mostrou-se adequada para a
modelagem com a distribuição Gama, como confirmado pela análise visual
do histograma e pela alta qualidade do ajuste do modelo.
Tanto os testes de Wald quanto os Testes da Razão de Verossimilhanças
levaram às mesmas conclusões para as hipóteses formuladas, não
rejeitando os valores hipotéticos plausíveis para os parâmetros \(\alpha\) e \(\beta\). A consistência entre os métodos e
a forte aderência do modelo aos dados validam a análise. O trabalho
cumpriu todos os requisitos propostos, desde a escolha de uma
distribuição com dois parâmetros até a aplicação das teorias de
Teste_Z.R
e LRT.R
, utilizando uma amostra
real.