llgcnt.Rd 3.8 KB
Newer Older
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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120
% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/gcnt.R
\name{llgcnt}
\alias{llgcnt}
\title{Log-Verossimilhança do Modelo Gamma Count}
\usage{
llgcnt(params, y, X, offset = NULL)
}
\arguments{
\item{params}{Um vetor de (estimativas dos) parâmetros do modelo de
regressão. O primeiro elemento desse vetor é o parâmetro de
dispersão do modelo e os restantes são parâmetros de
locação. Essa função retorna o negativo da log-verossimilhança
pois foi construída para ser usada na \code{\link[bbmle]{mle2}}.}

\item{y}{Um vetor com variável dependente do modelo, resposta do tipo
contagem.}

\item{X}{A matriz de delineamento correspondente ao modelo linear
ligado à média pela função de ligação log. A matriz do modelo
pode ser construída com a função
\code{\link[stats]{model.matrix}}.}

\item{offset}{Um vetor, de mesmo comprimento de \code{y}, com valores
que correspondem aos offsets (ou exposição) para cada valor
observado. Se \code{NULL}, é usado 1 como offset.}
}
\value{
O negativo da log-verossimilhança do modelo Gamma Count para
    os parâmetros e dados informados.
}
\description{
Calcula a log-verossimilhança de um modelo de regressão
    Gamma Count para a resposta de contagem (y).
}
\details{
A função de verossimilhança para uma observação, \eqn{L}, da
    Gamma Count é:

\deqn{L(\lambda, \alpha; y) =
  \left(\int_{0}^{T}
  \frac{(\alpha\lambda)^{y\alpha}}{\Gamma(y\alpha)}\,
  u^{y\alpha-1} \exp\{-\alpha\lambda u\}\, \textrm{d}u \right)
  - \left(\int_{0}^{T}
  \frac{(\alpha\lambda)^{y\alpha}}{\Gamma((y+1)\alpha)}\,
  u^{(y+1)\alpha-1} \exp\{-\alpha\lambda u\}\, \textrm{d}u \right).}

Se \eqn{\tau \sim \textrm{Gamma}(\alpha, \alpha\lambda)}, então
    \eqn{E(\tau) = \frac{\alpha}{\alpha\lambda} = \frac{1}{\lambda}}
    e \eqn{V(\tau) = \frac{1}{\alpha\lambda^2}}.

Usando \eqn{G()} para representar o resultado de cada uma das
    integrais entre parenteses, que correponde a probabilidade
    acumulada de uma variável aleatória gamma com parâmetros
    \eqn{y\alpha} e \eqn{\alpha\lambda}, tem-se

\deqn{L(\lambda, \alpha; y) =
  G(T, y\alpha, \alpha\lambda)
  - G(T, (y+1)\alpha, \alpha\lambda).}

A função log-verossimilhança de uma observação é, portanto,

\deqn{\ell(\lambda, \alpha; y) =
  \ln \left[ G(T, y\alpha, \alpha\lambda) -
  G(T, (y+1)\alpha, \alpha\lambda) \right].}

Para uma amostra aleatória independente, a função de
    log-verossimilhança é

\deqn{\ell(\lambda, \alpha; y) =
  \sum_{i=1}^{n} \ln \left[ G(T, y\alpha, \alpha\lambda) -
  G(T, (y+1)\alpha, \alpha\lambda) \right].}

Nestas expressões, \eqn{\alpha} é o parâmetro de dispersão da
    variável aleatória \eqn{Y} sendo que se \eqn{\alpha = 1} então
    \eqn{Y \sim \textrm{Poisson}}, se \eqn{\alpha < 1} então
    \eqn{V(Y) > E(Y)} e \eqn{\alpha > 1} então \eqn{V(Y) < E(Y)}.

Como \eqn{\alpha} e \eqn{\lambda} devem ser positivos, usou-se a
    função de ligação log para escrever a log-verossimilhança com
    domínio nos reais para os parâmetros.
}
\examples{

set.seed(123)
y <- rpois(10, lambda = 5)

# Log-verossimilhança pela Poisson.
sum(dpois(y, lambda = 5, log = TRUE))

# Log-verossimilhança pela GCNT usando alpha = 0
llgcnt(params = c(0, log(5)), y = y, X = cbind(y * 0 + 1))

set.seed(121)
y <- rpois(100, lambda = exp(1))
X <- cbind(0 * y + 1)

grid <- expand.grid(alpha = seq(-0.5, 0.5, by = 0.02),
                    lambda = seq(0.1, 2.1, by = 0.05))
str(grid)

grid$ll <- apply(grid, MARGIN = 1,
                 FUN = function(vec) {
                     llgcnt(params = vec, y = y, X = X,
                            offset = NULL)
                 })

library(latticeExtra)

levelplot(ll ~ alpha + lambda, data = grid) +
    layer(panel.abline(v = 0, h = 1, lty = 2))

}
\author{
Walmes Zeviani, \email{walmes@ufpr.br}.
}
\seealso{
\code{\link[bbmle]{mle2}}.
}