Estimación del Tamaño (Abundancia) Poblacional

tomado de: Virtual Biology Lab. 2010. Estimating Population Size (Modelo Netlogo).

Descripción del Sistema

Este modelo simula un estanque lleno de renacuajos que nadan al azar, independientemente unos de otros. En este experimento virtual, muestreará la población sumergiendo una red en el estanque y vaciándola en un balde. El programa informa la cantidad de renacuajos en el cubo. En ese punto, puede devolverlos al estanque, marcarlos o conservarlos en una piscina de retención. Se conoce el volumen del estanque y de la red, por lo que se proporcionan todos los datos necesarios para los tres métodos de estimación. Tenga en cuenta que el muestreo se realiza capturando todos los renacuajos dentro de un radio alrededor de un punto en el centro del estanque. Debe dejar suficiente tiempo entre las muestras para que los renacuajos se muevan lo suficiente como para garantizar la independencia de las muestras. Al trabajar con este modelo, será útil tener una hoja de cálculo abierta en la que registrar los datos directamente.

Procedimiento para el método de extracción

Para este ejercicio van a comparar el estimado poblacional para un estanque grande y uno pequeño, con el mismo número de renacuajos (Large = 250) y usando una red mediana.
Una vez establecidos los Settings, pondrán a correr la simulación y tomarán 12 muestras (los detalles de cómo proceder se los estaré indicando en el laboratorio). Los datos a tomar son: Total Caught, antes de tomar una muestra y Current Sample, después de tomar la muestra.
Colocar los datos en el archivo que se indicará.

Análisis de los datos

Una vez que tenga los datos en su hoja de cálculo, descárguela como .csv (descargará solo su hoja).

extra <- read.csv("extraccion-netlogo.csv")
extra
##    sample_small total_small sample_large total_large
## 1            41           0           15           0
## 2            33          41           21          15
## 3            21          74           17          36
## 4            21          95           13          53
## 5            14         116           12          66
## 6            18         130           12          78
## 7            23         148           14          90
## 8             9         171            9         104
## 9            11         180           11         113
## 10           10         191           11         124
## 11            4         201            8         135
## 12           11         205            9         143

Regresión lineal

Ajustamos los datos a un modelo de regresión lineal, con el total capturado en el eje X y la captura en el eje Y.

# small pond
reg_small <- lm(sample_small ~ total_small, data = extra)
summary(reg_small)
## 
## Call:
## lm(formula = sample_small ~ total_small, data = extra)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -5.9830 -2.9379  0.3172  2.3385  7.7761 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 37.23466    2.81615  13.222 1.17e-07 ***
## total_small -0.14872    0.01955  -7.607 1.83e-05 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 4.295 on 10 degrees of freedom
## Multiple R-squared:  0.8527, Adjusted R-squared:  0.8379 
## F-statistic: 57.87 on 1 and 10 DF,  p-value: 1.825e-05
# gráfica
plot(extra$total_small, extra$sample_small, 
     xlim = c(0,300), ylim = c(0,max(extra$sample_small)),
     abline(reg_small))

# large pond
reg_large <- lm(sample_large ~ total_large, data = extra)
summary(reg_large)
## 
## Call:
## lm(formula = sample_large ~ total_large, data = extra)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.9692 -1.4792 -0.1221  1.3127  4.0281 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 17.96921    1.23093  14.598 4.54e-08 ***
## total_large -0.06649    0.01345  -4.943 0.000584 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2.092 on 10 degrees of freedom
## Multiple R-squared:  0.7096, Adjusted R-squared:  0.6806 
## F-statistic: 24.44 on 1 and 10 DF,  p-value: 0.0005842
# gráfica
plot(extra$total_large, extra$sample_large, 
     xlim = c(0,300), ylim = c(0,max(extra$sample_large)),
     abline(reg_large))

Estimado de abundancia

El estimador de abundancia (tamaño) de la población es el intercepto en el eje X.

# valor del intercepto X para Y = 0
# small pond
ms <- reg_small[["coefficients"]][["total_small"]]
bs <- reg_small[["coefficients"]][["(Intercept)"]]
abund_small <- -bs/ms
sprintf("Abundancia small pond = %.1f renacuajos", abund_small)
## [1] "Abundancia small pond = 250.4 renacuajos"
# large pond
ml <- reg_large[["coefficients"]][["total_large"]]
bl <- reg_large[["coefficients"]][["(Intercept)"]]
abund_large <- -bl/ml
sprintf("Abundancia large pond = %.1f renacuajos", abund_large)
## [1] "Abundancia large pond = 270.3 renacuajos"

Prueba de hipótesis

Queremos probar la hipótesis de que no hay diferencia entre el valor estimado de abundancia y la abundancia real (250 renacuajos). Para esto usamos los resultados de cinco grupos (o repeticiones) que utilizaron los mismos parámetros del simulador.

# small pond
estima_small <- c(115,243,86,51) # eliminado valor negativo
t.test(estima_small, mu = 250, alternative = "less")
## 
##  One Sample t-test
## 
## data:  estima_small
## t = -3.0169, df = 3, p-value = 0.02845
## alternative hypothesis: true mean is less than 250
## 95 percent confidence interval:
##      -Inf 222.2328
## sample estimates:
## mean of x 
##    123.75
# large pond
estima_large <- c(261,267,263,299,278)
t.test(estima_large, mu = 250, alternative = "greater")
## 
##  One Sample t-test
## 
## data:  estima_large
## t = 3.3728, df = 4, p-value = 0.01399
## alternative hypothesis: true mean is greater than 250
## 95 percent confidence interval:
##  258.6832      Inf
## sample estimates:
## mean of x 
##     273.6