Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
MRDCr
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Incidents
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
leg
MRDCr
Commits
9f958e17
Commit
9f958e17
authored
May 10, 2016
by
Walmes Marques Zeviani
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Correçoes nas expressoes matematicas.
parent
b0efaa30
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
260 additions
and
19 deletions
+260
-19
R/pgnz.R
R/pgnz.R
+19
-19
man/dpgnz.Rd
man/dpgnz.Rd
+70
-0
man/llpgnz.Rd
man/llpgnz.Rd
+101
-0
man/pgnz.Rd
man/pgnz.Rd
+70
-0
No files found.
R/pgnz.R
View file @
9f958e17
...
...
@@ -7,25 +7,25 @@
#' @details A função de log-verossimilhança da Poisson Generalizada, na
#' parametrização de modelo de regressão é:
#'
#'
\deqn{ll(\lambda,\alpha,y) = y (\log(\lambda) - \log(1 +
#'
\alpha\lambda)) + (y - 1) \log(1 + \alpha y) -
#'
\lambda\left\(\frac{1 + \alpha y}{1 + \alpha\lambda}\right\
) -
#'
\log(y!).
#'
}
#'
#'
\eqn{\alpha} é o parâmetro de dispersão e \eqn{\lambda > 0} é a
#' média \eqn{E(Y) = \lambda} e \eqn{y = 0,1,ldots} é vetor
#'
\deqn{\ell(\lambda,\alpha,y) =
#'
y (\log(\lambda) - \log(1 + \alpha\lambda)) +
#'
(y - 1) \log(1 + \alpha y
) -
#'
\lambda\left(\frac{1 + \alpha y}{1 + \alpha\lambda}\right) -
#'
\log(y!),
}
#'
#'
em que \eqn{\alpha} é o parâmetro de dispersão e \eqn{\lambda > 0} é
#'
a
média \eqn{E(Y) = \lambda} e \eqn{y = 0,1,ldots} é vetor
#' observado da variável de contagem. Nessa parametrização,
#' \eqn{V(Y) = \lambda (1 + \alpha\lambda)^2}. A Poisson
#' Generalizada em a Poisson como caso particular quando
$\alpha =
#'
0$
.
#' Generalizada em a Poisson como caso particular quando
\eqn{\alpha
#'
= 0}
.
#'
#' Para o modelo de regressão, um preditor linear é ligado à média pela
#' função de ligação log, \eqn{\log(\lambda) = X\beta}, tal como é
#' para o modelo Poisson com link log.
#'
#' O espaço paramétrico de \eqn{\alpha} não limitado para o lado direito
#' do zero (\eqn{alpha} positivo) mas para o lado esquerdo
#' do zero (\eqn{
\
alpha} positivo) mas para o lado esquerdo
#' (\eqn{\alpha} negativo) o limite inferior é dependente do
#' parâmetro \eqn{\lambda} e dos valores observados de
#' \eqn{y}. Valores não finitos podem ser retornados durante a
...
...
@@ -41,7 +41,7 @@
#' @param 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}}.
#' \code{
\
link[stats]{model.matrix}}.
#' @param 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.
...
...
@@ -106,19 +106,18 @@ llpgnz <- function(params, y, X, offset = NULL) {
#' com distribuição Poisson Generalizada na parametrização
#' \eqn{\lambda-\alpha}:
#'
#' \deqn{
#' p(y,\lambda,\alpha) =
#' \left\(\frac{\lambda}{1+\alpha\lambda}\right\)^{y}
#' \,\frac{(1+\alpha y)^{y-1}}{y!}
#' \exp\left\{-\lambda\left(
#' \frac{1+\alpha y}{1+\alpha\lambda}\right)\right\},
#' \deqn{p(y,\lambda,\alpha) =
#' \left(\frac{\lambda}{1+\alpha\lambda}\right)^{y}
#' \,\frac{(1+\alpha y)^{y-1}}{y!}
#' \exp\left\{-\lambda\left(
#' \frac{1+\alpha y}{1+\alpha\lambda}\right)\right\},
#' }
#'
#' em que \eqn{\lambda > 0} é a média da variável aleatória e
#' \eqn{\alpha} é o parâmetro de dispersão, sendo que \eqn{V(Y) =
#' \lambda (1 + \alpha\lambda)^2}. O espaço paramétrico de
#' \eqn{\alpha} depende de \eqn{\lambda} e \eqn{y} pois
#' \eqn{1+\alpha\lambda > 0} e {1+\alpha y > 0}.
#' \eqn{1+\alpha\lambda > 0} e
\eqn
{1+\alpha y > 0}.
#' @param y Valor da variável de contagem.
#' @param lambda Valor do parâmetro \eqn{\lambda} que é a média da
#' distribuição .
...
...
@@ -215,6 +214,7 @@ dpgnz <- function(y, lambda, alpha) {
#'
#' plot(profile(n0, which = "alpha"))
#'
#' @importFrom stats glm.fit model.frame model.matrix model.offset model.response poisson
pgnz
<-
function
(
formula
,
data
,
start
=
NULL
,
...
)
{
frame
<-
model.frame
(
formula
,
data
)
terms
<-
attr
(
frame
,
"terms"
)
...
...
man/dpgnz.Rd
0 → 100644
View file @
9f958e17
% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/pgnz.R
\name{dpgnz}
\alias{dpgnz}
\title{Probabilidades do Modelo Poisson Generalizado}
\usage{
dpgnz(y, lambda, alpha)
}
\arguments{
\item{y}{Valor da variável de contagem.}
\item{lambda}{Valor do parâmetro \eqn{\lambda} que é a média da
distribuição .}
\item{alpha}{Valor do parâmetro \eqn{\alpha} que é o parâmetro de
dispersão.}
}
\value{
Retorna uma probabilidade, ou seja \eqn{\Pr(Y = y | \lambda,
\alpha) = p(y, \lambda, \alpha)}.
}
\description{
Calcula as probabilidades para uma variável aleatória
com distribuição Poisson Generalizada na parametrização
\eqn{\lambda-\alpha}:
\deqn{p(y,\lambda,\alpha) =
\left(\frac{\lambda}{1+\alpha\lambda}\right)^{y}
\,\frac{(1+\alpha y)^{y-1}}{y!}
\exp\left\{-\lambda\left(
\frac{1+\alpha y}{1+\alpha\lambda}\right)\right\},
}
em que \eqn{\lambda > 0} é a média da variável aleatória e
\eqn{\alpha} é o parâmetro de dispersão, sendo que \eqn{V(Y) =
\lambda (1 + \alpha\lambda)^2}. O espaço paramétrico de
\eqn{\alpha} depende de \eqn{\lambda} e \eqn{y} pois
\eqn{1+\alpha\lambda > 0} e \eqn{1+\alpha y > 0}.
}
\examples{
dpois(5, lambda = 5)
dpgnz(5, lambda = 5, alpha = 0)
probs <- data.frame(y = 0:30)
within(probs, {
py0 <- dpois(y, lambda = 15)
py1 <- dpgnz(y, lambda = 15, alpha = 0)
py2 <- dpgnz(y, lambda = 15, alpha = 1/30)
py3 <- dpgnz(y, lambda = 15, alpha = -1/30)
plot(py0 ~ y, type = "h",
ylim = c(0, max(c(py0, py2, py3))),
ylab = expression(Pr(Y == y)))
points(y + 0.1, py1, type = "h", col = 2)
points(y - 0.3, py2, type = "h", col = 3)
points(y + 0.3, py3, type = "h", col = 4)
legend("topleft", bty = "n",
col = c(1:4), lty = 1,
legend = expression(
Poisson(lambda == 15),
PG(lambda == 15, alpha == 0),
PG(lambda == 15, alpha == 1/30),
PG(lambda == 15, alpha == -1/30)))
})
}
\author{
Walmes Zeviani, \email{walmes@ufpr.br}
}
man/llpgnz.Rd
0 → 100644
View file @
9f958e17
% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/pgnz.R
\name{llpgnz}
\alias{llpgnz}
\title{Log-Verossimilhança do Modelo Poisson Generalizada}
\usage{
llpgnz(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 Poisson
Generalizado para os parâmetros e dados informados.
}
\description{
Calcula a log-verossimilhança de um modelo de regressão
para a média com distribuição Poisson Generalizada para a
resposta de contagem (y).
}
\details{
A função de log-verossimilhança da Poisson Generalizada, na
parametrização de modelo de regressão é:
\deqn{\ell(\lambda,\alpha,y) =
y (\log(\lambda) - \log(1 + \alpha\lambda)) +
(y - 1) \log(1 + \alpha y) -
\lambda\left(\frac{1 + \alpha y}{1 + \alpha\lambda}\right) -
\log(y!), }
em que \eqn{\alpha} é o parâmetro de dispersão e \eqn{\lambda > 0} é
a média \eqn{E(Y) = \lambda} e \eqn{y = 0,1,ldots} é vetor
observado da variável de contagem. Nessa parametrização,
\eqn{V(Y) = \lambda (1 + \alpha\lambda)^2}. A Poisson
Generalizada em a Poisson como caso particular quando \eqn{\alpha
= 0}.
Para o modelo de regressão, um preditor linear é ligado à média pela
função de ligação log, \eqn{\log(\lambda) = X\beta}, tal como é
para o modelo Poisson com link log.
O espaço paramétrico de \eqn{\alpha} não limitado para o lado direito
do zero (\eqn{\alpha} positivo) mas para o lado esquerdo
(\eqn{\alpha} negativo) o limite inferior é dependente do
parâmetro \eqn{\lambda} e dos valores observados de
\eqn{y}. Valores não finitos podem ser retornados durante a
estimação quando \eqn{1 + \alpha\lambda} ou \eqn{1 + \alpha y}
não forem maiores que zero.
}
\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 PGNZ usando alpha = 0
llpgnz(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.1, 0.4, by = 0.01),
lambda = seq(0.1, 2.1, by = 0.025))
grid$ll <- apply(grid, MARGIN = 1,
FUN = function(vec) {
llpgnz(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}}.
}
man/pgnz.Rd
0 → 100644
View file @
9f958e17
% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/pgnz.R
\name{pgnz}
\alias{pgnz}
\title{Ajuste do Modelo Poisson Generalizado}
\usage{
pgnz(formula, data, start = NULL, ...)
}
\arguments{
\item{formula}{Um objeto da classe \code{\link{formula}}. Se
necessária a inclusão de \emph{offset} deve-se indicá-lo como
\code{\link{offset}}.}
\item{data}{Um objeto de classe \code{data.frame} que contém as
variáveis descritas na \code{formula}.}
\item{start}{Um vetor com os valores iniciais para os parâmetros do
modelo necessários para o início do procedimento de estimação. Se
\code{NULL} as estimativas de um modelo log-linear Poisson, com
\eqn{\alpha = 0}, são utilizadas como valores iniciais, pois uma
chamada da \code{\link[stats]{glm.fit}} é feita internamente para
obtê-los. O parâmetro \eqn{\alpha} deve ser o primeiro elemento
do vetor. Os restantes devem estar na correspondente às colunas
da matriz gerada pelo argumento \code{formula}.}
\item{...}{Argumentos opcionais do framework de maximização numérica
\code{\link[bbmle]{mle2}}.}
}
\value{
Um objeto de classe \code{mle2}, retornado da função de
\code{\link[bbmle]{mle2}}, usada para estimação por máxima
verossimilhança de modelos.
}
\description{
Estima os parâmetros de um modelo Poisson Generalizado
pela otimização da função de log-verossimilhança definida em
\code{\link{llpgnz}}. A sintaxe assemelha-se com a função
\code{\link[stats]{glm}} (Generalized Linear Models).
}
\examples{
library(bbmle)
str(soja)
soja <- soja[-74, ]
m0 <- pgnz(nvag ~ bloc + umid * factor(K), data = soja)
m1 <- pgnz(nvag ~ bloc + umid + factor(K), data = soja)
anova(m0, m1)
summary(m1)
plot(profile(m1, which = "alpha"))
abline(v = 0, lty = 2, col = 2)
str(capdesfo)
n0 <- pgnz(ncap ~ est * (des + I(des^2)), data = capdesfo)
n1 <- pgnz(ncap ~ est + (des + I(des^2)), data = capdesfo)
anova(n0, n1)
summary(n0)
plot(profile(n0, which = "alpha"))
}
\author{
Walmes Zeviani, \email{walmes@ufpr.br}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment