findUL.R
findUL <- function (step = 0.01, initStep = 0, fun, MLE, level = 3.84,
...)
{
value <- 0
step1 <- step
Lbeta <- MLE - initStep
for (i in 1:8) {
while (value < level) {
Lbeta <- Lbeta - step1
value <- fun(theta = Lbeta, ...)$"-2LLR"
}
Lbeta <- Lbeta + step1
step1 <- step1/10
value <- fun(theta = Lbeta, ...)$"-2LLR"
}
value1 <- value
value <- 0
Ubeta <- MLE + initStep
for (i in 1:8) {
while (value < level) {
Ubeta <- Ubeta + step
value <- fun(theta = Ubeta, ...)$"-2LLR"
}
Ubeta <- Ubeta - step
step <- step/10
value <- fun(theta = Ubeta, ...)$"-2LLR"
}
if ( (value1>level)|(value>level) ) warning("Something wrong. Check the MLE and step inputs.")
return(list(Low = Lbeta, Up = Ubeta, FstepL = step1, FstepU = step,
Lvalue = value1, Uvalue = value))
}