Linear trend for detection in RPresence

posts related to the RPresence library, which may not be of general interest to users of 'classic' PRESENCE.

Linear trend for detection in RPresence

Postby nathan_whitmore » Mon Jul 29, 2024 10:25 pm

Hi there,

I've been trying to replicate my results from PRESENCE into RPresence, however I can't quite work out how to incorporate a linear trend via the design matrix for detection. When I look at the matrix from my model in which method.linear.trend is a design matrix incorporating a linear trend (in which the detection rate changes consistently with time):

meth.linear.trend <-occMod(model = list(psi~ 1, gamma ~ 1, epsilon ~ 1, p ~ -1 + method.linear.trend),
data = mydata, type = "do.1")

The tail of the model matrix shows an issue (simplified here as a dummy example):

P(1-1) "1" "0"
P(1-2) "1" "1"
P(1-3) "1" "p.method.linear.trendd3"
P(1-4) "1" "p.method.linear.trendd3"

I'm guessing the design matrix is now being handled as factors rather than as continuous variables (where the numbers 2 and 3 understandably become problematic). In such a case what is the correct way to handle the coding for the linear trend?
nathan_whitmore
 
Posts: 4
Joined: Mon Jun 28, 2021 12:24 am

Re: Linear trend for detection in RPresence

Postby jhines » Mon Jul 29, 2024 11:04 pm

Hi Nathan,

RPresence automatically builds a covariate named 'SURVEY', which is categorical. You can create a continuous covariate with:

srvy <- matrix(rep(1:mydata$nsurveys,each=mydata$nunits),nrow=mydata$nsurveys)

This creates an NxK matrix (N=nsites, K=nsurveys) with the survey number in each column. You can then turn it into a data.frame and use it in the occMod function:

meth.linear.trend <-occMod(model = list(psi~ 1, gamma ~ 1, epsilon ~ 1, p ~ -1 + trend),
data = mydata, cov.list=list(p.cov=data.frame(trend=as.vector(srvy))), type = "do.1")

Alternatively, you can add the covariate to any survey covariates you already have:

mydata$survcov$trend = as.vector(srvy)

Then, you wouldn't need the cov.list argument in the occMod function call.

Jim
jhines
 
Posts: 632
Joined: Fri May 16, 2003 9:24 am
Location: Laurel, MD, USA

Re: Linear trend for detection in RPresence

Postby jhines » Mon Jul 29, 2024 11:09 pm

One more thing... the design matrix will have covariate names like the ones you see in your example, but any covariate which equal zero is replaced with "0" in the design matrix. Similarly for covariates which are always 1 will be replaced with "1" in the design matrix.
jhines
 
Posts: 632
Joined: Fri May 16, 2003 9:24 am
Location: Laurel, MD, USA

Re: Linear trend for detection in RPresence

Postby nathan_whitmore » Tue Jul 30, 2024 1:54 am

Hi Jim,

Thanks very much for help on this. Thanks to your explanation I've successfully replicated the model now.

However, I noticed that in your code your inadvertently suggested nrow =mydata$nsurveys. Just incase anyone else strikes the problem it should of course be nrow = mydata$nunits given it is an NxK matrix (N=nsites, K=nsurveys). So the magic piece of code is:

srvy <- matrix(rep(1:mydata$nsurveys, each=mydata$nunits), nrow=mydata$nunits)

Cheers,
Nathan
nathan_whitmore
 
Posts: 4
Joined: Mon Jun 28, 2021 12:24 am


Return to RPresence

Who is online

Users browsing this forum: No registered users and 1 guest

cron