Estoy de modelado de cargos de los organismos a través del tiempo en once localidades. Me gustaría cuenta para la autocorrelación temporal en la cuenta, asumiendo que es presente.
Como los datos no están igualmente espaciados en el tiempo, estoy explorando variogramas empíricos (y la comparación de variograma modelo se ajusta a) basado en los residuos de un modelo lineal generalizado asumiendo la independencia.
Como se muestra a continuación, el variograma basado en el clásico semivariance estimador se ve muy diferente de la robusta (Cressie) estimador. Además, un ajuste de la mayoría de los modelos de variograma a la clásica variograma produce la singularidad de errores (con buena razón basada en el variograma de la parcela), mientras que un decente modelo exponencial (por ejemplo) puede ser ajustado a la robusta variograma. Por desgracia, parece como si nlme:::lme
(el que estoy usando para el modelo generalizado) sólo se utiliza la clásica variograma en el momento del montaje de correlación de las estructuras.
Por lo tanto, mis preguntas:
(1) Es el uso del estimador robusto de la construcción de la estructura de las correlaciones justificado en este caso?
(2) Si es así, es apropiado para ajustarse a la de un robusto modelo de variograma en, por ejemplo, gstat
o geoR
, y, a continuación, especifique/corrección de la estructura de las correlaciones en la lme
ajuste?
# Download data
datURL <- "https://www.dropbox.com/s/54q9ocwztt3swap/rsiggeo_variogram.csv"
dat <- repmis::source_data(datURL, sep = ",", header = TRUE)
# Load necessary packages
library(gstat)
library(sp)
# Convert to appropriate class
# Y coordinates are arbitrarily assigned values for each of 11 sites
# (count locations; assumed independent); Y coords were assigned such
# that each site is separated from others by more than the cutoff distance
# used in variogram construction
coordinates(dat) <- ~x+y
# Classic variogram model with example exponential fit
varClassic <- variogram(resid ~ 1, dat, cutoff = 180, width = 180/25)
# Note singularity error; starting values determine 'fit'
expClassic <- fit.variogram(varClassic, model = vgm(1, "Exp", 1, 0))
plot(varClassic, expClassic, xlab = 'Distance (days)')
# Robust (Cressie) variogram model with example exponential fit
varCressie <- variogram(resid ~ 1, dat, cutoff = 180, width = 180/25, cressie=TRUE)
expCressie <- fit.variogram(varCressie, model = vgm(0.3, "Exp", 50, 0.1))
plot(varCressie, expCressie, xlab = 'Distance (days)')