My error. The beta and real estimate std error and intervals should have changed but apparently I forgot to do the derived parameters. I was thinking that adding chat to call would pass it to MARK but that only happens with profile intervals. The chat adjustments are done in the MARK interface rather than in mark.exe. Thus it has to be done in RMark. This is straightforward but the intervals will depend on the type of parameter so this will take some work on my end before it does it for all derived parameters. In the meantime, many of the derived parameters are abundance estimates so I wrote the following code that you can use for that instance which uses the log-normal distribution to construct the interval. I show it with a POPAN example and chat=1.5 but it will work for any model where all of the derived values use a log-normal confidence interval.
- Code: Select all
adjust.derived=function(x,chat)
{
C=exp(1.96*sqrt(log(1+chat*(x$se/x$estimate)^2)))
return(data.frame(estimate=x$estimate,se=x$se*sqrt(chat),lcl=x$estimate/C,ucl=x$estimate*C))
}
data(dipper)
model=mark(dipper,model="POPAN")
model$results$derived
lapply(model$results$derived,adjust.derived,chat=1.5)
The code above just reports the new values. If you want to store them back into the model you can do that with
- Code: Select all
model$results$derived=lapply(model$results$derived,adjust.derived,chat=1.5)
Note that if you store them back in the model object, you can't then adjust them again with a different chat so you may want to store them separately or with a different name (e.g., model$results$derived.chat).
Also, if you want to adjust the var-cov matrix of the derived parameters use
- Code: Select all
lapply(model$results$derived.vcv,function(x) x*1.5)
--jeff