From 54729dd29d829e24fa0808734213136a57a83cc3 Mon Sep 17 00:00:00 2001
From: Walmes Zeviani <walmes@ufpr.br>
Date: Wed, 22 Aug 2018 18:52:50 -0300
Subject: [PATCH] =?UTF-8?q?Adiciona=20m=C3=A9todo=20da=20aceita=C3=A7?=
 =?UTF-8?q?=C3=A3o=20e=20rejei=C3=A7=C3=A3o.?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 _site.yml                |   4 +
 slides/05-met-ac-rej.Rnw | 205 +++++++++++++++++++++++++++++++++++++++
 2 files changed, 209 insertions(+)
 create mode 100644 slides/05-met-ac-rej.Rnw

diff --git a/_site.yml b/_site.yml
index cf0b497..75ee378 100644
--- a/_site.yml
+++ b/_site.yml
@@ -33,12 +33,16 @@ navbar:
         href: slides/03-gna-uniforme.pdf
       - text: "GNA de v.a. não uniformes"
         href: slides/04-gna-nao-uniforme.pdf
+      - text: "GNA com o met. da aceitação-rejeição"
+        href: slides/05-met-ac-rej.pdf
       - text: "----------"
       - text: "Arquivos complementares"
       - text: "GNA Uniformes (2015)"
         href: http://leg.ufpr.br/~walmes/ensino/ce089-2015-02/aula02_gna-2015-02.html
       - text: "MTIP (2015)"
         href: http://www.leg.ufpr.br/~walmes/ensino/ce089-2015-02/aula03_tip-2015-02.html
+      - text: "Met. ac-rej (2017)"
+        href: ./tutoriais/06-met-ac-rej.html
 #      - text: "Estruturas de controle"
 #        href: slides/01-estru-repet.html
 #      - text: "Teorema da Transformação da Probabilidade"
diff --git a/slides/05-met-ac-rej.Rnw b/slides/05-met-ac-rej.Rnw
new file mode 100644
index 0000000..c432661
--- /dev/null
+++ b/slides/05-met-ac-rej.Rnw
@@ -0,0 +1,205 @@
+%-----------------------------------------------------------------------
+
+\documentclass[serif, professionalfont, usenames, dvipsnames]{beamer}
+\usepackage[T1]{fontenc}
+
+% ATTENTION: preamble.tex contains all style definitions.
+\input{config/preamble.tex}
+% \usepackage[backend=bibtex, style=authoryear]{biblatex}
+\addbibresource{config/refs.bib}
+
+<<include = FALSE>>=
+source("config/setup.R")
+@
+
+%-----------------------------------------------------------------------
+
+\title{GNA pelo método da aceitação e rejeição}
+\subtitle{Importância, algorítmo e implementação}
+\date{\small{ \Sexpr{sprintf('Atualizado em %s', Sys.Date())}}}
+
+%-----------------------------------------------------------------------
+
+\begin{document}
+
+{\setbeamertemplate{footline}{}
+  \frame{\titlepage} %--------------------------------------------------
+}
+
+\begin{frame}{}
+
+  {\large Justificativas}
+
+  \begin{itemize}
+  \item A GNA pelo MTIP nem sempre é possível por causa da não
+    existência de $F_X^{-1}(.)$.
+  \item O métoda da aceitação-rejeição é aplicável quando a se possui a
+    função de densidade de probabilidade ou de probabibilidade.
+  \end{itemize}
+
+  {\large Objetivos}
+
+  \begin{itemize}
+  \item Apresentar o método da aceitação-rejeição.
+  \item Descrever e implementar o algorítmo.
+  \end{itemize}
+\end{frame}
+
+%-----------------------------------------------------------------------
+\begin{frame}{O algoritmo}
+
+  Objetivo: obter uma amostra aleatória da variável aleatória $X$ que
+  tem distribuição representada pela função de densidade é $f_{X}(x)$.
+
+  \begin{enumerate}
+  \item Encontrar uma v.a. $Y$ candidata, com função de densidade
+    $f_{Y}(y)$, da qual se possui GNA e cujo suporte contenha o suporte
+    de $X$.
+  \item Encontrar o valor $M$ tal que $f_{X}(x) \leq M f_{Y}(x)$ para
+    todo valor de $x$ no suporte de $X$.
+
+  \item Gerar uma realização de $y$ da distribuição candidata cuja
+    função de densidade é $f_{Y}(y)$.
+  \item Gerar uma realização de $u$ da distribuição $U(0, 1)$.
+  \item Se $u \leq f_{X}(y)/(M f_{Y}(y))$, fazer com que $x = y$, caso contrário, repetir de 3--5.
+  \item Repetir 3--5 o número necessário de vezes para ter uma amostra
+    de $X$ de tamanho $n$.
+  \end{enumerate}
+
+\end{frame}
+
+%-----------------------------------------------------------------------
+\begin{frame}{Exemplo: Gerar números da triangular usando a uniforme}
+
+  \begin{itemize}
+  \item Considere que $X$ tenha distribuição triangular com função de
+    densidade
+    \begin{equation}
+      f_X(x, a, b, c) = \begin{cases}
+        \dfrac{2 (x - a)}{(b - a) (c - a)}, & a < x \leq c \\
+        \dfrac{2 (b - x)}{(b - a) (b - c)}, & c < x < b \\
+        0 & \text{casos contr\'arios}.
+      \end{cases}
+    \end{equation}
+
+  \item Gerar números de $X \sim f_{X}(x, a = -b, b = 1, c = 0)$ usando
+    como v.a. candidata $Y \sim U(t, v)$ cuja densidade é
+    \begin{equation}
+      f_Y(y) = \frac{1}{v - t} \cdot I(t < y < v)
+    \end{equation}
+
+  \item Para que o suporte de $Y$ contenha o suporte de $X$, $t = -b$ e
+    $v = b$.
+  \item Para que $f_{X}(x) \leq Mf_{Y}(x)$ para todo $x$, o valor de $M = 2$.
+  \end{itemize}
+
+
+\end{frame}
+
+%-----------------------------------------------------------------------
+\begin{frame}[fragile, allowframebreaks]{Implementação em R}
+<<include = TRUE, eval = FALSE>>=
+# Densidade da X, distribuição alvo.
+f_X <- function(x, r) {
+    b <- r; a <- -r; c <- 0
+    f <- 0 + 2 * (x - a)/((b - a) * (c - a)) * (x <= c) * (x > a) +
+        2 * (b - x)/((b - a) * (b - c)) * (x > c) * (x < b)
+    return(f)
+}
+
+# Densidade da Y, distribuição candidata.
+f_Y <- function(y, r) {
+    f <- 1/(2 * r) * (y > -r) * (y < r)
+    return(f)
+}
+
+# Gráficos.
+curve(f_X(x, r = 1), from = -1, to = 1)
+curve(f_Y(y, r = 1), xname = "y", add = TRUE, col = 2, lty = 2)
+curve(2 * f_Y(y, r = 1), xname = "y", add = TRUE, col = 2)
+
+@
+
+\framebreak
+
+<<eval = FALSE>>=
+M <- 2
+n <- 10000
+x <- numeric(n)
+i <- 1
+k <- 1
+while (i <= n) {
+    y <- runif(1, min = -1, max = 1)
+    u <- runif(1)
+    ratio <- f_X(y, r = 1)/(M * f_Y(y, r = 1))
+    if (u < ratio) {
+        x[i] <- y
+        i <- i + 1
+    }
+    k <- k + 1
+}
+
+n/k           # Proporção de aceitação.
+plot(ecdf(x)) # Acumulada empírica.
+plot(density(x, from = -1, to = 1))       # Dens. empírica.
+curve(f_X(x, r = 1), add = TRUE, col = 2) # Dens. teórica.
+@
+
+\end{frame}
+
+%-----------------------------------------------------------------------
+\begin{frame}{Complementos}
+
+  \begin{itemize}
+  \item Exercício: Gerar de $X \sim \text{Triangular}$ usando $Y \sim \text{Beta}$.
+  \item Exercício: Gerar de $X \sim \text{Cauchy}$ usando $Y \sim \text{Normal}$.
+  \item Veja a animação que ilustra o método: \url{http://leg.ufpr.br/~walmes/ensino/EC2/tutoriais/06-met-ac-rej.html}.
+  \end{itemize}
+
+\end{frame}
+
+%-----------------------------------------------------------------------
+\begin{frame}{Questões}
+  \begin{itemize}
+  \item O que considerar ao escolher uma v.a. candidata?
+  \item Como melhorar a taxa de aceitação do método?
+  \item Como fazer para v.a. discretas?
+  \end{itemize}
+\end{frame}
+
+%-----------------------------------------------------------------------
+{
+  \usebackgroundtemplate{\includegraphics[height=\paperheight, width=\paperwidth]{../img/looking-ahead.jpg}}
+  % \setbeamersize{text margin left=30mm}
+
+  \begin{frame}[b]{}
+
+    \hspace*{0.5\linewidth}
+    \begin{minipage}[t]{0.5\linewidth}
+
+      \hi{Próxima aula}
+      \begin{itemize}
+      \item Métodos derivados da aceitação e rejeição.
+      \item Alternativas para GNA baseado em relações entre v.a.
+      \end{itemize}
+
+      \hi{Avisos}
+      \begin{itemize}
+      \item Sabatina 04 com o conteúdo desta semana.
+      \end{itemize}
+
+      \vspace{3em}
+    \end{minipage}
+
+\end{frame}
+}
+
+% %-----------------------------------------------------------------------
+% \begin{frame}[t, fragile, allowframebreaks]
+%   \frametitle{Referências bibliográficas}
+%
+%   \printbibliography[heading=none]
+% \end{frame}
+
+%-----------------------------------------------------------------------
+\end{document}
-- 
GitLab