pacckages

if(!require(googlesheets4)){install.packages("googlesheets4")}
if(!require(AICcmodavg)){install.packages("AICcmodavg")}
if(!require(ggplot2)){install.packages("ggplot2")}
#
library(googlesheets4); gs4_deauth()
library(AICcmodavg)
library(ggplot2)

GLM

cor (roe[ , c(7:9)])    ### Chequeando por colinearidad de variables cuantitativas

## Sitio ####
m.sitio <- glm( pres.roe ~ sitio, family= binomial, data=roe)
summary(m.sitio)

#### pres.ROe ~ BUILDING  ####
# piso
m.piso <- glm( pres.roe ~ piso, family= binomial, data=roe)  ### piso
summary(m.piso)
# pared
m.pared <- glm( pres.roe ~ pared, family= binomial, data=roe) ### pared
summary(m.pared)
# techo
m.techo <- glm( pres.roe ~ techo, family= binomial, data=roe) ### techo
summary(m.techo)
# restos de alimento
m.rest.alim <- glm( pres.roe ~ rest.alim, family= binomial, data=roe)   ### rest.alim
summary(m.rest.alim)

m.house <- glm( pres.roe ~ piso + pared + rest.alim + roe$techo, family= binomial, data=roe)
summary(m.house)

### pres.roe ~ DOMESTIC_ANIMAL ####

m.cat <- glm( pres.roe ~ pres.cat, family= binomial, data=roe)    ### gatos
summary(m.cat)

m.dog <- glm( pres.roe ~ pres.dog, family= binomial, data=roe)    ### perros
summary(m.dog)

m.dom.anim <- glm( pres.roe ~ pres.dog * pres.cat, family= binomial, data=roe)
summary(m.dom.anim)

### combinaciones ####
m.pared.cat <- glm( pres.roe ~ pared + pres.cat        , family= binomial, data=roe)
summary(m.pared.cat)
#
m.pared.sitio <- glm( pres.roe ~ pared +            sitio, family= binomial, data=roe)
summary(m.pared.sitio)
#
m.cat.sitio <- glm( pres.roe ~         + pres.cat + sitio, family= binomial, data=roe)
summary(m.cat.sitio)

### MODELO GLOBAL ####
global <- glm( pres.roe ~ pared + pres.cat + sitio, family= binomial, data=roe)
summary(global)

AIC, AICc, Wi

## models

n.= length(roe$pres.roe)
## extracting AICc
extractAIC(global)[2]
k=AICc(global, return.K = TRUE)
AICc.global <- extractAIC(global)[2] + (((2*k)*(k+1))/(n.-k-1))
k1=AICc(global, return.K = TRUE)

extractAIC(m.cat)[2]
k=AICc(m.cat, return.K = TRUE)
AICc.m.cat <- extractAIC(m.cat)[2] + (((2*k)*(k+1))/(n.-k-1))
k2=AICc(m.cat, return.K = TRUE)

extractAIC(m.pared)[2]
k=AICc(m.pared, return.K = TRUE)
AICc.m.pared <- extractAIC(m.pared)[2] + (((2*k)*(k+1))/(n.-k-1))
k3=AICc(m.pared, return.K = TRUE)

extractAIC(m.sitio)[2]
k=AICc(m.sitio, return.K = TRUE)
AICc.m.sitio <- extractAIC(m.sitio)[2] + (((2*k)*(k+1))/(n.-k-1))
k4=AICc(m.sitio, return.K = TRUE)

extractAIC(m.pared.cat)[2]
k=AICc(m.pared.cat, return.K = TRUE)
AICc.m.pared.cat <- extractAIC(m.pared.cat)[2] + (((2*k)*(k+1))/(n.-k-1))
k5=AICc(m.pared.cat, return.K = TRUE)

extractAIC(m.pared.sitio)[2]
k=AICc(m.pared.sitio, return.K = TRUE)
AICc.m.pared.sitio <- extractAIC(m.pared.sitio)[2] + (((2*k)*(k+1))/(n.-k-1))
k6=AICc(m.pared.sitio, return.K = TRUE)

extractAIC(m.cat.sitio)[2]
k=AICc(m.cat.sitio, return.K = TRUE)
AICc.m.cat.sitio <- extractAIC(m.cat.sitio)[2] + (((2*k)*(k+1))/(n.-k-1))
k7=AICc(m.cat.sitio, return.K = TRUE)

########## AIC table #####
aics<- data.frame(paste("m",c("Global", "Gato", "Pared", "Sitio", "pared.gato", "pared.sitio", "gato.sitio"),sep=""),
                  c(AICc.global,AICc.m.cat,AICc.m.pared, AICc.m.sitio, AICc.m.pared.cat, AICc.m.pared.sitio, AICc.m.cat.sitio),
                  c(k1,k2,k3,k4,k5,k6,k7),
                  row.names=NULL) 
colnames(aics) <- c("model","AICc", "k") 
# sort according to AIC
aics<-aics[order(aics$AICc),] 

wi (weights)

for(i in 1:dim(aics)[1]){
  aics$deltaAIC[i]<-aics$AICc[1]-aics$AICc[i]}
wi<-exp(aics$deltaAIC/2)
wi <- wi/sum(wi)
aics$wi <- round(wi/sum(wi), 3)
aics

Delta AICs. Cuánto “pierde” en ajuste (AICc) el modelo completo Gato+Pared+Sitio sacando (ó incluyendo) cada factor?

Deviance Gain Method [ loss of GOF]

###
global$formula; AICc(global)      ###### GATO + PARED 
##########################  Contribution
m.pared.sitio$formula; AICc(m.pared.sitio); AICc(global) - AICc(m.pared.sitio)   ### 'GATO' contribution
m.cat.sitio$formula; AICc(m.cat.sitio); AICc(global)- AICc(m.cat.sitio)          ### 'Pared' contribution
m.pared.cat$formula; AICc(m.pared.cat); AICc(global)- AICc(m.pared.cat)          ### 'Sitio' contribution

#
DeltaAics <- as.data.frame(cbind("Model"= c("global","Gato", "Pared", "Sitio"),
      "Delta.AIC"= c(0,AICc(global) - AICc(m.pared.sitio), AICc(global)- AICc(m.cat.sitio),AICc(global)- AICc(m.pared.cat))))

DeltaAics$Delta.AIC <- as.numeric(DeltaAics$Delta.AIC)
DeltaAics$Delta.AIC <- round(DeltaAics$Delta.AIC,2)
DeltaAics

El incluir pared y Sitio de hecho hace que el modelo empeore (aumenta el AICc)