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:
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 log
para linearizar a relação determinística entre as variáveis. Portanto, a estrutura determinística dos modelos 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 poisson. A distribuição poisson é uma variável aleatória definida por apenas um parâmetro (λ), equivalente à média, 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
A função de ligação é o que relaciona o preditor linear com a esperança do modelo:
η=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 15.5pH
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
.
Atividade
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 a variável resposta Days
e com as variáveis preditoras (Eth
, Sex
, 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 GLM indicando a família de distribuição de resíduos POISSON e a função de ligação log.
Days ~ Eth + Sex + Age + Eth:Sex + Eth:Age + Sex:Age + Eth:Sex:Age
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
quasipoisson
e 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 (ou probabilidade) 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 seu valor difere com a probabilidade de sucessos. Estas características fazem com que os resíduos apresentem uma estrutura que aumenta e depois diminuí com o aumento da probabilidade de sucessos e o máximo de variância é encontrado nos valores intermediários (probabilidade de sucesso = 0.5).
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 probabilidade de sucesso. No caso de uma moeda justa seria a probabilidade de 0,50 de sair coroa 5).
A binomial é uma generalização da Bernoulli, definida pelo número de sucessos em certo número (n
) de tentativas (número de eventos Bernoulli). Um exemplo de um experimento binomial seria a estimativa da probabilidade de germinação (sucessos) de um experimento onde temos 20 sementes (número de tentativas).
Conceitos Importantes
Probabilidade de sucesso
p=sn
Probabilidade de falha
q=fn
q=1−p
Chance de sucesso
odds=sf
odds=p1−p
A estrutura da função de ligação é a mesma para qualquer modelo generalizado, o que muda é o tipo de função:
O preditor linear η está associado à estrutura determinística do modelo e relacionado à linearização da relação.
η=α+∑βxi
A função de ligação é o que relaciona o preditor linear com a esperança do modelo:
η=g(E(y))
A função de ligação g() canônica ou padrão para modelos com resposta binária ou proporção é chamada de logit
ou logaritmo da chance
6), definida como:
η=log(p1−p)
log(p1−p)=α+∑βxi
Sendo p1−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η)
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)). 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))=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 7).
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 binomial é exponenciá-los e interpretá-los como razão de chance, sendo o intercepto a chance do nível basal da 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.
ATIVIDADE
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 é aplicar a função exp
e interpretá-los como 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=e^η1+e^η
ATIVIDADE
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
8).
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=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