diff --git a/slides/06-mcmc.Rnw b/slides/06-mcmc.Rnw new file mode 100644 index 0000000000000000000000000000000000000000..1ec998f71a4079865adbc32e66c70ee3978dd1ef --- /dev/null +++ b/slides/06-mcmc.Rnw @@ -0,0 +1,184 @@ +%----------------------------------------------------------------------- + +\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{Métodos baseados no aceitação e rejeição} +\subtitle{Amostrador independente e Metropolis Random Walk} +\date{\small{ \Sexpr{sprintf('Atualizado em %s', Sys.Date())}}} + +%----------------------------------------------------------------------- + +\begin{document} + +{\setbeamertemplate{footline}{} + \frame{\titlepage} %-------------------------------------------------- +} + +\begin{frame}{} + + {\large Justificativas} + + \begin{itemize} + \item O método da aceitação e rejeição é útil, porém tem limitações. + \item Método baseados nele foram propostos e são utilizados em vários + contextos, principalmente em inferência bayesiana. + \end{itemize} + + {\large Objetivos} + + \begin{itemize} + \item Apresentar o método do amostrador independente. + \item Apresentar o método do Metropolis Random Walk. + \end{itemize} +\end{frame} + +%----------------------------------------------------------------------- +\begin{frame}[allowframebreaks]{O amostrador independente} + + % TODO: https://rpubs.com/mlanier/metro_paper + + Objetivo: gerar números de uma v.a. $X$ a partir de valores de uma + v.a. canditada $Y$. + + \begin{enumerate} + \item Escolher uma v.a. $Y$ para gerar valores candidatos para a + v.a. alvo $X$. O suporte de $Y$ deve conter o de $X$. Tem-se que ter + um GNA para $Y$. A função de densidade de ambas, $f_{X}(x)$ e + $f_{Y}(y)$ deve ser computável para todo $x$. + \item Fornecer um valor inicial $x_0 = y_0$. + \item Criar a variável contadora $i = 1$. + + \framebreak + + \item Gerar um valor $y_{i}$ com o GNA da v.a. $Y$. + \item Gerar um número uniforme $u$ vindo da $\text{U}(0, 1)$. + \item Calcular a probabilidade de aceitação + \begin{equation} + r = \frac{ + \frac{f_X(y_i)}{f_X(x_{i-1})} + }{ + \frac{f_Y(y_i)}{f_Y(x_{i-1})} + } = + \frac{f_X(y_i)}{f_X(x_{i-1})} \frac{f_Y(x_{i - 1})}{f_Y(y_i)} = + \frac{f_X(y_i)}{f_Y(y_i)} \frac{f_Y(x_{i - 1})}{f_X(x_{i-1})}. + \end{equation} + \item Se $u < r$, fazer $x_{i} = y_{i}$, caso contrário, fazer $x_{i} = x_{i - 1}$. + \item Incrementar $i$ em uma unidade. + \item Repetir de 4--8 até atingir o número desejado de valores de $X$. + \end{enumerate} + +Código exemplo: \url{http://leg.ufpr.br/~walmes/ensino/ce089-2014-02/ce089-2014-02-aula06.html}. + +\end{frame} + +\begin{frame}{Aspectos importantes} + + \begin{itemize} + \item A cadeia de números aleatórios irá apresentar valores repetidos. + \item Um número grande $n$ de valores de $X$ deve ser gerado para que + a distribuição seja apropriadamente representada (convergência da + cadeia). + \item Pode-se, ao final, reamostrar um número $m < n$ de valores para + ter uma amostra independente. + \item Tal amostragem pode ser sistemática, pegando um elemento a cada + $k$ consecutivos (raleamento). + \end{itemize} + +\end{frame} + +%----------------------------------------------------------------------- +\begin{frame}[allowframebreaks]{O Metropolis Random Walk} + + % TODO: https://en.wikipedia.org/wiki/Metropolis%E2%80%93Hastings_algorithm + + Objetivo: gerar números de uma v.a. $X$ a partir de valores de uma + v.a. canditada $Y$. + + \begin{enumerate} + \item Escolher uma v.a. $Y$ para gerar valores candidatos para a + v.a. alvo $X$. O suporte de $Y$ deve ser da mesma natureza que + $X$. Tem-se que ter um GNA para $Y$. A função de densidade de ambas, + $f_{X}(x)$ e $f_{Y}(y)$ deve ser computável para todo $x$. + \item A v.a. $Y$ deve ter uma \textbf{função de densidade simétrica}. + \item Fornecer um valor inicial $x_0 = y_0$. + \item Criar a variável contadora $i = 1$. + + \framebreak + + \item Gerar um valor $y_{i}$ com o GNA da v.a. condicional $Y$, ou + seja, $f_{Y}(y|x_{i-1})$. + \item Gerar um número uniforme $u$ vindo da $\text{U}(0, 1)$. + \item Calcular a probabilidade de aceitação + \begin{equation} + r = \frac{f_X(y_i)}{f_X(x_{i - 1})}. + \end{equation} + \item Se $u < r$, fazer $x_{i} = y_{i}$, caso contrário, fazer $x_{i} = x_{i - 1}$. + \item Incrementar $i$ em uma unidade. + \item Repetir de 4--9 até atingir o número desejado de valores de $X$. + \end{enumerate} + +Código exemplo: \url{http://leg.ufpr.br/~walmes/ensino/ce089-2014-02/ce089-2014-02-aula06.html}. + +\end{frame} + +%----------------------------------------------------------------------- +\begin{frame}{Aspectos importantes} + + \begin{itemize} + \item Valem as mesmas considerações do amostrador independente. + \item Se a função de densidade da v.a. candidata não for simétrica, + uma modificação do cálculo da probabilidade de aceitação deve ser + feito. + \item Isso leva ao algorÃtimo de Metropolis-Hastings (mais geral). + \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 Casos especiais de GNA de números aleatórios. + \item GNA para a distribuição Normal. + \end{itemize} + + \hi{Avisos} + \begin{itemize} + \item Sabatina estará disponÃvel de Qui 12h00 ao Sáb 23h59. + \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}