mc: Simulações de Monte-Carlo para o teste da razão de...

Description Usage Arguments Value Author(s) Examples

View source: R/lrt.R

Description

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.

Usage

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
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.

Author(s)

Pedro Rafael D. Marinho

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
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)
tictoc::toc()

prdm0/LikRatioTest documentation built on Dec. 18, 2019, 6:33 a.m.