#####################################
## Q11 — GLM, Seleção de Modelos   ##
## Autora: Victória Souza          ##
#####################################
sp<-read.csv("dadosRiqAb.csv",header=T)

Função: Ler o arquivo csv, “header=T” indica que a primeira linha contém os nomes das colunas, é o cabeçalho da base de dados. Criar o data frame sp.

str(sp)
## 'data.frame':    21 obs. of  4 variables:
##  $ coleta: chr  "C1" "C1" "C1" "C2" ...
##  $ lagoa : chr  "Araruama" "Marica" "Saquarema" "Araruama" ...
##  $ Riq   : int  23 24 37 21 29 30 18 23 35 13 ...
##  $ Ab    : num  5042 38048 38739 9022 17509 ...

Função: Exibir a estrutura de sp (número de linhas e colunas, fatores$, características dos dados (e.g. character (categórico), integer (número inteiro)))

names(sp)
## [1] "coleta" "lagoa"  "Riq"    "Ab"

Função: Listar os nomes das colunas do data frame sp.

attach(sp)

Função: Tornar colunas de sp acessíveis pelo nome, sem a necessidade de especificar fatores (dados$).

amb<-read.csv("dadosAmb.csv",header=T)

Função: Ler o arquivo csv, indicando que a primeira linha contém os nomes das colunas, é o cabeçalho da base de dados. Criar o data frame amb.

str(amb)
## 'data.frame':    21 obs. of  9 variables:
##  $ coleta: chr  "C1" "C1" "C1" "C2" ...
##  $ lagoa : chr  "Araruama" "Marica" "Saquarema" "Araruama" ...
##  $ subst : num  3.37 2.92 2.7 3.52 2.56 ...
##  $ temp  : num  25.9 25.1 24.2 27.7 29.1 ...
##  $ ph    : num  10.23 9.07 9.05 8.13 9.31 ...
##  $ cond  : num  790 355 562 784 410 ...
##  $ sal   : num  55 22.3 37.3 54.3 26.2 ...
##  $ trans : num  100 50.3 70 53.7 53.8 ...
##  $ prof  : num  49.3 75 64.4 100 93.3 ...

Função: Exibir a estrutura de amb (e.g. número de linhas e colunas, características dos dados (e.g. character, numeric))

names(amb)
## [1] "coleta" "lagoa"  "subst"  "temp"   "ph"     "cond"   "sal"    "trans" 
## [9] "prof"

Função: Listar os nomes dos fatores (colunas) de amb.

amb2<-amb[-c(1,2,6)]

Função: Criar o data frame amb2, removendo as colunas 1,2 e 6 de amb (fatores coleta, lagoa e cond)

names(amb2)
## [1] "subst" "temp"  "ph"    "sal"   "trans" "prof"

Função: Verificar os nomes das variáveis restantes em amb2.

library(vegan)
## Carregando pacotes exigidos: permute

Função: Carregar o pacote vegan (padronização, distâncias, ordenação)

amb3<-decostand(amb2,method="standardize")

Função: Estandardizar cada variável de amb2, gerando o data frame amb3. Evita que escalas diferentes dominem o ajuste.

library(car)
## Carregando pacotes exigidos: carData
library(lme4)
## Carregando pacotes exigidos: Matrix

Função: Carregar os pacotes car (e.g. diagnóstico, vif, testes anova tipo II/III) e lme4 (e.g. modelos lineares, generalizados mistos).

m0<-glm(Riq~subst+temp+ph+sal+trans+prof, family=poisson, data=amb3) 

Função: Ajustar um modelo GLM (Modelo Linear Generalizado), utilizando família Poisson (ideal para dados de contagem), para riqueza (Riq) em função dos fatores fixos subst, temp, ph, sal, trans e prof, usando os preditores padronizadoos em amb3.

vif(m0)
##    subst     temp       ph      sal    trans     prof 
## 5.994489 1.241108 2.115595 5.964209 3.926874 1.712438

Função: Calcular os fatores de inflação da variância (vif) para detectar colinearidade entre preditores em m0. (Regras de bolso: vif>5-10 indica colinearidade elevada, e o indicado é remover um dos preditores)

m1<-glm(Riq~temp+ph+sal+trans+prof, family=poisson, data=amb3) 

Função: ajustar um novo modelo GLM a partir do m0, removendo subst, para eliminar colinearidade e deixa-lo mais parcimonioso.

vif(m1)
##     temp       ph      sal    trans     prof 
## 1.201130 1.222988 1.169516 1.642560 1.594999

Função: reavaliar colinearidade no modelo m1.

m2<-glmer(Riq~temp+ph+sal+trans+prof+(1|lagoa), family=poisson, data=amb3)

Função: ajustar um novo modelo, agora GLMM (Modelo Linear Generalizado Misto) a partir de m1. Agora com intercepto aleatório para lagoa, ou seja, considerando-o como um fator aleatório e controlando seu efeito.

anova(m1)
## Analysis of Deviance Table
## 
## Model: poisson, link: log
## 
## Response: Riq
## 
## Terms added sequentially (first to last)
## 
## 
##       Df Deviance Resid. Df Resid. Dev Pr(>Chi)   
## NULL                     20     39.337            
## temp   1   0.0103        19     39.327 0.919160   
## ph     1   1.6086        18     37.719 0.204694   
## sal    1   5.1015        17     32.617 0.023906 * 
## trans  1   7.4160        16     25.201 0.006465 **
## prof   1   7.6154        15     17.586 0.005787 **
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Função: Análise de Deviance Sequencial do GLM m1 para testar a contribuição de cada termo na ordem em que entra no modelo m1, por meio do teste qui-quadrado.

anova(m2)
## Analysis of Variance Table
##       npar Sum Sq Mean Sq F value
## temp     1 1.3238  1.3238  1.3238
## ph       1 0.1668  0.1668  0.1668
## sal      1 0.2733  0.2733  0.2733
## trans    1 0.9913  0.9913  0.9913
## prof     1 8.8920  8.8920  8.8920

Função: Exibir uma tabela de análise do GLMM ajustado, para os efeitos fixos.