getwd()
## [1] "C:/Users/Jefferson B. Bezerra/Downloads"
setwd("C:/Users/Jefferson B. Bezerra/AREA DE TRABALHO/Documentos")

# 1. Parâmetros Fixos e Sequências
n_obs <- 300
n_sim <- 100
betas <- seq(from = 10^-10, to = 100, by = 5)
alfas <- seq(from = 0.5, to = 10, by = 0.5) # Sua nova sequência

# 2. Inicializar o Banco de Dados Final
# Linhas = Betas, Colunas = Alfas
df_final <- data.frame(beta = betas)

# 3. Loop Externo: Variando o ALFA
for (a in alfas) {
  cat("\n=== Processando ALFA:", a, "===\n")
  
  # Vetor temporário para armazenar os D_criticos deste alfa específico
  d_criticos_para_este_alfa <- numeric(length(betas))
  
  # 4. Loop Intermediário: Variando o BETA
  for (j in 1:length(betas)) {
    beta_atual <- betas[j]
    cat("  -> Beta:", beta_atual, "\r") # \r faz o texto atualizar na mesma linha
    
    # Vetor para os valores de D
    todos_os_D_temporarios <- numeric(n_sim * n_obs)
    
    # 5. Loop Interno: Simulações de Monte Carlo
    for (i in 1:n_sim) {
      dados <- rgamma(n_obs, shape = a, scale = beta_atual)
      dados_ord <- sort(dados)
      
      ecdf_valores <- (1:n_obs) / n_obs
      cdf_teorica <- pgamma(dados_ord, shape = a, scale = beta_atual)
      
      d_ponto_a_ponto <- abs(ecdf_valores - cdf_teorica)
      
      inicio <- (i - 1) * n_obs + 1
      fim <- i * n_obs
      todos_os_D_temporarios[inicio:fim] <- d_ponto_a_ponto
    }
    
    # Armazena o quantil 95% no vetor do alfa atual
    d_criticos_para_este_alfa[j] <- quantile(todos_os_D_temporarios, 0.95)
    
    # Limpeza de memória rápida
    rm(todos_os_D_temporarios)
  }
  
  # Adiciona os resultados deste alfa como uma nova coluna no df_final
  # O nome da coluna será o valor do alfa (ex: "0.1", "0.2"...)
  df_final[[as.character(a)]] <- d_criticos_para_este_alfa
  
  gc() # Coleta de lixo de memória após cada alfa
}
## 
## === Processando ALFA: 0.5 ===
##   -> Beta: 1e-10   -> Beta: 5   -> Beta: 10   -> Beta: 15   -> Beta: 20   -> Beta: 25   -> Beta: 30   -> Beta: 35   -> Beta: 40   -> Beta: 45   -> Beta: 50   -> Beta: 55   -> Beta: 60   -> Beta: 65   -> Beta: 70   -> Beta: 75   -> Beta: 80   -> Beta: 85   -> Beta: 90   -> Beta: 95   -> Beta: 100 
## === Processando ALFA: 1 ===
##   -> Beta: 1e-10   -> Beta: 5   -> Beta: 10   -> Beta: 15   -> Beta: 20   -> Beta: 25   -> Beta: 30   -> Beta: 35   -> Beta: 40   -> Beta: 45   -> Beta: 50   -> Beta: 55   -> Beta: 60   -> Beta: 65   -> Beta: 70   -> Beta: 75   -> Beta: 80   -> Beta: 85   -> Beta: 90   -> Beta: 95   -> Beta: 100 
## === Processando ALFA: 1.5 ===
##   -> Beta: 1e-10   -> Beta: 5   -> Beta: 10   -> Beta: 15   -> Beta: 20   -> Beta: 25   -> Beta: 30   -> Beta: 35   -> Beta: 40   -> Beta: 45   -> Beta: 50   -> Beta: 55   -> Beta: 60   -> Beta: 65   -> Beta: 70   -> Beta: 75   -> Beta: 80   -> Beta: 85   -> Beta: 90   -> Beta: 95   -> Beta: 100 
## === Processando ALFA: 2 ===
##   -> Beta: 1e-10   -> Beta: 5   -> Beta: 10   -> Beta: 15   -> Beta: 20   -> Beta: 25   -> Beta: 30   -> Beta: 35   -> Beta: 40   -> Beta: 45   -> Beta: 50   -> Beta: 55   -> Beta: 60   -> Beta: 65   -> Beta: 70   -> Beta: 75   -> Beta: 80   -> Beta: 85   -> Beta: 90   -> Beta: 95   -> Beta: 100 
## === Processando ALFA: 2.5 ===
##   -> Beta: 1e-10   -> Beta: 5   -> Beta: 10   -> Beta: 15   -> Beta: 20   -> Beta: 25   -> Beta: 30   -> Beta: 35   -> Beta: 40   -> Beta: 45   -> Beta: 50   -> Beta: 55   -> Beta: 60   -> Beta: 65   -> Beta: 70   -> Beta: 75   -> Beta: 80   -> Beta: 85   -> Beta: 90   -> Beta: 95   -> Beta: 100 
## === Processando ALFA: 3 ===
##   -> Beta: 1e-10   -> Beta: 5   -> Beta: 10   -> Beta: 15   -> Beta: 20   -> Beta: 25   -> Beta: 30   -> Beta: 35   -> Beta: 40   -> Beta: 45   -> Beta: 50   -> Beta: 55   -> Beta: 60   -> Beta: 65   -> Beta: 70   -> Beta: 75   -> Beta: 80   -> Beta: 85   -> Beta: 90   -> Beta: 95   -> Beta: 100 
## === Processando ALFA: 3.5 ===
##   -> Beta: 1e-10   -> Beta: 5   -> Beta: 10   -> Beta: 15   -> Beta: 20   -> Beta: 25   -> Beta: 30   -> Beta: 35   -> Beta: 40   -> Beta: 45   -> Beta: 50   -> Beta: 55   -> Beta: 60   -> Beta: 65   -> Beta: 70   -> Beta: 75   -> Beta: 80   -> Beta: 85   -> Beta: 90   -> Beta: 95   -> Beta: 100 
## === Processando ALFA: 4 ===
##   -> Beta: 1e-10   -> Beta: 5   -> Beta: 10   -> Beta: 15   -> Beta: 20   -> Beta: 25   -> Beta: 30   -> Beta: 35   -> Beta: 40   -> Beta: 45   -> Beta: 50   -> Beta: 55   -> Beta: 60   -> Beta: 65   -> Beta: 70   -> Beta: 75   -> Beta: 80   -> Beta: 85   -> Beta: 90   -> Beta: 95   -> Beta: 100 
## === Processando ALFA: 4.5 ===
##   -> Beta: 1e-10   -> Beta: 5   -> Beta: 10   -> Beta: 15   -> Beta: 20   -> Beta: 25   -> Beta: 30   -> Beta: 35   -> Beta: 40   -> Beta: 45   -> Beta: 50   -> Beta: 55   -> Beta: 60   -> Beta: 65   -> Beta: 70   -> Beta: 75   -> Beta: 80   -> Beta: 85   -> Beta: 90   -> Beta: 95   -> Beta: 100 
## === Processando ALFA: 5 ===
##   -> Beta: 1e-10   -> Beta: 5   -> Beta: 10   -> Beta: 15   -> Beta: 20   -> Beta: 25   -> Beta: 30   -> Beta: 35   -> Beta: 40   -> Beta: 45   -> Beta: 50   -> Beta: 55   -> Beta: 60   -> Beta: 65   -> Beta: 70   -> Beta: 75   -> Beta: 80   -> Beta: 85   -> Beta: 90   -> Beta: 95   -> Beta: 100 
## === Processando ALFA: 5.5 ===
##   -> Beta: 1e-10   -> Beta: 5   -> Beta: 10   -> Beta: 15   -> Beta: 20   -> Beta: 25   -> Beta: 30   -> Beta: 35   -> Beta: 40   -> Beta: 45   -> Beta: 50   -> Beta: 55   -> Beta: 60   -> Beta: 65   -> Beta: 70   -> Beta: 75   -> Beta: 80   -> Beta: 85   -> Beta: 90   -> Beta: 95   -> Beta: 100 
## === Processando ALFA: 6 ===
##   -> Beta: 1e-10   -> Beta: 5   -> Beta: 10   -> Beta: 15   -> Beta: 20   -> Beta: 25   -> Beta: 30   -> Beta: 35   -> Beta: 40   -> Beta: 45   -> Beta: 50   -> Beta: 55   -> Beta: 60   -> Beta: 65   -> Beta: 70   -> Beta: 75   -> Beta: 80   -> Beta: 85   -> Beta: 90   -> Beta: 95   -> Beta: 100 
## === Processando ALFA: 6.5 ===
##   -> Beta: 1e-10   -> Beta: 5   -> Beta: 10   -> Beta: 15   -> Beta: 20   -> Beta: 25   -> Beta: 30   -> Beta: 35   -> Beta: 40   -> Beta: 45   -> Beta: 50   -> Beta: 55   -> Beta: 60   -> Beta: 65   -> Beta: 70   -> Beta: 75   -> Beta: 80   -> Beta: 85   -> Beta: 90   -> Beta: 95   -> Beta: 100 
## === Processando ALFA: 7 ===
##   -> Beta: 1e-10   -> Beta: 5   -> Beta: 10   -> Beta: 15   -> Beta: 20   -> Beta: 25   -> Beta: 30   -> Beta: 35   -> Beta: 40   -> Beta: 45   -> Beta: 50   -> Beta: 55   -> Beta: 60   -> Beta: 65   -> Beta: 70   -> Beta: 75   -> Beta: 80   -> Beta: 85   -> Beta: 90   -> Beta: 95   -> Beta: 100 
## === Processando ALFA: 7.5 ===
##   -> Beta: 1e-10   -> Beta: 5   -> Beta: 10   -> Beta: 15   -> Beta: 20   -> Beta: 25   -> Beta: 30   -> Beta: 35   -> Beta: 40   -> Beta: 45   -> Beta: 50   -> Beta: 55   -> Beta: 60   -> Beta: 65   -> Beta: 70   -> Beta: 75   -> Beta: 80   -> Beta: 85   -> Beta: 90   -> Beta: 95   -> Beta: 100 
## === Processando ALFA: 8 ===
##   -> Beta: 1e-10   -> Beta: 5   -> Beta: 10   -> Beta: 15   -> Beta: 20   -> Beta: 25   -> Beta: 30   -> Beta: 35   -> Beta: 40   -> Beta: 45   -> Beta: 50   -> Beta: 55   -> Beta: 60   -> Beta: 65   -> Beta: 70   -> Beta: 75   -> Beta: 80   -> Beta: 85   -> Beta: 90   -> Beta: 95   -> Beta: 100 
## === Processando ALFA: 8.5 ===
##   -> Beta: 1e-10   -> Beta: 5   -> Beta: 10   -> Beta: 15   -> Beta: 20   -> Beta: 25   -> Beta: 30   -> Beta: 35   -> Beta: 40   -> Beta: 45   -> Beta: 50   -> Beta: 55   -> Beta: 60   -> Beta: 65   -> Beta: 70   -> Beta: 75   -> Beta: 80   -> Beta: 85   -> Beta: 90   -> Beta: 95   -> Beta: 100 
## === Processando ALFA: 9 ===
##   -> Beta: 1e-10   -> Beta: 5   -> Beta: 10   -> Beta: 15   -> Beta: 20   -> Beta: 25   -> Beta: 30   -> Beta: 35   -> Beta: 40   -> Beta: 45   -> Beta: 50   -> Beta: 55   -> Beta: 60   -> Beta: 65   -> Beta: 70   -> Beta: 75   -> Beta: 80   -> Beta: 85   -> Beta: 90   -> Beta: 95   -> Beta: 100 
## === Processando ALFA: 9.5 ===
##   -> Beta: 1e-10   -> Beta: 5   -> Beta: 10   -> Beta: 15   -> Beta: 20   -> Beta: 25   -> Beta: 30   -> Beta: 35   -> Beta: 40   -> Beta: 45   -> Beta: 50   -> Beta: 55   -> Beta: 60   -> Beta: 65   -> Beta: 70   -> Beta: 75   -> Beta: 80   -> Beta: 85   -> Beta: 90   -> Beta: 95   -> Beta: 100 
## === Processando ALFA: 10 ===
##   -> Beta: 1e-10   -> Beta: 5   -> Beta: 10   -> Beta: 15   -> Beta: 20   -> Beta: 25   -> Beta: 30   -> Beta: 35   -> Beta: 40   -> Beta: 45   -> Beta: 50   -> Beta: 55   -> Beta: 60   -> Beta: 65   -> Beta: 70   -> Beta: 75   -> Beta: 80   -> Beta: 85   -> Beta: 90   -> Beta: 95   -> Beta: 100 
# 6. Resultado Final
print(head(df_final))
##      beta        0.5          1        1.5          2        2.5          3
## 1 1.0e-10 0.04923627 0.04805752 0.04947690 0.05184385 0.05251437 0.04591212
## 2 5.0e+00 0.04682887 0.04889293 0.04889042 0.04968113 0.04848406 0.05038635
## 3 1.0e+01 0.04482573 0.04983418 0.04692843 0.04321575 0.04947677 0.04991429
## 4 1.5e+01 0.04426355 0.05000521 0.04751632 0.04806868 0.04421248 0.04761415
## 5 2.0e+01 0.04568157 0.05107020 0.05013410 0.04494981 0.04820136 0.04995103
## 6 2.5e+01 0.04984842 0.05007208 0.04616708 0.05137739 0.04343000 0.04817651
##          3.5          4        4.5          5        5.5          6        6.5
## 1 0.04634862 0.04584432 0.04399425 0.04803966 0.05017878 0.05060934 0.04459691
## 2 0.04639879 0.04636347 0.04634488 0.05460913 0.04966951 0.04599652 0.04699116
## 3 0.04652396 0.04989371 0.04776733 0.04541405 0.04640278 0.04892584 0.04668433
## 4 0.05003407 0.04933254 0.04359977 0.05143400 0.04573845 0.04735467 0.05166633
## 5 0.04725222 0.04802937 0.04626696 0.04684570 0.04743425 0.04882786 0.05424819
## 6 0.05023136 0.05077993 0.04833941 0.05045199 0.04847739 0.04650824 0.05066002
##            7        7.5          8        8.5          9        9.5         10
## 1 0.04924913 0.05056934 0.05026210 0.04930641 0.04944441 0.04704787 0.04815436
## 2 0.04877320 0.04971940 0.04761379 0.05046483 0.04836786 0.04642110 0.04792649
## 3 0.04596981 0.04712871 0.04492893 0.04837492 0.04706128 0.04921821 0.04816370
## 4 0.04711910 0.05106370 0.04657772 0.04761832 0.04821694 0.04942763 0.04728968
## 5 0.04274744 0.04751477 0.04595773 0.04787694 0.04923579 0.04973118 0.04946304
## 6 0.05146269 0.04901939 0.04966713 0.05325146 0.04562142 0.04727457 0.04871797
# Salvar o arquivo consolidado
#write.csv(df_final, "tabela_D_criticos_5dias.csv", row.names = FALSE)
#View(df_final)

# 1. Encontrar o menor valor em todo o dataframe (ignorando a primeira coluna 'beta')
menor_d_critico_gama <- min(df_final[, -1])

# 2. Identificar a posição (linha e coluna)
# arr.ind = TRUE retorna os índices de matriz
posicao_gama <- which(df_final[, -1] == menor_d_critico_gama, arr.ind = TRUE)

# 3. Extrair os parâmetros exatos onde isso ocorreu
linha_idx <- posicao_gama[1, 1]
coluna_idx <- posicao_gama[1, 2]

valor_beta_min <- df_final$beta[linha_idx]
valor_alfa_min <- colnames(df_final[, -1])[coluna_idx]

# 4. Exibir os resultados
cat("\n--- RESULTADO GAMA ---")
## 
## --- RESULTADO GAMA ---
cat("\nMenor D_crítico encontrado:", menor_d_critico_gama)
## 
## Menor D_crítico encontrado: 0.04274744
cat("\nEncontrado com Alfa:", valor_alfa_min)
## 
## Encontrado com Alfa: 7
cat("\nEncontrado com Beta:", valor_beta_min)
## 
## Encontrado com Beta: 20
cat("\n----------------------\n")
## 
## ----------------------