From f47d0eb8eecdd8d4a5fffcc1bab5e58efe418937 Mon Sep 17 00:00:00 2001 From: Walmes Zeviani <walmes@ufpr.br> Date: Thu, 12 May 2016 15:30:59 -0300 Subject: [PATCH] Corrige problema de offset. --- R/gcnt.R | 8 +++++++- R/pgnz.R | 8 +++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/R/gcnt.R b/R/gcnt.R index 91f5cc8..6e157ba 100644 --- a/R/gcnt.R +++ b/R/gcnt.R @@ -238,6 +238,11 @@ dgcnt <- function(y, lambda, alpha) { #' #' @importFrom stats glm.fit model.frame model.matrix model.offset model.response poisson gcnt <- function(formula, data, start = NULL, ...) { + if (!requireNamespace("bbmle", quietly = TRUE)){ + stop(paste("`bbmle` \u00e9 necess\u00e1rio para", + "essa fun\u00e7\u00e3o. Por favor, instale-o."), + call. = FALSE) + } frame <- model.frame(formula, data) terms <- attr(frame, "terms") y <- model.response(frame) @@ -247,9 +252,10 @@ gcnt <- function(formula, data, start = NULL, ...) { m0 <- glm.fit(x = X, y = y, offset = off, family = poisson()) start <- c("alpha" = 0, m0$coefficients) } + off <- if (is.null(off)) { NULL } else { exp(off) } bbmle::parnames(llgcnt) <- names(start) model <- bbmle::mle2(minuslogl = llgcnt, start = start, - data = list(y = y, X = X, offset = exp(off)), + data = list(y = y, X = X, offset = off), vecpar = TRUE, ...) return(model) } diff --git a/R/pgnz.R b/R/pgnz.R index 5493108..4a352ea 100644 --- a/R/pgnz.R +++ b/R/pgnz.R @@ -216,6 +216,11 @@ dpgnz <- function(y, lambda, alpha) { #' #' @importFrom stats glm.fit model.frame model.matrix model.offset model.response poisson pgnz <- function(formula, data, start = NULL, ...) { + if (!requireNamespace("bbmle", quietly = TRUE)){ + stop(paste("`bbmle` \u00e9 necess\u00e1rio para", + "essa fun\u00e7\u00e3o. Por favor, instale-o."), + call. = FALSE) + } frame <- model.frame(formula, data) terms <- attr(frame, "terms") y <- model.response(frame) @@ -225,9 +230,10 @@ pgnz <- function(formula, data, start = NULL, ...) { m0 <- glm.fit(x = X, y = y, offset = off, family = poisson()) start <- c("alpha" = 0, m0$coefficients) } + off <- if (is.null(off)) { NULL } else { exp(off) } bbmle::parnames(llpgnz) <- names(start) model <- bbmle::mle2(minuslogl = llpgnz, start = start, - data = list(y = y, X = X, offset = exp(off)), + data = list(y = y, X = X, offset = off), vecpar = TRUE, ...) return(model) } -- GitLab