Essa é uma revisão anterior do documento!
Essa introdução aos GLM é a mesma do tutorial Modelos Lineares Generalizados, caso já tenha feito, pode passar diretamente para o tópico glm:_binomial
Os modelos lineares generalizados (GLMs) são uma ampliação dos modelos lineares ordinários. Os 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.
Devemos considerar os GLMs principalmente quando a variável resposta é expressa em:
Os modelos de proporção de sucessos (sucessos/tentativas), proporção simple (%) ou de resposta binária (presença/ausência, vivo/morto) são modelados, normalmente, com estrutura do erro binomial. Nesses casos os limites dos valores da variável resposta é bem definido: entre 0 e 1. Além disso, a variância não é constante e varia conforme a média. Essas características fazem com que os resíduos apresentem uma estrutura que aumenta e depois diminuí, e normalmente o máximo de desvios é encontrado nos valores intermediários.
A estrutura da função de ligação é a mesma para qualquer modelo:
O preditor linear está associado à estrutura determinística do modelo e 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(E_{(y)}) $$
A função de ligação $g()$ para modelos com resposta binária ou proporção é chamada de logit
ou log odds-ratio
, definida como:
$$ \eta = \log(\frac{p}{1-(\p)})$$
Para reverter o preditor linear da função logit para a escala de observação usa-se a função inversa:
$$ logit^{-1} = \frac{e^{\eta}}{(1+ e^{\eta})} $$
Mais um exemplo apresentado no livro do Michael Crawley, The R Book.
Neste experimento o objetivo foi avaliar a floração de 5 variedades de plantas tratadas com hormônios de crescimento (6 concentrações). Depois de seis semanas as plantas foram classificadas em floridas ou vegetativas.
Conjunto de Dados: flowering.txt
O objetivo do estudo que gerou esses dados é saber se o evento de floração é influenciado pelo dose de hormônio e a variedade da planta.
flower
prop
pelo menu Data> Manage variables in active data set> Compute new variable…, colocando no campo Expression to compute:cbind(sucess = flowered, fail = number - flowered)
Esse comando acima cria uma nova variável nos dados flower chamada prop. Essa nova variável tem duas colunas (sucess e fail) contendo o número de plantas floridas e o número de plantas que não floresceram, respectivamente.
prop
como resposta (sucessos, falhas)Use os mesmos passos do modelo anterior no Rcmdr
family
nesse caso é binomial
Para interpretar tanto os coeficientes quanto os valores previsto é necessário aplicar a função inversa do logit
, ou seja, nosso modelo faz previsões na escala de log(odds-ratio), nosso preditor linear $\eta$, e precisamos retornar para a escala de observação que é a probabilidade de florescer ($\hat{y}$):
$$\hat{y} = \frac{e^{\hat{\eta}}}{1+e^{\hat{\eta}}} $$
Transformar os coeficientes e valores preditos pelo GLM:
Para transformar o valor predito pelo modelo (log(odds-ratio)) na escala de medida (proporção) é preciso transformar os preditos pelo modelo. Para predizer na escala de medida usamos a função predict
, como no código abaixo. O predito pelo modelo, está na escala do preditor linear, portanto devemos transformar essa medida com a função inversa da logit, como no código abaixo. Lembre-se de mudar, no código, o “nomedomodelo” pelo nome que usou quando construiu o glm.
(preditoLinear <- predict("nomedomodelo")) (preditoProp <- exp(preditoLinear)/(1+ exp(preditoLinear)))
A própria função predict
, também faz o serviço completo se colocarmos o argumento type=“response”
, como abaixo:
predito <- predict("nomedomodelo", type = "response") predito
Para um gráfico dos resultados use o menu:
Models > Graphs > Predict effect plots…
A partir dos gráficos e do modelo selecionado faça um relato (5 linhas) das interpretações biológicos. Esse relato, junto ao resultado e gráficos, deve ser enviado aos professores ao final da atividade.
O conjunto de dados que vamos usar, isolation.txt tem como variável:
Conjunto de dados: isolation.txt
O objetivo do estudo que gerou esses dados é saber se a ocorrência da ave (reprodução) está relacionada com o isolamento e tamanho da ilha.
isolation.txt
no Rcmdr (a separação de campo é espaço)Use os mesmos passos do modelo anterior no Rcmdr
family
nesse caso é binomial
O modelo prevê a ocorrência da ave na escala de logaritmo da chance (log odds-ratio). Para interpretar tanto os coeficientes quanto os valores previsto é necessário aplicar a função inversa do logit
, como no exercício anterior:
O que deve entregar?
Para cada exercício feito, deve ser entregue, em um único arquivo:
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 idependentes. 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:
Soluções para a sobre-dispersão e acumulo de zeros
A solução mais simples para lidar com sobre-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 quasi
dão conta apenas de sobre-dispersões moderadas e não indicam qual a fonte dela.
Há algumas alternativas ao modelo quasi
para a sobre-dispersão dos dados, alguns deles estão listados abaixo:
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.