"By deriving the autocovariate from model residuals, only the variance unexplained by the explanatory variables is incorporated, and therefore the RAC model better captures the true influence of these explanatory variables, resulting in stronger inferential performance than the autologistic approach."
They promote the method as being simple and widely applicable, including in GLMs and decision trees. I'm wondering if it works in an unmarked model.
The approach calls for a 2-stage analysis, first running one set of models, then using the residuals from the best model to calculate the autocovariate, then re-running models using the autocovariate. Or at least something close to that.
Below I show results for Least Flycatcher. "glbl" is the best model from the initial model run with no autocovariate, then I made 4 more models where I tried the autocovariate term in different ways. The glbl model has a delta AIC of 113 when compared to the best of the autocovariate models. This is the most extreme result I found and not typical, but for most species I've tried so far the autocovariate models have been clearly better than the best model with no autocovariate.
First, one specific question: I have 4 columns of count data in the unmarkedFrame and so 4 residual values are given for each site. I just summed across these columns to get a single residual value for each site. Is that correct?
Additionally I'd really appreciate hearing others thoughts on this approach: is it accounting for spatial autocorrelation and not biasing parameter estimates in these gmultmix models?
I include more script below to give an idea of how I calculated the autocovariate.
Best,
Mike Worland
# the original best model from models with no spatial autocovariate:
(glbl <-gmultmix(~site +year +ba +bigBA +scDiv +con +yb +snag,
~site +year,
~obsvr +sky +windy +time +date +ba, uf))
# adjusting the best model with the spatial autocovariate:
(glbl.acAll <-gmultmix(~site +year +ba +bigBA +scDiv +con +yb +snag +ac,
~site +year +ac,
~obsvr +sky +windy +time +date +ba +ac, uf))
(glbl.acL <-gmultmix(~site +year +ba +bigBA +scDiv +con +yb +snag +ac,
~site +year,
~obsvr +sky +windy +time +date +ba, uf))
(glbl.acPhi <-gmultmix(~site +year +ba +bigBA +scDiv +con +yb +snag,
~site +year +ac,
~obsvr +sky +windy +time +date +ba, uf))
(glbl.acD <-gmultmix(~site +year +ba +bigBA +scDiv +con +yb +snag,
~site +year,
~obsvr +sky +windy +time +date +ba +ac, uf))
AClist <-modSel(fitList (glbl, glbl.acAll, glbl.acL, glbl.acPhi, glbl.acD))
> AClist
nPars AIC delta AICwt cumltvWt
glbl.acPhi 28 1501.90 0.00 8.4e-01 0.84
glbl.acAll 30 1505.16 3.25 1.6e-01 1.00
glbl.acL 28 1516.42 14.52 5.9e-04 1.00
glbl.acD 28 1568.68 66.78 2.6e-15 1.00
glbl 27 1614.94 113.04 2.4e-25 1.00
> (best <-glbl.acPhi)
Call:
gmultmix(lambdaformula = ~site + year + ba + bigBA + scDiv +
con + yb + snag, phiformula = ~site + year + ac, pformula = ~obsvr +
sky + windy + time + date + ba, data = uf)
Abundance:
Estimate SE z P(>|z|)
(Intercept) -0.4591 0.2848 -1.612 1.07e-01
siteflam 1.0122 0.3737 2.709 6.75e-03
sitenhal 0.7586 0.3488 2.175 2.96e-02
year2005 0.7793 0.3596 2.167 3.02e-02
year2006 0.6886 0.3831 1.797 7.23e-02
year2007 0.1069 0.3347 0.319 7.49e-01
ba 0.0273 0.0737 0.371 7.10e-01
bigBA -0.0478 0.0966 -0.495 6.21e-01
scDiv 0.3116 0.1045 2.983 2.86e-03
con -0.2526 0.1143 -2.210 2.71e-02
yb 0.2047 0.0519 3.944 8.01e-05
snag 0.1371 0.0610 2.248 2.46e-02
Availability:
Estimate SE z P(>|z|)
(Intercept) 0.3289 0.451 0.729 4.66e-01
siteflam -1.8888 0.483 -3.911 9.20e-05
sitenhal -1.7737 0.484 -3.663 2.50e-04
year2005 -0.9833 0.518 -1.900 5.75e-02
year2006 -1.1698 0.525 -2.230 2.58e-02
year2007 0.0843 0.506 0.167 8.68e-01
ac 0.9655 0.100 9.646 5.11e-22
Detection:
Estimate SE z P(>|z|)
(Intercept) 2.4523 0.463 5.2998 1.16e-07
obsvrother2 -0.8653 0.582 -1.4856 1.37e-01
obsvrworland -1.0400 0.617 -1.6850 9.20e-02
skypart -1.4440 0.493 -2.9284 3.41e-03
skycloud -0.0328 0.629 -0.0522 9.58e-01
windyy 0.1890 0.540 0.3498 7.26e-01
time 0.7755 0.264 2.9354 3.33e-03
date -0.0635 0.251 -0.2533 8.00e-01
ba -0.4134 0.230 -1.7941 7.28e-02
AIC: 1501.903
#example script for making autocovariate
#best model from first run with no autocovariate
(mod <-glbl)
# add residuals
r <-residuals(mod)
r <-data.frame(r)
r$resid <- rowSums(r) # <- not sure this is correct
mrg <-cbind(r[,5],xplot[,c(2,10,22,25)])
colnames(mrg)[1] <- "resid"
# Make a variogram plot: use the "range" as the neighborhood distance when
# calculating the autocovariate (700 m in this case).
library(geoR)
xplot04 <-mrg[mrg$year =="2004",]
v1 <-variog(coords =xplot04[4:5], data =xplot04$resid, breaks =seq(100,1500,100))
plot(v1,xlim=c(100,1500))
lines(v1)
# Creates the spatial autocovariate for 2004 surveys.
xy<-cbind(xplot04$Easting,xplot04$Northing)
library(spdep)
ac04 <-autocov_dist(xplot04$resid,xy,type="inverse",style="W",
nbs = 700,longlat=NULL,zero.policy=TRUE)
#add autocovariate to dataset
ac<-c(ac04,ac05,ac06,ac07)
xplot2<-cbind(xplot,ac)
--
You received this message because you are subscribed to the Google Groups "unmarked" group.
To unsubscribe from this group and stop receiving emails from it, send an email to unmarked+u...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.