Aunque el Diseño Robusto (RD) fue desarrollado originalmente específicamente para el problema de la "estimación robusta" de la abundancia y del reclutamiento en estudios de CMR abiertos, tiene muchas más aplicaciones generales, algunos de los cuales vamos a considerar aquí. Estos giran en torno a situaciones de forma genérica en la que marcaron los animales pueden dejar temporalmente un área de estudio, y por lo tanto no están disponibles para capturar. Comparo esta situación a la que nos encontramos en la semana 10, donde se convierten en "disponibilidad" a través del reclutamiento de animales.
La formulación del modelo "robusto" en MARK / RMark está configurado para manejar estas situaciones. Una vez más, si estamos especialmente interesados en el reclutamiento estos modelos no son apropiados. En su lugar, utilice la formulación Diseño Robusto de los modelos Pradel o POPAN, como se explicó anteriormente.
Los parámetros clave que requieren la comprensión en la RD son las probabilidades de emigración temporal, y hay 2 tipos de éstos:
Gamma "(i) - la probabilidad de que un animal que se encontraba en la población local (es decir, disponible para la captura) se mueve fuera y no está disponible para la captura en i+1 1 (pero está vivo)
Gamma '(i) - la probabilidad de que un animal que no se encontraba en la población local en i (y no está disponible para la captura) se mantiene fuera de la población local (y no disponible) a i +1. Una vez más, está viva.
A menos que se especifique lo contrario, estas dos condiciones "movimiento" son temporales, lo que significa que el son reversibles, por ejemplo, un animal se puede mover con probabilidad Gamma "(i) y permanecerá apagada con probabilidad Gamma '(i +1) o el retorno con probabilidad 1-Gamma '(i +1). Este es el llamado situación de emigración temporal se muestra aquí en el primer panel de la figura adjunta. Tal como se indica, esto puede ser considerado como un tipo de modelo de estado múltiple, donde los estados A y B representan la "disponibilidad" y "no disponibilidad", y Gamma" y Gamma' representan la probabilidad de pasar de a a B, o alojarse en B, respectivamente (segundo panel).
Modelado de la emigración temporal con el diseño robusto puede llegar a ser extremadamente complicado, y requiere de un firme entendimiento de las estructuras de datos, conceptos y modelo de la notación. Si usted está considerando el uso de la RD para este propósito, es absolutamente primero debe tener una firme comprensión del Capítulo relativo a este material en el libro MARK. A partir de ahí, ambos deben leer la literatura actualizada, así como la práctica de muchos ejemplos prácticos. Yo le guiará a través de un ejemplo bastante simple RD-TE (integrado en el paquete RMark) y unos pocos modelos para darle un toque. Aférrate.
El ejemplo se titula simplemente "robusta" y que realmente no tiene ninguna pretensión de ser datos reales. ¿Por qué? ¡Dado que los datos buenos RD es muy difícil de encontrar, por eso, y sabemos que los datos simulados funcionarán!.
Los datos de ejemplo se cargan primero por asegurarse de que tenemos el paquete RMark (utilizar "biblioteca" o "exigir") y luego invocar un comando de datos:
El código d R para acceder a los datos de lejemplo y realizar por encima de análisis.
> #ROBUST example modified from RMark html help
> require(RMark)
> #load data example
>
> data(robust)
The first few lines of the data are
ch freq
1 000000111011101 1
2 000000111111000 1
3 000001000000000 2
4 000001001110100 1
5 000001010000000 1
6 000001100000010 1
7 000001100111100 1
8 000001101111100 1
9 000001110111000 1
10 000010001101111 1
11 000010110111110 1
12 000011000000000 2
que se parece a las historias ordinarias CMR. Vamos a "robustify" esto diciéndole RMark que algunos de nuestros períodos están abiertos (sobre el que cosas como la mortalidad y la emigración puede suceder) pero otros están cerrados (sobre las que estas cosas no pueden suceder, pero la población está cerrada de manera que podemos estimar la abundancia). La interfaz gráfica de usuario MARCA tiene una herramienta para hacer esto para usted, pero es bastante fácil de hacer manualmente en RMark. Hay 15 ocasiones, por lo que necesitamos para definir intervalos de 14:
> #define time intervals (closed if =0)
> time.intervals=c(0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0)
>
Si nos fijamos en esto con cuidado que debe concluir que hay 4 intervalos abiertos (2-3, 4-5, 8-9 y 13-14, con el resto cerrado. Entonces, ¿cuántos estimaciones de supervivencia que debe esperar en un tiempo-modelo específico?
Vamos a construir algunos modelos. Voy a comenzar con un modelo simple que supone 1) que la supervivencia y la emigración temporal son constantes en el tiempo, y 2) que las probabilidades de captura son de tiempo específico, pero lo mismo que la recaptura (de modo "compartido"). Podemos hacer que p es igual a c por deshacerse del 'share' si queremos:
>#build some models
>#basic constant S , gamma, and gamma'
>p.time.session=list(formula=~-1+session:time,share=TRUE)
>model.0=mark(data = robust, model = "Robust",
+ time.intervals=time.intervals, + model.parameters=list(p=p.time.session),threads=2
Un segundo modelo modifica la anterior para permitir 1) S variar por el tiempo y 2) la emigración a variar por el tiempo, pero de acuerdo con el modelo de la emigración al azar. Como se señaló en el capítulo de MARK este modelo básicamente dice que usted es tan probable que deje como para entrar en la población, lo que significa que la gamma 'y gamma'' son "compartidos" por ocasiones de tiempo.
> #
> # Random emigration, p=c varies by time and session, S by time
> #
> S.time=list(formula=~time)
> p.time.session=list(formula=~-1+session:time,share=TRUE)
> GammaDoublePrime.random=list(formula=~time,share=TRUE)
> model.1=mark(data = robust, model = "Robust",
+ time.intervals=time.intervals,
+ model.parameters=list(S=S.time,
+ GammaDoublePrime=GammaDoublePrime.random,p=p.time.session),threads=2)
Pausa: ¿qué es este el argumento ¨threads¨en el comando de mark? Es una opción (por lo que, no es necesario) para decirle MARK cuántos CPUs para usar en el proceso, en este caso 2. El valor predeterminado es -1, que significa 1 CPU permanecerá inactivo.
Un tercer modelo tiene el modelo anterior y hace que S constante
> # Emigración aleatoria, p = c varía según el tiempo y el período de sesiones, la constante
> # Random emigration, p=c varies by time and session, S constant
> #
> S.dot=list(formula=~1)
> p.time.session=list(formula=~-1+session:time,share=TRUE)
> GammaDoublePrime.random=list(formula=~time,share=TRUE)
> model.2=mark(data = robust, model = "Robust",
+ time.intervals=time.intervals,
+ model.parameters=list(S=S.dot,
+ GammaDoublePrime=GammaDoublePrime.random,p=p.time.session),threads=2)
Por último, podemos resumir nuestros modelos con la función
collect.models ()
> results<-collect.models()
model npar AICc DeltaAICc weight Deviance
2 S(~time)Gamma''(~time)Gamma'()p(~-1 + session:time)c()N(~session) 28 -18075.11 0.00000 9.989788e-01 3389.841
3 S(~1)Gamma''(~time)Gamma'()p(~-1 + session:time)c()N(~session) 25 -18061.34 13.77165 1.021127e-03 3409.668
1 S(~1)Gamma''(~1)Gamma'(~1)p(~-1 + session:time)c()N(~session) 23 -18040.13 34.98219 2.530868e-08 3434.912
Esto sugiere que el segundo modelo (más complejo) tiene el mejor soporte de datos. Podemos ver sus parámetros, centrándose en las tasas de supervivencia y la emigración (primeros 8 filas de la salida):
> model.1$results$real[1:8,]
estimate se lcl ucl fixed note
S g1 c1 c1 a0 o1 t1 0.8857025 0.0131150 8.573747e-01 0.9090010
S g1 c1 c1 a1 o1 t2 0.8706091 0.0155836 8.368825e-01 0.8982105
S g1 c1 c1 a2 o1 t3 0.7698855 0.0217813 7.244595e-01 0.8097888
S g1 c1 c1 a3 o1 t4 0.8033136 6.3631895 2.137610e-34 1.0000000
Gamma'' g1 c1 c1 a0 o1 t1 0.0884428 0.0255535 4.954600e-02 0.1529618
Gamma'' g1 c1 c1 a1 o1 t2 0.1198046 0.0154473 9.267550e-02 0.1535315
Gamma'' g1 c1 c1 a2 o1 t3 0.1509028 0.0215888 1.132688e-01 0.1982454
Gamma'' g1 c1 c1 a3 o1 t4 0.1673500 6.5954991 1.030193e-41 1.0000000
************************************************** ***
Hay un gran número de direcciones que podemos ir desde aquí. Por ejemplo, estoy totalmente dejado fuera los modelos de mezclas finitas que permiten modelizar la heterogeneidad individual en las probabilidades de captura. Estos pueden ser construidos de una manera que es directamente análoga a lo que hicimos en la CMR cerrado.
El código d R para acceder a datos de ejemplo y realizar por encima de análisis.
Siguiente: Ejercicios