tomado de: Virtual Biology Lab. 2010. Estimating Population Size (Modelo Netlogo).
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.
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á.
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
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))
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"
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