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 desvios 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:
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, o glm faz uso de uma função de ligação log, para linearizar a relação determinística entre as variáveis, temos portanto o estrutura deterministica do modelo definida por um preditor linear associado à 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 poisson. A distribuição poisson é uma variável aleatória definida por apenas um parâmetro (λλ), equivalente à média da distribuição normal, chamada de lambda. A distribuição 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.
O preditor linear está associado à estrutura determinística do modelo e está relacionado à linearização da relação, aqui definido como ηη:
η=α+βxη=α+βx
A função de ligação é o que relaciona o preditor linear com a esperança do modelo:
η=g−1(E(y))η=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.
Para alguns tipos de famílias de variáveis temos funções de ligações padrões. As mais usadas são:
Natureza da resposta | Estrutura dos resíduos (erro) | Função de ligação |
---|---|---|
contínua | normal | identidade |
contagem | poisson | log |
proporção | binomial | logit |
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 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 ph do solo.
ATIVIDADE
lm
) para esse dados, tendo como variável resposta a riqueza de espécies(Species
) e como preditoras o pH
e Biomass
e as interações possíveis.pH
com Biomass
de 3.2pH
com Biomass
de 11.1pH
com Biomass
de 7.2glm
) e com family = poisson
. p-valor
na comparação de modelos por anova, copie a linha de código que foi utilizada com anova(…)
e cole novamente incluindo anova(…, test=“Chisq”)
glm
.glm
utilize os coeficientes estimados pelo modelo. log
como função de ligação, para retornar a escala da observação devemos utilizar o antilog, no caso, a função exponencial.No menu Graphs, selecione XY conditioningh Plot e selecione as varíáveis, definindo ph como variável de agrupamento, como no gráfico abaixo.
No menu Models>Graphs selecione Predict effect plots… e selecione as variáveis.
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 ph em uma categórica ordenada low>medium>high. Para reordenar utilize o menu Data>Manager variable in active data set> Reorder factor levels. Caso não deseje sobrescrever a variável original, forneça um novo nome para a variável reordenada.
Vamos utilizar um exemplo que está presente no livro de W. Venables e B. Ripley, Modern Applied Statistics with S-PLUS2), sobre o número de dias ausentes da escola de crianças na Austrália.
No Rcommader (Rcmdr) vá ao menu Tools > Load package(s) e selecione o pacote MASS
.
Caso o pacote não apareça listado, significa que ele já está carregado, então pule esse passo.
Em sequida:
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.
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:
install.packages("RcmdrPlugin.KMggplot2")
Em seguida, garanta que o cursor do mouse está na linha de comando e clique no botão Submit. Na janela que ira se abrir selecione o repositório Brasil(SP1).
Para ativar o plugin selecione o menu Tools> Load Rcmdr plug-in(s)… e em seguida selecione o pacote RcmdrPlugin.KMggplot2
.
Para nosso exercício vamos deixar de lado a variável Lrn por que há dados faltantes nela com relação a outras variáveis. Vamos construir o modelo cheio com todas as outras variáveis (Eth, Sex, Age ) e todas as possibilidades de interações entre elas. Começamos então com um modelo linear simples.
Já fizemos a simplificação de um modelo de contagem no exemplo anterior de riqueza de espécies. Nesse exemplo a dispersão dos dados foram bem ajustadas pelo modelo. Caso a razão Residual deviance
e degrees of freedom
seja maior que um
, a poisson não conseguiu lidar com a dispersão dos dados. Nesses casos é possível utilizar o modelo quassipoisson
que estima mais um parâmetro para lidar com a sobre ou sub dispersão dos dados. Os passos para esse ajuste são descritos abaixo.
Sequência de ajuste de modelo de contagem
Residual deviance
e degrees of freedom
quasipoisson
anova
poisson
use o argumento test = “Chisq”
quasipoisson
use o argumento test = “F”
Vamos construir o modelo seguindo essa sequência iniciando com a família de erro POISSON e a função de ligação log.
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 Residual Deviance
pelo seu 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 é:
quasipoisson
O gráfico do modelo pode ser obtido no Rcmdr da mesma forma indicada no modelo anterior, no menu: Models>Graphs selecione Predict effect plots… e selecione as variáveis.
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 função Bernoulli, que é a base para a binomial é definida pelo parâmetro de probabilidade de sucesso em um evento com duas possibilidades de resultado (binário). O parâmetro da função Bernoulli é a a probabilidade de sucesso. No caso de uma moeda justa seria a probabilidade de 0,50 de sair coroa.
A binomial é uma generalização da Bernoulli, definida pelo número de sucessos em certo número (n) de tentativas (evento Bernoulli).
Conceitos Importantes
Probabilidade de sucesso
p=snp=sn
Probabilidade de falha
q=fnq=fn
q=1−pq=1−p
Chance de sucesso
odds=sfodds=sf
odds=p1−podds=p1−p
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.
η=α+∑βxiη=α+∑βxi
A função de ligação é o que relaciona o preditor linear com a esperança do modelo:
η=g−1(E(y))η=g−1(E(y))
A função de ligação g()g() canônica ou padrão para modelos com resposta binária ou proporção é chamada de logit
ou logaritmo da chance
5), definida como:
η=log(p1−p)η=log(p1−p)
log(p1−p)=α+∑βxilog(p1−p)=α+∑βxi
Sendo p1−pp1−p a chance ou odds em inglês.
Para reverter o preditor linear da função logit para a escala de observação usa-se a função inversa:
g−1=logit−1=eη(1+eη)g−1=logit−1=eη(1+eη)
O predito pelo modelo na escala do preditor linear do modelo binário com função de ligação logit está na escala de logaritmo da chance (log(p1−p)log(p1−p)). A razão de chance é uma medida muito popular em outras áreas da ciência, como medicina e mede o quanto uma chance é proporcionalmente diferente de outra, geralmente comparando com um nível controle. Ou seja, qual a proporção de mudança na chance do tratamento em relação a chance do controle. Dado que, em variáveis categóricas os coeficientes do modelo são relacionados às diferenças entre o nível do tratamento e o controle:
exp(log(oddstrat)−log(oddscontrol))=oddstratoddscontrolexp(log(oddstrat)−log(oddscontrol))=oddstratoddscontrol
então, exponenciar os coeficientes do modelo binomial com preditora categórica transforma os coeficientes em razão de chance comparado com o nível basal 6).
No caso de variáveis contínuas a razão de chance é relacionada à chance de x+1
comparada com x
, ou seja, qual a proporção de mudança na chance com o aumento de uma unidade da variável contínua preditora.
Portanto, uma forma de interpretar os coeficientes do modelo é exponenciar e interpretá-los como razão de chance, sendo o intercepto a chance o nível basal (variável categórica) ou a chance quando a variável contínua é zero.
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 está relacionada com o isolamento e tamanho da ilha.
isolation.txt
no Rcmdr (a separação de campo é tabulação)Importante:
family
nesse caso é binomial
O modelo prevê a ocorrência da ave na escala de logaritmo da chance (log odds-ratio). Para os coeficientes estimados pelo modelo o melhor é usar o a função exp
e interpretar a razão de chance
entre categorias ou entre x+1
e x
.
Para interpretar 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 ηη, e precisamos retornar para a escala de observação que é a probabilidade de ocorrência (ˆy^y):
ˆy=eˆη1+eˆη^y=e^η1+e^η
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
quasibinomial
Para interpretar os coeficientes use o mesmo procedimento do exercício anterior, que é aplicar a função exponencial (exp
) nos coeficientes previstos e interpretar como chance
e razão de chance
7).
Para interpretar 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 ηη, e precisamos retornar para a escala de observação que é a probabilidade de florescer (ˆy^y):
ˆy=eˆη1+eˆη^y=e^η1+e^η
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
Mas o Rcmdr não poderia ficar sem essa funcionalidade para interpretar os valores do predito pelo modelo na escala de observação, para isso utilize o menu Models> add observation statistic to data…> e selecione apenas o Fitted values. O Rcmdr adiciona uma coluna nos dados chamada fitted.“nome_do_modelo”
, com os previstos na escala de observação, nesse caso probabilidade.
Gráfico para interpretação dos resultados
Para um gráfico dos resultados use o menu:
Models > Graphs > Predict effect plots…
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:
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 quasi
dão conta apenas de dispersões moderadas e não indicam qual a fonte dela.
Há algumas alternativas ao modelo quasi
para a 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.
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
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:
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 quasi
dão conta apenas de dispersões moderadas e não indicam qual a fonte dela.
Há algumas alternativas ao modelo quasi
para a 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.
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