\documentclass[a4paper, oneside, 10pt]{article} \usepackage[english]{babel} \usepackage[unicode]{hyperref} \usepackage[utf8x]{inputenc} \usepackage{listings} \usepackage{longtable} \usepackage{graphicx} \graphicspath{{media/}} \date{\today} \title{} \author{} \begin{document} \section{\texorpdfstring{Modelos Lineares Generalizados: contagem}{Modelos Lineares Generalizados contagem}} \label{sec:modelos_lineares_generalizados_contagem} \subsection{\texorpdfstring{GLM: introdução}{GLM introduao}} \label{sec:glm_introduao} Essa introdução aos GLM é a mesma do tutorial \href{http://labtrop.ib.usp.br/doku.php?id=cursos:planeco:roteiro:10-glmbinomial}{cursos:planeco:roteiro:10-glmbinomial}, caso já tenha feito, pode passar diretamente para o tópico \href{http://labtrop.ib.usp.br/doku.php?id=cursos:planeco:roteiro:10-glmpoisson\%23glm:contagem}{GLM: contagem} Os modelos lineares generalizados (\textbf{GLMs}) são uma ampliação dos modelos lineares ordinários. Os \textbf{GLM's} são usados quando os resíduos (erro) do modelo apresentam distribuição diferente da normal (gaussiana). A natureza da variável resposta é uma boa indicação do tipo de distribuição de resíduos que iremos encontrar nos modelos. Por exemplos, variáveis de contagem são inteiras e apresentam os valores limitados no zero. Esse tipo de variável, em geral, tem uma distribuição de erros assimétrica para valores baixos e uma variância que aumenta com a média dos valores preditos, violando duas premissas dos modelos lineares. Os casos mais comuns de modelos generalizados são de variáveis resposta de contagem, proporção e binária, muito comum nos estudos de ecologia e evolução. \textbf{ Devemos considerar os GLMs principalmente quando a variável resposta é expressa em: } \begin{itemize} \item contagens simples \item contagem expressa em proporções \item número de sucesso e tentativa \item variáveis binárias (ex. morto x vivo) \item tempo para o evento ocorrer (modelos de sobrevivência) \end{itemize} \subsection{\texorpdfstring{GLM: componentes}{GLM componentes}} \label{sec:glm_componentes} Uma das formas de entendermos os modelos generalizados é separar o modelo em dois componentes: a relação determinística entre as variáveis (resposta e preditora) e o componente aleatório dos resíduos (distribuição dos erros). Em um modelo linear ordinário a relação entre as variáveis é uma proporção constante, o que define uma relação funcional de uma reta. Quando temos uma contagem, essa relação pode ter uma estrutura funcional de uma exponencial. Para esses casos, os modelos generalizados utilizam uma função de ligação \texttt{log} para linearizar a relação determinística entre as variáveis. Portanto, a estrutura determinística dos modelos \textbf{GLM's} é definida por um preditor linear, associada à função de ligação. O componente aleatório dos resíduos, no caso de uma variável de contagem, segue, em geral, uma distribuição \textbf{poisson}. A distribuição \textbf{poisson} é uma variável aleatória definida por apenas um parâmetro ($\lambda$), equivalente à média, chamada de \texttt{lambda}. A distribuição \textbf{poisson} tem uma característica interessante, seu desvio padrão é igual à média. Portanto, se a média aumenta, o desvio acompanha esse aumento e a distribuição passa a ter um maior espalhamento. \subsubsection{\texorpdfstring{Preditor linear e função de ligação}{Preditor linear e funao de ligaao}} \label{sec:preditor_linear_e_funao_de_ligaao} O preditor linear está associado à estrutura determinística do modelo e está relacionado à linearização da relação, aqui definido como $\eta$: $$ \eta = \alpha + \beta x$$ A função de ligação é o que relaciona o preditor linear com a esperança do modelo: $$ \eta = g^{-1}(E_{(y)}) $$ Ou seja, nos modelos generalizados não é a variável resposta que tem uma relação linear com a preditora, e sim o preditor linear que tem uma relação linear com as preditoras. \subsubsection{\texorpdfstring{Funções de ligações canônicas}{Funoes de ligaoes canonicas}} \label{sec:funoes_de_ligaoes_canonicas} Para alguns tipos de famílias de variáveis temos funções de ligações padrões. As mais usadas são: \begin{longtable}{|l|l|l|} \hline \textbf{ Natureza da resposta } & \textbf{ Estrutura dos resíduos (erro) } & \textbf{ Função de ligação } \\ \hline contínua & normal & identidade \\ \hline contagem & poisson & log \\ \hline proporção & binomial & logit \\ \hline \end{longtable} \subsection{\texorpdfstring{GLM: dispersão e acumulo de zeros}{GLM dispersao e acumulo de zeros}} \label{sec:glm_dispersao_e_acumulo_de_zeros} Os modelo GLM poisson e binomial apresentam a variância acoplada à média dos valores, diferentemente dos modelos com distribuição normal onde a média e a variância são independentes. Caso haja uma variação maior ou menor nos dados do que o previsto por essas distribuições, o modelo não consegue dar conta. Essa sobre-dispersão ou sub-dispersão dos dados indica que temos mais ou menos variação do que é predito pelos modelos. Isso pode ser decorrência de vários fontes de erro na definição do modelo, alguns exemplos são: \begin{itemize} \item o resíduo dos dados pode não ter sido gerado por um processo aleatório poisson ou binomial \item há mais variação do que predito pela ausência de preditoras importantes \item muitos zeros, além do predito pelas distribuições, em decorrência de diferentes processos: um que gera a ausência e outro que gera a variação nas ocorrências de sucesso \end{itemize} \textbf{\underline{ Soluções para a sobre-dispersão e acumulo de zeros}} A solução mais simples para lidar com a dispersão são os modelo quasipoisson e quasibinomial, que estimam um parâmetro a mais, relacionando a média à variância, o parâmetro de dispersão. Entretanto, os modelos \texttt{quasi} dão conta apenas de dispersões moderadas e não indicam qual a fonte dela. Há algumas alternativas ao modelo \texttt{quasi} para a dispersão dos dados, alguns deles estão listados abaixo: \begin{itemize} \item modelo binomial negativo \item modelo de mistura, considerando dois processos distintos \item modelos mistos, considerando a ausência de independência das observações \item modelos com acúmulos de zeros (Zero Inflated Models). \end{itemize} Não é objetivo deste curso mostrar todas essas alternativas, mas caso se deparem com esse problema, muito frequente na área da biológica, saibam que existem alternativas robustas para solucioná-lo. \textbf{ Variável resposta binária é um caso especial da binomial com apenas uma tentativa, chamado de distribuição de Bernoulli, e não tem problema com sobre-dispersão} \section{\texorpdfstring{GLM: contagem}{GLM contagem}} \label{sec:glm_contagem} \subsection{\texorpdfstring{Contagem: um exemplo simples}{Contagem um exemplo simples}} \label{sec:contagem_um_exemplo_simples} Um exemplo, apresentado no livro do Michael Crawley, The R Book, relata a contagem de espécies de árvores em unidades amostrais de florestas com diferentes biomassa e classificadas em três níveis de \underline{ph} no solo: baixo, médio e alto. O objetivo desse experimento não manipulativo é verificar se há relação entre riqueza de árvores e as preditora biomassa da floresta e \underline{ph} do solo. \underline{\textbf{ATIVIDADE}} \subsubsection{\texorpdfstring{Modelo Linear Múltiplo (LM)}{Modelo Linear Multiplo LM}} \label{sec:modelo_linear_multiplo__lm} \begin{enumerate} \item Importe o arquivo \href{media/cursos/planeco/roteiro/species.txt}{species.txt} para o Rcmdr. Note que esse arquivo tem como separador de campo a tabulação e decimal como ponto. \item Monte o modelo linear clássicos (\texttt{lm}) para esse dados, tendo como variável resposta a riqueza de espécies(\texttt{Species}) e como preditoras o \texttt{pH} e \texttt{Biomass} e as interações possíveis. \item Reduza o modelo cheio ao modelo mínimo adequado utilizando como critério de comparação a tabela de anova. \item Utilizando os coeficientes estimados do modelo, faça a predição do número de espécies para: \begin{itemize} \item um nível alto de \texttt{pH} com \texttt{Biomass} de \textbf{3.2} \item um nível médio de \texttt{pH} com \texttt{Biomass} de \textbf{15.5} \item um nível baixo de \texttt{pH} com \texttt{Biomass} de \textbf{7.1} \end{itemize} \end{enumerate} \subsubsection{\texorpdfstring{Modelo Linear Generalizado (GLM)}{Modelo Linear Generalizado GLM}} \label{sec:modelo_linear_generalizado_glm} \begin{enumerate} \item Repita o procedimento de simplificação a partir do modelo cheio, agora com modelo linear generalizado (\texttt{glm}) e com \texttt{family = poisson}. \begin{itemize} \item Caso o Rcmdr não retorne o \texttt{p-valor} na comparação de modelos por anova, copie a linha de código que foi utilizada com \texttt{anova(...)} e cole novamente incluindo \texttt{anova(..., test=,,Chisq")} \end{itemize} \item Calcule as mesmas predições acima para o modelo, usando os coeficientes do preditor linear do \texttt{glm}. \item Transforme os preditos pelo modelo de volta para a escala de observação \footnote{note que é preciso primeiro calcular o predito na escala do preditor linear e depois transformar, o que não é a mesma coisa que transformar os coeficientes e depois calcular o predito}. \item Faça os gráficos apresentados no tópico \href{http://labtrop.ib.usp.br/doku.php?id=cursos:planeco:roteiro:10-glm\%23grafico_no_rcmdr}{ Gráfico no Rcmdr} \end{enumerate} \begin{itemize} \item Para a predição no \texttt{glm} utilize os coeficientes estimados pelo modelo. \item Após estimar o predito na escala linear, transforme a predição para a escala de observação. \item Como usamos o \texttt{log} como função de ligação, para retornar a escala da observação devemos utilizar o antilog, no caso, a função exponencial. \end{itemize} \subsection{\texorpdfstring{Gráfico no Rcmdr}{Grafico no Rcmdr}} \label{sec:grafico_no_rcmdr} \subsubsection{\texorpdfstring{Gráfico dos dados}{Grafico dos dados}} \label{sec:grafico_dos_dados} No menu \textbf{Graphs}, selecione \textbf{XY conditioningh Plot} e selecione as varíáveis, definindo \textbf{\emph{ph}} como variável de agrupamento, como no gráfico abaixo. \includegraphics[keepaspectratio=true,width=0.8\textwidth]{cursos/planeco/roteiro/speciesPlot} \subsubsection{\texorpdfstring{Gráfico dos Modelos}{Grafico dos Modelos}} \label{sec:grafico_dos_modelos} No menu \textbf{Models\textgreater Graphs} selecione \textbf{Predict effect plots...} e selecione as variáveis. \includegraphics[keepaspectratio=true,width=0.8\textwidth]{cursos/planeco/roteiro/speciesLMres} \textbf{\underline{Ordenando uma categórica}} O padrão do R é ordenar as variáveis categóricas por ordem alfabética. No exemplo seria desejável reordenar a variável categórica \texttt{ph} em uma categórica ordenada \texttt{low\textgreater medium\textgreater high}. \begin{itemize} \item reordene a variável \texttt{ph} utilizando o menu \texttt{Data\textgreater Manager variable in active data set\textgreater Reorder factor levels} \item crie a variável \texttt{factor} com o nome \texttt{phF} na caixa \texttt{factor name} e selecion a caixa \texttt{Faça fator ordenado}, em seguida clique em \texttt{OK}; \item reordene as variáveis inserindo \texttt{1}, \texttt{2} e \texttt{3} nas caixas dos níveis \texttt{low}, \texttt{medium}, \texttt{high} \end{itemize} \subsubsection{\texorpdfstring{Formulário de Perguntas}{Formulario de Perguntas}} \label{sec:formulario_de_perguntas} \begin{itemize} \item Responda as perguntas \href{https://forms.gle/25sHYMhmKM1WfT5K9}{do formulário} \end{itemize} \subsection{\texorpdfstring{Contagem: o que faz um aluno faltar às aulas}{Contagem o que faz um aluno faltar as aulas}} \label{sec:contagem_o_que_faz_um_aluno_faltar_as_aulas} Vamos utilizar um exemplo que está presente no livro de W. Venables e B. Ripley, \underline{Modern Applied Statistics with S-PLUS}\footnote{já não tão moderno assim, já que foi publicado pela primeira vez em 1999}, sobre o número de dias ausentes da escola de crianças na Austrália. \subsubsection{\texorpdfstring{Carregando o pacote MASS}{Carregando o pacote MASS}} \label{sec:carregando_o_pacote_mass} No Rcommader (Rcmdr) vá ao menu \textbf{ Tools } \textgreater \textbf{Load package(s)} e selecione o pacote \texttt{MASS}. \\ Caso o pacote não apareça listado, significa que ele já está carregado, então pule esse passo. \includegraphics[keepaspectratio=true,width=0.8\textwidth]{planeco/roteiro/glm01} \subsubsection{\texorpdfstring{Lendo os dados: quine}{Lendo os dados quine}} \label{sec:lendo_os_dados_quine} Em sequida: \begin{itemize} \item abra o menu \textbf{Data} \textgreater \textbf{ Data in packages} \textgreater \textbf{ Read data from an attached package...} \item selecione o pacote \textbf{MASS } e os dados \textbf{quine} \footnote{deixe o nome do dado como quine} \end{itemize} \includegraphics[keepaspectratio=true,width=0.8\textwidth]{planeco/roteiro/glm02} \subsubsection{\texorpdfstring{Entendendo os dados: quine}{Entendendo os dados quine}} \label{sec:entendendo_os_dados_quine} Os dados estão relacionados ao estudo para entender quais variáveis estão relacionados à ausência (falta) do aluno na escola. A observação está relacionada a alunos amostrados aleatoriamente de escolas na Austrália. \begin{itemize} \item \textbf{Days}: variável resposta, número de dias ausente da escola \item \textbf{Eth}: origem aborígene (A) ou não (N) \item \textbf{Sex}: homem (M) ou mulher (F) \item \textbf{Age}: estágio de educação F0(primário)... quatro níveis. \item \textbf{Lrn}: classificação de aprendizado do aluno médio (AL) e fraco (SL)\footnote{essa variável tem algumas complicações adicionais e por isso vamos deixá-la de lado} \end{itemize} \subsubsection{\texorpdfstring{Gráfico dos dados}{Grafico dos dados}} \label{sec:grafico_dos_dados2} O pacote RcmdrPlugin.KMggplot2 é um plugin para Rcmdr que amplia as funções gráficas da interface. Instale o pacote copiando o comando abaixo no box superior do Rcmdr: \begin{itemize} \item \textbf{guarde os resultados dos modelos fora do Rcmdr pois a instalação e o carregamento do pacote solicita a reinicialização do Rcmdr} \item \textbf{após a instalação e carregamento do pacote, confira se os dados permanecem ativos, confira se precisará carregá-lo novamente } \end{itemize} \lstset{frame=single} \begin{lstlisting} install.packages("RcmdrPlugin.KMggplot2") \end{lstlisting} Em seguida, garanta que o cursor do mouse está na linha de comando e clique no botão \textbf{Submit}. Na janela que ira se abrir selecione o repositório \textbf{Brasil(SP1)}. \raggedright\includegraphics[keepaspectratio=true,width=0.8\textwidth]{cursos/planeco/roteiro/instalpkg} Para ativar o plugin selecione o menu \textbf{Tools\textgreater Load Rcmdr plug-in(s)...} e em seguida selecione o pacote \texttt{RcmdrPlugin.KMggplot2}. \includegraphics[keepaspectratio=true,width=0.8\textwidth]{cursos/planeco/roteiro/loadPluginRcmdr} \begin{itemize} \item clique em sim na janela que solicita a reinicialização do Rcmdr \item clique na nova opção do menu \textbf{KMggplot2 \textgreater BoxPlot/...} e selecione as variáveis \end{itemize} \includegraphics[keepaspectratio=true,width=0.8\textwidth]{cursos/planeco/roteiro/graficoBoxPlots} \subsubsection{\texorpdfstring{Ajustando o GLM: dias fora da escola}{Ajustando o GLM dias fora da escola}} \label{sec:ajustando_o_glm_dias_fora_da_escola} \textbf{\underline{Atividade}} Para nosso exercício vamos deixar de lado a variável \texttt{Lrn} por que há dados faltantes nela com relação a outras variáveis. Vamos construir o modelo cheio com a variável resposta \texttt{Days} e com as variáveis preditoras (\texttt{Eth}, \texttt{Sex}, \texttt{Age} ) e todas as possibilidades de interações entre elas. Como estamos tratando de uma variável de contagem podemos partir direto para um modelo \textbf{GLM} indicando a família de distribuição de resíduos \textbf{POISSON} e a função de ligação \textbf{\emph{log}}. \begin{itemize} \item abra o menu \textbf{Statistics} \textgreater \textbf{Fit model} \textgreater \textbf{ Generalized Linear Model } \item construa um modelo cheio com (\textbf{Age, Eth e Sex}) e as suas interações possíveis: \end{itemize} \lstset{frame=single} \begin{lstlisting} Days ~ Eth + Sex + Age + Eth:Sex + Eth:Age + Sex:Age + Eth:Sex:Age \end{lstlisting} \begin{itemize} \item faça a simplificação do modelo para reduzir o modelo ao mínimo adequado \end{itemize} \includegraphics[keepaspectratio=true,width=0.8\textwidth]{cursos/planeco/roteiro/quineGLM} \subsubsection{\texorpdfstring{Diagnóstico do modelo}{Diagnostico do modelo}} \label{sec:diagnostico_do_modelo} Um dos pressupostos do modelo Poisson é que a variância aumenta linearmente com a esperança (média do modelo). Podemos avaliar isso dividindo a \texttt{Residual Deviance } pelo seu \texttt{degrees of freedom}. Essa razão deve ser próxima a 1. O que não é o caso do nosso modelo. Nesses casos uma das alternativas é: \begin{itemize} \item ajustar o modelo usando \textbf{ Family}: \texttt{quasipoisson} \end{itemize} \subsubsection{\texorpdfstring{Ajustando o GLM com sobredispersão}{Ajustando o GLM com sobredispersao}} \label{sec:ajustando_o_glm_com_sobredispersao} \begin{itemize} \item monte o modelo cheio utilizando a família \texttt{quasipoisson}; \item verifique se o parâmetro de dispersão compensa a razão entre \texttt{Residual deviance} e os respectivos \texttt{degrees of freedom}; \item siga em frente simplificando o modelo para o mínimo adequado; \item o que está representado no intercepto do modelo selecionado e qual a predição de dias de aulas perdidas para esse aluno? \item faça a predição do modelo para os seguintes alunos: \begin{itemize} \item menino aborígene no ano \texttt{F2} \item menino não aborígene no ano \texttt{F2} \item menina aborígene no ano \texttt{F3} \item menina não aborígene no ano \texttt{F3} \end{itemize} \end{itemize} \begin{itemize} \item interprete o modelo selecionado. \end{itemize} \paragraph{\texorpdfstring{Gráfico do Modelo}{Grafico do Modelo}} \label{sec:grafico_do_modelo} O gráfico do modelo pode ser obtido no Rcmdr da mesma forma indicada no modelo anterior, no menu: \textbf{Models\textgreater Graphs} selecione \textbf{Predict effect plots...} e selecione as variáveis. \subsubsection{\texorpdfstring{Formulário de Perguntas}{Formulario de Perguntas}} \label{sec:formulario_de_perguntas2} \begin{itemize} \item Responda as perguntas \href{https://forms.gle/WdAzcHBpF25NeMkd9}{do formulário} \end{itemize} \end{document}