Basado en:
Korner-Nievergelt et al. 2015. Análisis de datos Bayesian en ecología, Springer, UK. 316 pp.
¿Por qué necesitamos modelos estadísticos?
Los modelos estadísticos ayudan a entender los sistemas naturales.
Un modelo estadístico es una construcción matemática basada en la teoría de la probabilidad que tiene como objetivo reconstruir el sistema o el proceso en estudio.
Entonces, los datos que obtenemos en campo y/o en laboratorio, son observaciones de este sistema o proceso.
Los modelos expresan lo que sabemos o creemos saber sobre un sistema natural.
Un aspecto importante es que la diferencia entre el modelo y las observaciones muestra que lo que pensamos sobre el sistema puede no ser realista y, por lo tanto, señala en qué podemos pensar más intensamente.
Esta diferencia se mide o expresa a través de los llamadados residuales.
Por cierto
Rara vez se aplica un solo modelo a los datos y se extraen conclusiones de los resultados.
Por el contario, es un proceso iterativo de ajustar varios modelos, comparar el modelo con los datos, obtener información sobre el sistema a partir de discrepancias específicas entre los modelos y los datos, y luego encontrar el modelo más realista.
Es decir, analizar datos usando modelos estadísticos es un proceso de aprendizaje.
Además
Frecuentemen varios modelos pueden ser plausibles y ajustarse a los datos razonablemente bien.
En tales casos, la inferencia puede basarse en el conjunto de todos los modelos, o se selecciona un modelo que funcione mejor para un propósito específico.
Una vez que se tiene uno o varios modelos se hacen inferencias.
Por ejemplo, se extraen las estimaciones de los efectos de las variables predictoras en las variables dependientes junto con una estimación de incertidumbre.
En este sentido, el presente curso trata sobre una amplia clase de modelos estadísticos llamados modelos lineales aplicados a las relaciones de la fauna-hábitat.
Estructura general de un modelo
Los modelos estadísticos tienen una parte sistemática y una parte estocástica.
La parte sistemática describe cómo la variable de resultado (y, variable de interés) se relaciona con las variables predictoras (x, variables explicativas).
Una línea de regresión es la parte sistemática del modelo, y la dispersión de los datos alrededor de la línea de regresión (más precisamente: la distribución de los residuos) es la parte estocástica.
Los modelos lineales (LM por sus siglas en inglés) son probablemente los modelos más utilizados en ecología y en muchas otras áreas de investigación.
Piezas de “Lego”" importantes en este curso
- modelos lineales (LM)
- modelos lineales generalizados (GLM)
- modelos lineales con efectos mixtos simples (LMM) y generalizados (GLMM)
- modelos jerárquicos, secuenciales o de estado (HM, hierarchical models)
Por si no lo sabías
La gran mayoría de las pruebas estadísticas clásicas que uno emplea son: MODELOS LINEALES, por ejemplo:
- t-Student
- regresión/correlación lineal simple/múltiple
- regresión logística
- análisis de covarianza (ANCOVA)
- ANOVA de 1 o 2 vías
- prueba Chi-cuadrada
- análisis de componentes principales
- análisis de correspondencia
- análisis de agrupamientos
- entre muchas…!
Aspecto esencial de los LM
Los modelos lineales se basan en el supuesto o hipótesis de que los datos tiene o provienen de una distribución normal, las varianzas homogéneas, y otros.
# EJEMPLO DISTRIBUCIÓN NORMAL
par(mfrow= c(1,1))
# ejemplo 1
media <- 0.0
sd <- 0.4
x_menor <- media - 3.5*sd
x_mayor <- media + 3.5*sd
dx <- sd/10 # intervalos o ancho de cada barra bajo la curva
# secuencia de valores en el eje-X
x <- seq(from= x_menor, to= x_mayor, by= dx)
# calcula la probabididad de densidad para cada valor de X
y <- (1/(sd*sqrt(2*pi))) * exp(-0.5*((x-media)/sd)^2)
plot(x,y, type="h", col= "black", lwd=1, cex.axis=1.0, xlab="variable x", bty="l", las=1, ylab="Probabilidad de densidad (PDF)" , cex.lab=1.0, main="", cex.main=1.0)
lines(x,y, lwd=3, col="skyblue")
text(media+0.75, 0.9*max(y), bquote(paste(mu," = ",.(media))), adj=c(1,0.5), cex=1.3)
text(media+0.85, 0.8*max(y), bquote(paste(sigma," = ",.(sd))), adj=c(1,0.5), cex=1.3)
¿Qué son los modelos lineales?
En los modelos lineales el efecto de las covariables actuan sobre la variable de respuesta de una manera aditiva.
Es decir, los LM se expresan como simples sumas ponderadas de los valores de las covariables.
La ponderación o peso de las covariables son precisamente los coeficientes de los parámetros de los modelos lineales.
Se pueden representar con la ecuación de la línea como: \[y = a \pm bx\]
donde: y= variable dependiente, x= variable independiente, a= ordenada al origen y b= pendiente.
ejemplo
cantos <- c(10,33,14,25,21,40,52,36,56,42,35,26,16,47,39,47,58,48,35,52)
ranas <- rpois(n = 20, lambda = cantos/3)
ranas2 <- sort(rpois(n = 20, lambda = cantos/3), decreasing = T)
plot(cantos, ranas, type = "n", pch = 16, cex = 1.5, frame.plot = F, col = "lightblue", xlim = c(0,69), ylim = c(0,30), las = 1, xlab="x", ylab = "y")
ajuste <- lm(ranas ~ cantos)
ajus2 <- lm(ranas2 ~ cantos)
abline(ajuste, col= "red", lwd= 4)
abline(ajus2, col= "blue", lwd= 4)
text(60,28,"y = a + bx")
text(60,3,"y = a - bx")
Otras formas de representar los LM
\[y = \alpha + \beta x\]
\[y = \beta_0 + \beta_1 x\]
\[y = \beta_0 + \beta_1 x_1 + \beta_2 x_2...\beta_n x_3\]
\[y = \beta_0 + \beta_1 x_1 + \beta_2^2 x_2...\beta_n^3 x_3\]
LM binomial
N <- 1000
n <- 400
f <- function(N,n,p){log(dbinom(n,N,p))}
ps <- seq(0,1,0.01)
plot(ps, f(N,n,ps), type = "l", ylab = "y", xlab = "x", bty = "l", las = 1, ylim = c(-700,10), lwd = 4, col = "red")
LM polinomial
datos <- read.csv("csv_txt/localidades.cvs", header = T)
attach(datos)
plot(GF, Density, frame.plot = F, las=1, xlab = "x", ylab = "y", type = "n")
mod3 <- lm(Density ~ GF + I(GF^2))
x <- 0:120
y <- predict(mod3, list(GF = x))
lines(x, y, col = "red", lwd = 4) # modelo Polinomial
rm(x,y)
Importante
Un modelo lineal no solo se representa como una línea recta sino que puede tomar diferentes formas…!
Naturaleza de los modelos
\[observación = modelo + error\]
\[dato = promedio + varianza\]
\[y = \mu + \sigma^2\]
Ejemplo: datos
X | x | y |
---|---|---|
1 | 18.89537 | 19.133600 |
2 | 29.97081 | 18.482327 |
3 | 27.69788 | 18.869170 |
4 | 14.76852 | 11.141094 |
5 | 14.54628 | 18.022393 |
6 | 26.95539 | 16.878079 |
7 | 15.65123 | 19.010660 |
8 | 24.35217 | 12.939239 |
9 | 17.92102 | 14.527611 |
10 | 21.49319 | 20.686325 |
11 | 16.48755 | 11.034617 |
12 | 18.78839 | 16.049063 |
13 | 24.97537 | 19.783592 |
14 | 10.93625 | 10.253151 |
15 | 13.95873 | 11.651856 |
16 | 26.23524 | 16.913117 |
17 | 27.13940 | 18.025002 |
18 | 10.31151 | -2.478029 |
19 | 19.94047 | 6.987518 |
20 | 19.86405 | 15.287655 |
gráfico de dispersión
attach(datos_LM)
plot(x, y, pch = 16, col = "skyblue", cex =2, las = 1, cex.lab = 1.2, bty= "l", frame.plot = F)
ajuste de un modelo: cuadrados mínimos (OLs)
plot(x, y, pch = 16, col = "skyblue", cex =2, las = 1, cex.lab = 1.2, bty= "l", frame.plot = F)
abline(lm(y ~ x), lwd = 4, col = "red")
segments(x, fitted(lm(y ~ x)), x, y, lwd = 2, col = "black", lty = 3)
Modelo lineal
(mod<- lm(y ~ x))
##
## Call:
## lm(formula = y ~ x)
##
## Coefficients:
## (Intercept) x
## 2.005 0.688
resultados
Estimate | Std. Error | t value | Pr(>|t|) | |
---|---|---|---|---|
(Intercept) | 2.0049517 | 2.5349385 | 0.7909272 | 0.4328772 |
x | 0.6880415 | 0.1186375 | 5.7995259 | 0.0000005 |