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
41719448
Commit
41719448
authored
May 16, 2016
by
Eduardo E. R. Junior
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Implementa gráfico de convergência da constante Z na lattice
parent
a37a977e
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
75 additions
and
23 deletions
+75
-23
NAMESPACE
NAMESPACE
+2
-0
R/cmp.R
R/cmp.R
+53
-16
man/convergencez.Rd
man/convergencez.Rd
+20
-7
No files found.
NAMESPACE
View file @
41719448
...
...
@@ -13,3 +13,5 @@ import(doBy)
import(lattice)
import(latticeExtra)
import(multcomp)
importFrom(grDevices,extendrange)
importFrom(lattice,xyplot)
R/cmp.R
View file @
41719448
#' @title Avaliação da Convergência da Constante Normalizadora
#' @description Avalia a convergência da constante de normalização de
#' um modelo COM-Poisson definida por: \deqn{Z = \sum
#' @author Eduardo E. R. Junior, \email{edujrrib@gmail.com}
#' @export
#' @description Avalia a convergência da constante de normalização de um
#' modelo COM-Poisson definida por: \deqn{Z = \sum
#' \frac{\lambda^i}{(i!)^\nu}}, em que o parâmetro \eqn{\nu} é
#' tomado como \eqn{\exp{\phi}}.
#' @param model Objeto resultante da função \code{\link[MRDCr]{cmp}}.
#' @param tol Critério de parada do algoritmo, representa o valor
#' tolerado para a diferença do valor de \eqn{Z(\lambda, \phi)}
#' entre duas iterações. O valor padrão é 1e-4
#' tolerado para a diferença de \eqn{\frac{\lambda^i}{(i!)^\nu} -
#' 0}, pois no limite \eqn{i \rightarrow \infty} o incremente
#' \eqn{\frac{\lambda^i}{(i!)^\nu}} tende a 0.
#' @param incremento Número de incrementos da soma a serem considerados
#' a cada iteração. Padrão definido como 10, ou seja, a cada
#' iteração 10
passos incrementos são somados a Z
.
#' iteração 10
incrementos são calculados
.
#' @param maxit Número máximo de iterações a serem realizadas pelo
#' algoritmo. Se este número for atingido e o critério de tolerância
#' não for atendido, uma mensagem de aviso será exibida.
#' @param plot Argumento lógico. Se \code{TRUE} (padrão) os gráficos dos
#' incrementos da constante são exibidos.
#' incrementos daa constantes, calculadas para cada observação são
#' exibidos.
#' @return Uma lista com os incrementos das constantes Z,
#' \eqn{Z(\lambda, \phi)} da distribuição COM-Poisson, calculados
#' para cada observação.
#' @author Eduardo E. R. Junior, \email{edujrrib@gmail.com}
#' @export
#' @examples
#'
#' m1 <- cmp(ncap ~ est * (des + I(des^2)), data = capdesfo)
#' tablez <- convergencez(m1)
#' str(tablez)
#'
#' m2 <- cmp(ncap ~ dexp + I(dexp^2), data = capmosca)
#' tablez <- convergencez(m2)
#' str(tablez)
#'
#' @importFrom lattice xyplot
#' @importFrom grDevices extendrange
convergencez
<-
function
(
model
,
tol
=
1e-4
,
incremento
=
10
,
maxit
=
50
,
plot
=
TRUE
)
{
maxit
=
1
50
,
plot
=
TRUE
)
{
##-------------------------------------------
## Calcula Z para um c(lambda, phi)
calcula
<-
function
(
loglambda
,
phi
)
{
...
...
@@ -53,15 +66,39 @@ convergencez <- function(model, tol = 1e-4, incremento = 10,
phi
<-
model
@
coef
[
1
]
loglambdas
<-
X
%*%
betas
zs
<-
sapply
(
loglambdas
,
calcula
,
phi
,
simplify
=
FALSE
)
stcalc
<-
max
(
sapply
(
zs
,
length
))
##-------------------------------------------
n
<-
length
(
zs
)
id
<-
c
();
ii
<-
c
()
for
(
i
in
1
:
n
)
{
l
<-
length
(
zs
[[
i
]])
ii
<-
c
(
ii
,
1
:
l
)
id
<-
c
(
id
,
rep
(
i
,
times
=
l
))
}
da
<-
data.frame
(
zs
=
unlist
(
zs
),
id
=
id
,
ii
=
ii
)
##-------------------------------------------
if
(
plot
)
{
mx
<-
max
(
sapply
(
zs
,
max
))
lx
<-
max
(
sapply
(
zs
,
length
))
plot
(
zs
[[
1
]],
type
=
"l"
,
xlim
=
c
(
0
,
lx
),
ylim
=
c
(
0
,
mx
))
abline
(
v
=
sumto
)
for
(
i
in
2
:
length
(
zs
))
lines
(
zs
[[
i
]],
type
=
"l"
)
ylab
=
expression
(
frac
(
lambda
^
j
,
"(j!)"
^
nu
))
sumtos
<-
c
(
sumto
,
stcalc
)
print
(
xyplot
(
zs
~
ii
,
groups
=
id
,
data
=
da
,
type
=
"l"
,
ylab
=
list
(
ylab
,
rot
=
0
),
xlab
=
"j"
,
xlim
=
extendrange
(
c
(
1
,
max
(
sumtos
))),
panel
=
function
(
x
,
y
,
...
)
{
panel.xyplot
(
x
,
y
,
...
)
panel.abline
(
v
=
sumtos
,
h
=
0
)
panel.text
(
x
=
sumtos
*
0.95
,
y
=
max
(
y
)
*
c
(
0.9
,
0.8
),
labels
=
paste
(
"sumto\n"
,
c
(
"considerado"
,
"calculado"
)))
})
)
}
invisible
(
zs
)
invisible
(
da
)
}
#' @title Log-Verossimilhança do Modelo Conway-Maxwell-Poisson
...
...
man/convergencez.Rd
View file @
41719448
...
...
@@ -4,26 +4,28 @@
\alias{convergencez}
\title{Avaliação da Convergência da Constante Normalizadora}
\usage{
convergencez(model, tol = 1e-04, incremento = 10, maxit = 50,
convergencez(model, tol = 1e-04, incremento = 10, maxit =
1
50,
plot = TRUE)
}
\arguments{
\item{model}{Objeto resultante da função \code{\link[MRDCr]{cmp}}.}
\item{tol}{Critério de parada do algoritmo, representa o valor
tolerado para a diferença do valor de \eqn{Z(\lambda, \phi)}
entre duas iterações. O valor padrão é 1e-4}
tolerado para a diferença de \eqn{\frac{\lambda^i}{(i!)^\nu} -
0}, pois no limite \eqn{i \rightarrow \infty} o incremente
\eqn{\frac{\lambda^i}{(i!)^\nu}} tende a 0.}
\item{incremento}{Número de incrementos da soma a serem considerados
a cada iteração. Padrão definido como 10, ou seja, a cada
iteração 10
passos incrementos são somados a Z
.}
iteração 10
incrementos são calculados
.}
\item{maxit}{Número máximo de iterações a serem realizadas pelo
algoritmo. Se este número for atingido e o critério de tolerância
não for atendido, uma mensagem de aviso será exibida.}
\item{plot}{Argumento lógico. Se \code{TRUE} (padrão) os gráficos dos
incrementos da constante são exibidos.}
incrementos daa constantes, calculadas para cada observação são
exibidos.}
}
\value{
Uma lista com os incrementos das constantes Z,
...
...
@@ -31,10 +33,21 @@ Uma lista com os incrementos das constantes Z,
para cada observação.
}
\description{
Avalia a convergência da constante de normalização de
um
modelo COM-Poisson definida por: \deqn{Z = \sum
Avalia a convergência da constante de normalização de
um
modelo COM-Poisson definida por: \deqn{Z = \sum
\frac{\lambda^i}{(i!)^\nu}}, em que o parâmetro \eqn{\nu} é
tomado como \eqn{\exp{\phi}}.
}
\examples{
m1 <- cmp(ncap ~ est * (des + I(des^2)), data = capdesfo)
tablez <- convergencez(m1)
str(tablez)
m2 <- cmp(ncap ~ dexp + I(dexp^2), data = capmosca)
tablez <- convergencez(m2)
str(tablez)
}
\author{
Eduardo E. R. Junior, \email{edujrrib@gmail.com}
...
...
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