<<setup-child, include=FALSE>>=
set_parent("slides-mrdcr.Rnw")

## Pacotes utilizados nesta seção
## library(MRDCr)
devtools::load_all()
library(lattice)

@

\begin{frame}[allowframebreaks]{Excesso de Zeros}

\begin{itemize}
    \item Casos em que a proporção de valores nulos na amostra é superior
    àquela estimada por um modelo de contagem. No caso Poisson
    $e^{-\lambda}$
    \item Geralmente contagens com um número excessivo de valores nulos
    apresentam superdispersão (ocasionada pelo excesso de zeros).
    \item Os modelos mais flexíveis abordados não capturam esse excesso de
    zeros e não se ajustam adequadamente.
\end{itemize}

\framebreak


<<fig.width=10, fig.height=4, out.width="1.0\\textwidth">>=

set.seed(100)
n <- 1000

lambda <- 2; pi <- 0.9
y <- sapply(rbinom(n, 1, pi), function(x) {
    ifelse(x == 0, 0, rpois(1, lambda))
})

lambda <- 5; pi <- 0.85
y2 <- sapply(rbinom(n, 1, pi), function(x) {
    ifelse(x == 0, 0, rpois(1, lambda))
})

yu <- sort(unique(y))
yu2 <- sort(unique(y2))

## Probabilidades reais
py_real <- c(prop.table(table(y)))
py_real2 <- c(prop.table(table(y2)))

## Probabilidades via Poisson
m0 <- glm(y ~ 1, family = poisson)
py_pois <- dpois(yu, exp(m0$coef))
m02 <- glm(y2 ~ 1, family = poisson)
py_pois2 <- dpois(yu2, exp(m02$coef))

## Probabilidades via COM-Poisson
m2 <- cmp(y ~ 1, data = data.frame(y = y), sumto = 40)
py_dcmp <- dcmp(yu, lambda = exp(m2@coef[-1]), 
                nu = exp(m2@coef[1]), sumto = 40)
m22 <- cmp(y ~ 1, data = data.frame(y = y2), sumto = 40)
py_dcmp2 <- dcmp(yu2, lambda = exp(m22@coef[-1]), 
                 nu = exp(m22@coef[1]), sumto = 40)

##----------------------------------------------------------------------
cols <- c(trellis.par.get("dot.symbol")$col,
          trellis.par.get("superpose.line")$col[2:3])
key <- list(corner = c(0.95, 0.9),
            lines = list(lty = 1, col = cols, lwd = 3),
            text = list(c("Real", "Poisson", "COM-Poisson")))


ylim <- extendrange(c(0, max(py_real, py_pois, py_dcmp)))
esp <- 0.11
xy1 <- xyplot(py_real ~ yu, type = "h", lwd = 3, grid = TRUE,
              main = expression(mu[count] == 2~", "~pi["zero extra"] == 0.1),
              xlab = "", ylab = expression(P(Y==y)),
              ylim = ylim, key = key,
              panel = function(x, y, ...) {
                  panel.xyplot(x, y, ...)
                  panel.lines(x = x - esp, y = py_pois, type = "h",
                              col = cols[2], lwd = 3)
                  panel.lines(x = x + esp, y = py_dcmp, type = "h",
                              col = cols[3], lwd = 3)
              })

ylim <- extendrange(c(0, max(py_real2, py_pois2, py_dcmp2)))
esp2 <- 0.15
xy2 <- xyplot(py_real2 ~ yu2, type = "h", lwd = 3, grid = TRUE,
              main = expression(mu[count] == 5~", "~pi["zero extra"] == 0.15),
              xlab = "", ylab = "",
              ylim = ylim, key = key,
              panel = function(x, y, ...) {
                  panel.xyplot(x, y, ...)
                  panel.lines(x = x - esp2, y = py_pois2, type = "h",
                              col = cols[2], lwd = 3)
                  panel.lines(x = x + esp2, y = py_dcmp2, type = "h",
                              col = cols[3], lwd = 3)
              })

print(xy1, split = c(1, 1, 2, 1), more = TRUE)
print(xy2, split = c(2, 1, 2, 1), more = FALSE)
      
@

\end{frame}

\begin{frame}[allowframebreaks]{Gerador de excesso de zeros}

\begin{itemize}
    \item Uma limitação das abordagens estudadas é que as contagens nulas
    e não nulas são provenientes do mesmo processo gerador dos dados.
    \item Para dados com excesso de zeros, é razoável a suposição da haver
    mais de um processo gerador atuando na geração dos dados.
    \item Assim a ocorrência de valores nulos podem ser caracterizada
    como:
    \begin{itemize}
        \item {\bf zeros amostrais}: Ocorrem segundo um processo gerador
        de contagens (e.g Processo Poisson)
        \item {\bf zeros estruturais}: Ausência de determinada
        característica da população.
    \end{itemize}
\end{itemize}

\framebreak

Exemplo. Um estudo que visa avaliar a quantidade de produtos comprados 
em um mercado por uma família na última semana. A variável de interesse é
o número de itens comprados.

\vspace{0.5cm}

\textit{zeros estruturais}: Se a família não foi ao mercado na última
semana. Inevitavelmente o número de produtos será 0.

\textit{zeros amostrais}: A família foi ao mercado, porém não adquiriu
nenhum produto.

\end{frame}

\begin{frame}{Modelando contagens com excesso de zeros}

Como há dois processos que geram os valores da população, na modelagem
deve-se considerar ambos. As principais abordagens nestes casos são via:

\begin{itemize}
    \item {\bf Modelos de barreira (\textit{Hurdle Models})}: que
    desconsidera os zeros amostrais e modela os zeros estruturais e as
    contagens positivas (seção \ref{sec-hurdle}); e
    \item {\bf Modelos de mistura (\textit{Zero Inflated Models})}: que 
    modela os zeros (estruturais e amostrais) em conjunto com as contagens
    positivas (\ref{sec-zeroinfl}).
\end{itemize}

\end{frame}