Realiza 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,
  ...
)

Arguments

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 f.

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, ncores = 1L.

p

Valor utilizado para controlar o parâmetro da Qui-quadrado inf.

bilateral

Se TRUE, retorna os quantis para um teste bilateral. O padrão considera bilateral = FALSE.

step

Tamanho do passo da integral numeérica responsável pela obtenção dos quantis da Qui-Quadrado inf. O padrão considera step = 1e-3.

...

Lista de argumetos que serão passados para a função passada à q.

Value

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.

Examples

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.
tictoc::toc()
#> 1.252 sec elapsed