Frecuentemente, los estudios de CMR incluyen información sobre atributos de los animales capturados, o del medio ambiente, esfuerzo de captura, u otros condiciones que varían sobre tiempo.
Los atributos de los animales
-pueden consistir de clases u otro grupos o estratos, como sexo, edad, área, etc. En estos casos los datos pueden agrupar en los estratos o grupos antes del análisis
o pueden consistir de medidas continuas , como el peso de animales individuos. En estos casos necesitamos analizar los datos al nivel de los animales individuales
Se pueden clasificar todos los parámetros (N, p, c) por estratos si está apropiado. Solo hay un parámetros (por grupo) para abundancia N, por eso solamente es apropiado modelar p y c con covariables individuous, para explicar variación potencial en estos parámetros.
Se pueden medir las condiciones que varían entre las ocasiones y incluirlos en el análisis para explicar variación en parametros que varían entre tiempo. En el caso de CMR para poblaciones cerrados, solo se permiten variar por tiempos las probabilidades
A veces un atributo se puede variar tanto entre individuos como por tiempo. En estos casos se necesita considera la covariable tanto individual como temporal.
Efectos de grupos
Se incorporan los efectos de grupos para especificar PIMS separadas para cada tipo de parámetro y grupo. Primero, se necesita definir los grupos en la estructura de los datos. Se implementan grupos un poco diferente depende de MARK o RMark. Vamos a ilustrar con un ejemplo de RMark. Los datos están en un objeto aquí. Cargar los datos y ver su estructura
>require(RMark)
> setwd(data_dir)
> load("capt.hist")
> #first few lines
> head(capt.hist)
ch area
1 01110 1
2 10010 1
4 00011 1
5 10100 1
6 00110 1
7 00011 1
> tail(capt.hist)
ch area
451 01000 2
46 01001 2
471 10100 2
481 11101 2
491 01110 2
501 10100 2
Para incluir los grupos en el análisis se necesita definirlos en la estructura de los datos. En MARK se especifican cuando se cargan los datos en el GUI. En RMark se pueden especifcarlos en cada definición del modelo, pero es más fácil especifar una vez en un comando de procesar los datos
> capt.processed<-process.data(capt.hist, model="Closed",groups=c("area"))
Note que el nombre necesita ser exactemente lo mismo del nombre en los datos, en este caso "area".
En general, se puede tener una lista de grupos múltiple, p. ej groups=c("area","sexo")
Ahora podemos especificar varios modelos que incluyen o no incluyen los efectos de los grupos. En este ejemplo se anticipa que hay diferenctes grandes en abundancia entre áreas, por eso vamos a limitar los modelos solo a modelos con variación en N por de área
> Ng=list(formula=~area)
Deseamos creer modelos sin y con el efecto de área en p y c . He creado las siguientes definiciones
> pdotshared=list(formula=~1,share=TRUE) # ninguna variación con respecto de grupo
> pg=list(formula=~area,share=TRUE) # variación con respecto de grupo en p , p = c
> p.c.g.add=list(formula=~area+c,share=TRUE) # variación con respecto de grupo additiva al efecto de comportamiente
> p.g=list(formula=~area) # variación con respecto de grupo separademente por p y c
> c.g=list(formula=~area)
Se implementan los modelos diferentes, los colectan, y computa un estimado de promedio ponderado en el código de R.
Covariables temporales
Se incorporan los efectos de covariables temporales para incluir los valores de las covariables en las matrices del diseño. La aproximación es un poco diferente entre MARK y RMark. En MARK se usa el GUI y se entran los valores directamente en la matriz del diseño. En RMark usamos comandos de data en R para conjuntar los valores de las covariables con los datos del diseño (ddl).
Lo ilustramos con un ejemplo de solo una covariable. Las historias de captura y los valores de la covariable están en un objeto aquí. Se cargan los datos y los separan a historias y covariables con los comandos
> load("capt.time.cov")
> capt.hist<-capt.time.cov$capt.hist
> cov<-capt.time.cov$cov
> cov<-capt.time.cov$cov
> head(capt.hist)
ch
1 0000010000
2 0010000000
3 0001010000
4 0001000000
5 0001000010
7 0000001000
> cov
[1] 0.3673677 0.2297510 0.3151607 0.5212081 0.8556278 0.5454583 0.5369133
[8] 0.1483954 0.3653838 0.5546882
Se crean los datos procesados y un ddl por
> cap.processed=process.data(capt.hist,model="Closed")
> cap.ddl=make.design.data(cap.processed)
Después, se convierten los datos a una trama de datos, y se conjuntan la covariable con el ddl, especifando una conexión entre la covariable y p y c in cada período de tiempo.
> #convert covariate to a data frame
> cov<-data.frame(time=1:10,cov=cov)
> cap.ddl$p=merge_design.covariates(cap.ddl$p,cov)
> cap.ddl$c=merge_design.covariates(cap.ddl$c,cov)
Confirmar que los datos se han conjuntado correctamente. Note que se usan todos los valores de la covariable para p, pero solo los últimos 9 para c, porque no hay recaptura durante el período 1.
> cap.ddl$p
time par.index model.index group Time c cov
1 1 1 1 1 0 0 0.3673677
2 2 2 2 1 1 0 0.2297510
3 3 3 3 1 2 0 0.3151607
4 4 4 4 1 3 0 0.5212081
5 5 5 5 1 4 0 0.8556278
6 6 6 6 1 5 0 0.5454583
7 7 7 7 1 6 0 0.5369133
8 8 8 8 1 7 0 0.1483954
9 9 9 9 1 8 0 0.3653838
10 10 10 10 1 9 0 0.5546882
> cap.ddl$c
time par.index model.index group Time c cov
1 2 1 11 1 0 1 0.2297510
2 3 2 12 1 1 1 0.3151607
3 4 3 13 1 2 1 0.5212081
4 5 4 14 1 3 1 0.8556278
5 6 5 15 1 4 1 0.5454583
6 7 6 16 1 5 1 0.5369133
7 8 7 17 1 6 1 0.1483954
8 9 8 18 1 7 1 0.3653838
9 10 9 19 1 8 1 0.5546882
>
Finalmente, se puede especificar unos modelos incluyendo o no los efectos de la covariable, comportamiento, solo tiempo, etc. Por ejemplo
>pt=list(formula=~time,share=TRUE)
>pcov.share=list(formula=~cov,share=TRUE)
>p.c.share=list(formula=~cov+c)
>m0<-mark(cap.processed)
>mt<-mark(cap.processed,cap.ddl,model.parameters=list(p=pt))
>mcov<-mark(cap.processed,cap.ddl,model.parameters=list(p=pcov.share))
>m.b.cov<-mark(cap.processed,cap.ddl,model.parameters=list(p=p.c.share))
Se implementan los modelos anteriores, los colectan, computa un estimado de promedio ponderado, y producir un gráfico de la relación entre la covariable y p en el código de R. Los resultados indican que el modelo con solo la covariable predecir p es el mejor model.
Covariables individuales
Con las covariables individuales, se necesitan usar los valores de cada uno de los animales por separado. Por eso, usualmente se incluyen estos valores como una o más columnas adicionales en los datos, colocados a la derecha. Lo ilustramos con un ejemplo de solo una covariable. Otra vez, se cargan los datos de un objeto (aquí)
> #load in a saved capture history data object
> load("capt.indiv.hist")
> #display first several lines
> head(capt.indiv.hist)
ch x
1 00001 0.2837756
2 00110 0.7906314
3 01100 0.0927407
4 10000 0.9632272
5 01000 0.8358877
6 00001 0.8072262
En este ejemplo, la covariable se llama x, por eso necesitamos usar x por su nombre en los modelos.
Otra consideración para CMR es el hecho que, por definición, solo tenemos valores de la covariable por los animales que han sido capturado por lo menos una vez. Es decir, tenomos valores de x por
101001
000101
pero por
000000
Sin embargo, las verosimilutudes de los modelos de CMR en general son no condicional, por eso incluyen las historia nunca capturado, falta de valores de x. La solución de este problema es cambiar a los modelos condicionales de Huggins, que tienen solo p y c como parámetros y producen estimados de N por valores derivados.
Este código de R lee los datos, producir varios modelos de Huggins, unos incorporando los efectos de la covariable, produce un estimado de N derivado y predicciones de p promedio ponderado, y finalmente produce un gráfico de la relación predictiva y su intervalos de confianza entre x y p.
Siguiente:Bondad de ajuste