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.


Por cierto


Además

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


Piezas de “Lego”" importantes en este curso


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:


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?

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

Práctica de regresión lineal simple

abrir `RStudio