mc.RdRealiza uma única iteração de um procedimento de Monte-Carlo para o teste da razão de verossimilhança generalizado. Dado um nível de significância, será retornado 1 (um) se a estatística de teste está acima do quantil da distribuição qui-quadrado e 0 (zero), caso contrário.
mc( N = 1L, n = 50L, sig = 0.05, f, q, kicks, par0, ncores = 1L, p, bilateral = FALSE, step = 0.001, ... )
| N | Número de réplicas de Monte-Carlo a ser considerada. |
|---|---|
| n | Tamanho da amostra a ser considerada. |
| sig | Nível de significância adotado. |
| f | Função densidade de probabilidade considerada no teste. Essa função deverá ser implementada conforme o exemplo abaixo. |
| q | Função responsável pela geração de observações de uma variável aleatório com função densidade passada para |
| kicks | Vetor com os chutes iniciais utilizados para a otimização. |
| par0 | Lista com dois elementos, sendo o primeiro um vetor com os nomes das variáveis que receberão valores fixos sob a hipótese nula e o segundo elemendo é um outro vetor com os valores impostos às variáveis. |
| ncores | Número de núcleos a ser considerado. Por padrão, |
| p | Valor utilizado para controlar o parâmetro da Qui-quadrado inf. |
| bilateral | Se |
| step | Tamanho do passo da integral numeérica responsável pela obtenção dos quantis da Qui-Quadrado inf.
O padrão considera |
| ... | Lista de argumetos que serão passados para a função passada à |
Retornará 0 (zero) se a estatística calculado não estiver acima do quantil da distribuição qui-quadrado e 1 (um), caso contrário.
pdf_ew <- function(par, x, var = NULL){ alpha <- par[1] sigma <- par[2] theta <- par[3] if (is.list(var)) eval(parse(text = paste(var[[1]], " <- ", unlist(var[[2]]), sep = ""))) alpha * theta / sigma * (1 - exp(-(x / sigma) ^ alpha)) ^ (theta - 1) * exp(-(x / sigma) ^ alpha) * (x / sigma) ^ (alpha - 1) } rew <- function(n, alpha, sigma, theta){ u <- runif(n, 0, 1) sigma * (-log(1 - u ^ (1 / theta))) ^ (1 / alpha) } set.seed(1L, kind = "L'Ecuyer-CMRG") tictoc::tic() result <- mc(N = 100L, n = 50L, sig = 0.05, f = pdf_ew, q = rew, kicks = c(1, 1, 1), par0 = list("theta", 1), ncores = 1L, p = 0.5, bilateral = FALSE, step = 0.001, alpha = 1, sigma = 1, theta = 1)#> Warning: The `x` argument of `as_tibble.matrix()` must have column names if `.name_repair` is omitted as of tibble 2.0.0. #> Using compatibility `.name_repair`. #> This warning is displayed once every 8 hours. #> Call `lifecycle::last_warnings()` to see where this warning was generated.#> 1.252 sec elapsed