##load the data
data(mesa.data)
data(mesa.data.model)
data(mesa.data.res)
##Get estimated parameters
x <- mesa.data.res$par.est$res.best$par.all
##Simulate 5 replicates from these parameters
sim.data <- simulateMesaData(x, mesa.data.model, rep = 5)
##plot the simulated observations as a function of time
par(mfrow=c(2,2),mar=c(4,4,.5,.5))
plot(sim.data$obs[[1]]$date, sim.data$obs[[1]]$obs,
type="n", ylab="obs", xlab="Date")
for(i in 1:5)
points(sim.data$obs[[i]]$date, sim.data$obs[[i]]$obs, col=i)
##and the latent beta-fields
for(i in 1:3){
plot(sim.data$B[,i,1], ylim=range(sim.data$B[,i,]), type="n",
xlab="loc", ylab=paste("beta",colnames(sim.data$B)[i]))
for(j in 1:5)
points(sim.data$B[,i,j], col=j)
}
###########################################
## A case with some unobserved locations ##
###########################################
##keep only observations from the AQS sites
ID.AQS <- mesa.data$location$ID[mesa.data$location$type=="AQS"]
mesa.data$obs <- mesa.data$obs[mesa.data$obs$ID %in% ID.AQS,]
##create a model object, dropping unobserved locations.
mesa.data.model <- create.data.model(mesa.data,
LUR = mesa.data.model$LUR.list, ST.Ind = mesa.data.model$ST.Ind)
##simulate some replicates for this object
sim.data.obs <- simulateMesaData(x, mesa.data.model)
sim.data.all <- simulateMesaData(x, mesa.data.model,
mesa.data=mesa.data)
sim.data.comb <- simulateMesaData(x, mesa.data.model,
mesa.data=mesa.data, combine.data = TRUE)
##The first simulated object now only contains the AQS sites
mesa.data.model$location$ID
colnames(sim.data.obs$X)
##while the other two contain all locations
colnames(sim.data.all$X)
colnames(sim.data.comb$X)
if( any(mesa.data.model$location$ID != colnames(sim.data.obs$X)) ){
stop("simulateMesaData 1: Miss-match in simulated locations.")
}
if( any(colnames(sim.data.all$X) != colnames(sim.data.comb$X)) ){
stop("simulateMesaData 2: Miss-match in simulated locations.")
}
Run the code above in your browser using DataLab