Está en la página 1de 48

SEMANA 3

14/06/2021 – 18/06/2021

FCV - ING. EN ECOSISTEMAS – MCE5 S3.1_GLM - GAM 31/05/2021 1


CONTENIDO

• ANCOVA: Análisis de CoVarianza


• GLM: Modelos Lineales Generalizados
• GAM: Modelos Aditivos Generalizados

FCV - ING. EN ECOSISTEMAS – MCE5 S3.1_GLM - GAM 31/05/2021 2


MODELOS

FCV - ING. EN ECOSISTEMAS – MCE5 S3.1_GLM - GAM 31/05/2021 3


ANCOVA

FCV - ING. EN ECOSISTEMAS – MCE5 S3.1_GLM - GAM 31/05/2021 4


ANCOVA

● Es una combinación de elementos de regresiones y análisis de varianzas.


● La variable respuesta (dependiente) es contínua
● Las variables independientes (explicativas) pueden ser categóricas y
continuas.

FCV - ING. EN ECOSISTEMAS – MCE5 S3.1_GLM - GAM 31/05/2021 5


ANCOVA

Modelo ejemplo:

Peso ~ sexo + edad

FCV - ING. EN ECOSISTEMAS – MCE5 S3.1_GLM - GAM 31/05/2021 6


REPASO: ANCOVA

● Es un tipo de ANOVA pero con variables independientes categóricas y


cuantitativas.

El comando para hacer ANCOVA es lo mismo que para ANOVA, aov()

Vamos generar un vector de Número de Estomas y clima

set.seed(1)
NumEstomas <- sample(c(50:150),size=100, replace = T)

clima <- rep(c(“CS”, “CH”), 100)

Adicionar ese vector al data.frame de hojas utilizando cbind()

FCV - ING. EN ECOSISTEMAS – MCE5 S3.1_GLM - GAM 31/05/2021 7


REPASO: ANCOVA

Ancova <- aov(longitud ~ clima + NumEstomas,data=)

● Instalar el paquete “car”

install.packages (“car”)

● Utilice la función Anova()para ver los resultados

FCV - ING. EN ECOSISTEMAS – MCE5 S3.1_GLM - GAM 31/05/2021 8


TAREA: ANCOVA

Replique el análisis adicionando la medida del ancho de las hojas:

ancov_medidas <- aov(longitud ~ ancho + clima,data=)

Analice los resultados

FCV - ING. EN ECOSISTEMAS – MCE5 S3.1_GLM - GAM 31/05/2021 9


MODELOS LINEALES GENERALIZADOS
GLM
Cuando nuestra variable dependiente no tiene distribución normal

FCV - ING. EN ECOSISTEMAS – MCE5 S3.1_GLM - GAM 31/05/2021 10


FORMAS QUE PUEDEN TENER LA VARIANCIA DE LOS DATOS

Variancia en regresiones
lineales

FCV - ING. EN ECOSISTEMAS – MCE5 S3.1_GLM - GAM 31/05/2021 11


FORMAS QUE PUEDEN TENER LA VARIANCIA DE LOS DATOS

En algunos casos las premisas de la regresión de los mínimos cuadrados son


seriamente incumplidas, por ejemplo cuando la variable dependiente es medida
en una escala binaria:
• Ceros y unos.
• Presencia/ausencias
• Vivo/muerto
• Efecto/sin-efecto

En ese caso necesitamos de modelos que nos permitan linealizar esa relación

FCV - ING. EN ECOSISTEMAS – MCE5 S3.1_GLM - GAM 31/05/2021 12


GLMs TIENE TRES PROPRIEDADES IMPORTANTES

MODELO LINEAL
GENERALIZED LINEAR MODEL • Errores tiene una distribución
1. La estructura del error del modelo normal
2. El estimador lineal • El estimador lineal es el método
3. La función de enlace de los mínimos cuadrados
• No hay función de enlace

FCV - ING. EN ECOSISTEMAS – MCE5 S3.1_GLM - GAM 31/05/2021 13


ELEGIR LA DISTRIBUCIÓN

Se tiene distribuciones: Pero cuál distribución elegir? Depende de cómo es la Y.


● Exponeciales,
• BINOMIAL: Si estamos modelando: presencia-
● Binomiales,
ausencia, ceros-unos.
● Gaussianas,
● Normales, • POISSON: Si estamos haciendo conteos de animales
● Bernoulli o plantas, en que nunca vamos tener un límite
● etc…. superior, pero el límite inferior es cierto

• GAMMA: Si los datos son continuos, positivos y


mayores que cero (también se usa Normal).

FCV - ING. EN ECOSISTEMAS – MCE5 S3.1_GLM - GAM 31/05/2021 14


ELEGIR LA DISTRIBUCIÓN

FCV - ING. EN ECOSISTEMAS – MCE5 S3.1_GLM - GAM 31/05/2021 15


FUNCIÓN DE ENLACE

El predictor lineal surge del modelo lineal como la


suma de los términos para cada uno de los
parámetros. El valor del predictor lineal se obtiene
mediante la función de enlace, y el valor predicho de
y se obtiene aplicando la función de enlace inverso.

FCV - ING. EN ECOSISTEMAS – MCE5 S3.1_GLM - GAM 31/05/2021 16


LA FUNCIÓN DE ENLACE o “LINK FUNCTION”

Es lo que nos permite linealizar la relación entre la variable Y y Xs

FCV - ING. EN ECOSISTEMAS – MCE5 S3.1_GLM - GAM 31/05/2021 17


LOGÍSTICO ES DOMINANTE

Es lo que nos permite linealizar la relación entre la variable Y y Xs

FCV - ING. EN ECOSISTEMAS – MCE5 S3.1_GLM - GAM 31/05/2021 18


MAXIMA VEROSIMILITUD

En regresiones lineales nosotros utilizamos el método de los mínimos cuadrados


para estimar los valores.

En GLM nosotro utilizamos la Máxima Verosimilitud (Maximum Likelihood)

https://www.youtube.com/watch?v=XepXtl9YKwc

FCV - ING. EN ECOSISTEMAS – MCE5 S3.1_GLM - GAM 31/05/2021 19


MAXIMA VEROSIMILITUD ( )

FCV - ING. EN ECOSISTEMAS – MCE5 S3.1_GLM - GAM 31/05/2021 20


MAXIMA VEROSIMILITUD

FCV - ING. EN ECOSISTEMAS – MCE5 S3.1_GLM - GAM 31/05/2021 21


GLM EN R

glm(Y ∼ X, family = poisson (link=), data = data)

Aqui va la función de enlace,


Aqui va la
pero R ya te lo hace por
distribución!
default

FCV - ING. EN ECOSISTEMAS – MCE5 S3.1_GLM - GAM 31/05/2021 22


DATOS DE PRESENCIA/AUSENCIA

Logistic regression!

● La estructura del error del modelo: Binomial


● La función de enlace: logit

FCV - ING. EN ECOSISTEMAS – MCE5 S3.1_GLM - GAM 31/05/2021 23


REPASO: GLM PRESENCIA/AUSENCIA

Ecosistemas: Datos de presencia / ausencia de Tuberculosis (Tb) en jabalíes, y


medidas de relación cabeza-tronco de cada individuo.

Vamos mirar a los datos:


jaba <- read.table(“s3_boar.txt", header =T)
head(jaba)
str(jaba)
par(mfrow=c(1,2))
boxplot(jaba$LengthCT ~jaba$Tb, ylab="CT", xlab="TB")
plot( jaba$LengthCT, jaba$Tb,ylab="TB", xlab="CT" )
reg <- lm(jaba$Tb~jaba$LengthCT)
abline(reg)#hace sentido esa línea???

FCV - ING. EN ECOSISTEMAS – MCE5 S3.1_GLM - GAM 31/05/2021 24


REPASO: GLM PRESENCIA/AUSENCIA

FCV - ING. EN ECOSISTEMAS – MCE5 S3.1_GLM - GAM 31/05/2021 25


REPASO: GLM PRESENCIA/AUSENCIA

#Aplicar el glm
Library(glmmTMB)
B1 <- glm(Tb ∼ LengthCT, family = binomial (link = “logit”),data =
jaba)
summary(B1)

#hacer el grafico de las prediciones


MyData <- data.frame(LengthCT = seq(from = 46.5,to = 165, by = 1))
Pred <- predict(B1, newdata = MyData, type = "response")
plot(x = jaba$LengthCT, y = jaba$Tb)
lines(MyData$LengthCT, Pred)

# Alternativa
library(visreg)
visreg(B1,scale="response")

FCV - ING. EN ECOSISTEMAS – MCE5 S3.1_GLM - GAM 31/05/2021 26


REPASO: GLM PRESENCIA/AUSENCIA

# como acceder a las predicciones del modelo?


install.packages(“boot”)
library(boot)

predict (B1) #miren el rango de valores


range(predict(B1))

#ahora apliquen la función inv.logit


inv.logit(predict(B1))
# Alternativa
library(visreg)
visreg(B1,scale="response")

FCV - ING. EN ECOSISTEMAS – MCE5 S3.1_GLM - GAM 31/05/2021 27


EVALUANDO LOS MODELOS LOGÍSTICOS (GLM - BINOMIAL)

¿Cómo evaluar si los modelos GLM son buenos?


Mirar la varianza (deviance):
● Null deviance tiene que ser un valor grande (si es así, significa que es mejor
tener la variable x en el modelo do que un modelo nulo sin esta variable)
● Residual deviance tiene que ser un valor pequeño (indica que el modelo está
bien ajustado a los datos)
● Ideal es que la varianza residual sea un valor parecido a los grados de libertad.

FCV - ING. EN ECOSISTEMAS – MCE5 S3.1_GLM - GAM 31/05/2021 28


EVALUANDO LOS MODELOS LOGÍSTICOS (GLM - BINOMIAL)

𝑫𝒆𝒗𝒊𝒂𝒏𝒄𝒆 𝒓𝒆𝒔𝒊𝒅𝒖𝒂𝒍
𝑷𝒔𝒆𝒖𝒅𝒐 𝑹𝟐 = 𝟏 =
𝑫𝒆𝒗𝒊𝒂𝒏𝒄𝒆 𝒏𝒖𝒍𝒂

FCV - ING. EN ECOSISTEMAS – MCE5 S3.1_GLM - GAM 31/05/2021 29


EVALUANDO LOS MODELOS LOGÍSTICOS (GLM - BINOMIAL)

● Prueba de razón de probabilidad (likelihood ratio test): No es que un


modelo con menos parámetros es mejor que un modelo con más
parámetros. En esta prueba si puede aplicar una anova para comparar
dos modelos y verificar los valores de p.
● Pseudo R2: No existen R2 para GLMs, pero hay un pseudo R2 conocido
como McFadden´s R2, que varia de 0 a 1
● Prueba de Wald: Evalúa la contribución de cada variable independiente al
modelo
● Prueba t de importancia de variables: Otra manera de saber cuales son las
variables más relevantes a los modelos

FCV - ING. EN ECOSISTEMAS – MCE5 S3.1_GLM - GAM 31/05/2021 30


REPASO GLM
#Instalar los paquetes: pscl, survey, caret
#Aplicar las pruebas a los datos de “s3_boar.txt”
## likelihood ratio test: &UHDUPRGHORV
anova (modelo1, modelo2) PRGHO
PRGHO
PRGHO
##Pseudo R2 OLEUDU\ $,&FPRGDYJ (VWLPDGRUGH$,&
library(pscl)
(QOLVWDUPRGHORV
pR2(modelo) # vea McFadden PRGHOVOLVW PRGHOPRGHOPRGHO 

QRPEUDUDORVPRGHORV
##Wald test PRGQDPHVF
GLVSKSZWTVHF

GLVSTVHF

GLVSZW

library(survey) &DOFXODU$,&GHORVPRGHORV\YLVXDOL]DU
regTermTest(modelo, “variable”) DLFWDE FDQGVHW PRGHOVPRGQDPHV PRGQDPHV

%DVDUVHHQHOFULWHULRGH$,&F
##Variable importance
varImp(modelo)
FCV - ING. EN ECOSISTEMAS – MCE5 S3.1_GLM - GAM 31/05/2021 31
TAREA: GLM PARÁSITOS MARINOS

De Zuur et al. 2009


El cangrejo real rojo Paralithodes camtschaticus se introdujo en el Mar de Barents en los años 1960 y 1970
desde su área nativa en el Pacífico Norte. La sanguijuela Johanssonia arctica usa el caparazón de este
cangrejo para depositar los huevos. La sanguijuela es un vector para un parásito sanguíneo tripanosómico
de peces marinos, incluido el bacalao. Hemmingsen y col. (2005) examinaron una gran cantidad de bacalao
para detectar infecciones por tripanosoma durante cruceros anuales a lo largo de la costa de Finnmark en
el norte de Noruega. Estos cruceros cubrieron tres años y se dividieron en cuatro "estaciones" o áreas.
Aquí, usamos un subconjunto de sus datos para aplicar un GLM. La variable de respuesta es Prevalencia,
que se codifica como 1 si el parásito está presente y 0 más.
Data: “s3_parasite_cod.txt”

Johanssonia arctica The red king crab Cod fish


Paralithodes camtschaticus
FCV - ING. EN ECOSISTEMAS – MCE5 S3.1_GLM - GAM 31/05/2021 32
TAREA: GLM PARÁSITOS MARINOS

Construya un modelo GLM utilizando como variables “Weigh” + “Length”. Y evalue este
modelo (s3_parasiteCod.txt).

Identificar cuál la familia (normal, binomial, gamma, poisson, etc.) en base a los datos
recolectados y poner las variables al modelo, remplazando los XX.

ParasiteCod <- read.table(“s3_parasiteCod.txt", header = T)

Par1 <- glm(XX~XX, family = XX, data=ParasiteCod,)

#Evalue los gráficos con “visreg” y con las funciones


“predict”, “plot” y “lines”

FCV - ING. EN ECOSISTEMAS – MCE5 S3.1_GLM - GAM 31/05/2021 33


GENERALIZED ADDITIVE MODELLING

GAM

FCV - ING. EN ECOSISTEMAS – MCE5 S3.1_GLM - GAM 31/05/2021 34


LINEARIZACIÓN

● Vimos que GLMs son opciones para modelar relaciones que no son lineales
● GLMs son una buena opción cuando la variable Y no son continuas, pero sí
son conteos, binarias etc
● Además, GLMs también pueden ser usados cuando la estructura del error del
modelo no es normal.
● Si, después de intentar las técnicas (transformaciones, adición de más
variables) vistas en las clases anteriores, aún encontramos patrones el los
resíduos de los modelos, una alternativa es usar modelos con suavizadores o
con splines, también llamados de modelos GAM.

FCV - ING. EN ECOSISTEMAS – MCE5 S3.1_GLM - GAM 31/05/2021 35


GAM: GENERALIZED ADDITIVE MODEL

A - Datos de bioluminiscencia en un sitio en el


Atlántico y la relación a la profundidad

B - Ajuste de un GAM

C - Ajuste de un GAM y también los datos originales

FCV - ING. EN ECOSISTEMAS – MCE5 S3.1_GLM - GAM 31/05/2021 36


GAM: GENERALIZED ADDITIVE MODEL

Hay dos paquetes en R que pueden ser usados para correr GAMs:
mgcv y gam. (y ggplot2)

● Instalen ambos paquetes en el Rstudio.


● Vamos mirar un ejemplo:

FCV - ING. EN ECOSISTEMAS – MCE5 S3.1_GLM - GAM 31/05/2021 37


REPASO: GENERALIZED ADDITIVE MODEL

library("gam") # leer el paquete

ISIT <- read.table(“s3_ISIT.txt", header=T) #importar el conjunto de datos

par(mfrow = c(2, 2), mar = c(5, 4, 1, 2)) # para hacer graficos en la misma
ventana

#selecionar los datos de la estacion 16 del conjunto de datos ISIT


Sources16 <- ISIT$Sources[ISIT$Station == 16]
Depth16 <- ISIT$SampleDepth[ISIT$Station == 16]
plot(Depth16, Sources16, type = "p")

#GAM y plot
M1 <- gam(Sources16 ∼ lo(Depth16, span = 0.5))
#pueden cambiar el valor del argumento span para 0.1 y mirar las diferencias
plot(M1, se = TRUE)

FCV - ING. EN ECOSISTEMAS – MCE5 S3.1_GLM - GAM 31/05/2021 38


SUAVIZADORES

El “f” reemplaza el bX de las regresiones lineales. Ahora, al invés de el bX vamos a


tener un suavizador. En el caso arriba utilizamos un estimador cuyo código es “lo”.
Eso significa que el suavizador se llama LOESS.

FCV - ING. EN ECOSISTEMAS – MCE5 S3.1_GLM - GAM 31/05/2021 39


LOESS (locally weighted smoothing)

El LOESS divide los datos en


partes y ejecuta regresiones
lineales (puede hacer otros
tipos de regresiones también,
algunas que no vimos en ese
curso).

La función “span” determina el


tamaño de la ventana en que
se aplicará la regresión. Vea lo
que pasa al cambiar los valores
de span

FCV - ING. EN ECOSISTEMAS – MCE5 S3.1_GLM - GAM 31/05/2021 40


LOESS SPAN

par(mfrow=c(3,1))

#GAMs con diferentes Span

M1 <- gam(Sources16 ∼ lo(Depth16, span = 0.1))


plot(M1, se = TRUE)

M2 <- gam(Sources16 ∼ lo(Depth16, span = 0.3))


plot(M2, se = TRUE)

M3 <- gam(Sources16 ∼ lo(Depth16, span = 0.5))


plot(M3, se = TRUE)

FCV - ING. EN ECOSISTEMAS – MCE5 S3.1_GLM - GAM 31/05/2021 41


LOESS SPAN

FCV - ING. EN ECOSISTEMAS – MCE5 S3.1_GLM - GAM 31/05/2021 42


CUBIC SPLINES

library(mgcv) #cargar el paquete mgcv

plot(Depth16, Sources16, type = "p")

#GAM con splines:

SP <- gam(Sources16 ∼ s(Depth16))


plot(SP, se = TRUE)

FCV - ING. EN ECOSISTEMAS – MCE5 S3.1_GLM - GAM 31/05/2021 43


REPASO GAM: DATOS DE BIOLUMINISCENCIA Y PROFUNDIDAD

#Vamos seleccionar los datos de las estaciones 8 y 13

S8 <- ISIT$Sources[ISIT$Station == 8]
D8 <- ISIT$SampleDepth[ISIT$Station == 8]
S13 <- ISIT$Sources[ISIT$Station == 13]
D13 <- ISIT$SampleDepth[ISIT$Station == 13]
So <- c(S8, S13)
De <- c(D8, D13)

FCV - ING. EN ECOSISTEMAS – MCE5 S3.1_GLM - GAM 31/05/2021 44


REPASO GAM: DATOS DE BIOLUMINISCENCIA Y PROFUNDIDAD

#los comandos para ver los gráficos son:

ID <- rep(c(8, 13), c(length(S8), length(S13)))


mi <- max(min(D8), min(D13))
ma <- min(max(D8), max(D13))
I1 <- De > mi & De < ma
par(mfrow = c(1, 2))
plot(D8[I1], S8[I1], pch = 16, xlab = "Depth",
ylab = "Sources", col = 1, main = "Station 8",
xlim = c(500, 3000), ylim = c(0, 40))
plot(D13[I1], S13[I1], pch = 16, xlab = "Depth",
ylab = "Sources", col = 1, main = "Station 13",
xlim = c(500, 3000), ylim = c(0, 40))
FCV - ING. EN ECOSISTEMAS – MCE5 S3.1_GLM - GAM 31/05/2021 45
REPASO GAM: DATOS DE BIOLUMINISCENCIA Y PROFUNDIDAD

#Ejecute un GAM. La variable “Depth” ahora esta modelada con


el método cubic splines. La variable ID es un factor e
importante en nuestro modelo. El modelo tiene el seguinte
forma:

M4 <- gam(So ∼ s(De) + factor(ID), subset = I1)

M4 <- gam(So ∼ s(De))

summary(M4)

plot(M4)

FCV - ING. EN ECOSISTEMAS – MCE5 S3.1_GLM - GAM 31/05/2021 46


GAM MÚLTIPLE

#Vamos a ver un ejemplo con datos de vegetación.

Vegetation <- read.table(“s3_vegetation.txt", header = T)


M7 <- gam(Richness ∼ s(ROCK, bs = "cs") +
s(LITTER, bs = "cs") + s(BARESOIL, bs = "cs") +
s(FallPrec, bs = "cs") + s(SprTmax, bs = "cs"),
data = Vegetation)
summary(M7)
anova(M7)
plot(M7)

FCV - ING. EN ECOSISTEMAS – MCE5 S3.1_GLM - GAM 31/05/2021 47


TAREA GAM

Utilice la base de datos de humedales de Norte América para analizar la relación existente
entre las concentraciones de fósforo (total phosphorusTP) de los efluentes TPOut con otras
variables efectoras como el hydraulic loading rate HRL, input TP concentration TPIn, y input
TP mass loading rate PLI de los humedales.

Data: s3_nawdb.csv

FCV - ING. EN ECOSISTEMAS – MCE5 S3.1_GLM - GAM 31/05/2021 48

También podría gustarte