##
###########################
## Read data:
###########################
library(spTimer)
data(NYdata)
data(NYsite)
head(NYdata)
head(NYsite)
# map
library(maps)
map(database="state",regions="new york")
points(NYsite[,2:3],pch=19)
# descriptive stat
summary(NYdata[,7:10])
#
n.sites <- length(unique(NYsite[,1])) # Total number of sites
n.valsites <- 4 # Let 4 sites are set aside
nall.sites <- 1:n.sites # Numbered sites
nrand.sites <- sort(sample(nall.sites, n.valsites)) # Select 4 sites randomly
nval.sites <- nrand.sites # Numbered validation sites
nfit.sites <- nall.sites[-nrand.sites] # Numbered fitted sites
# split the NYdata into fitted and validation part
val.dat <- spT.data.selection(data=NYdata,random=F,s=nval.sites)
fit.dat <- spT.data.selection(data=NYdata,random=F,s=nfit.sites)
val.site <- spT.data.selection(data=NYsite,random=F,s=nval.sites)
fit.site <- spT.data.selection(data=NYsite,random=F,s=nfit.sites)
# set aside last day of August for forecast validation
fit.fore<-fit.dat[fit.dat$Month==8 & fit.dat$Day==31,]
val.fore<-val.dat[val.dat$Month==8 & val.dat$Day==31,]
# new fitted and validation data with 61 days
fit.dat<-fit.dat[fit.dat$Month !=8 | fit.dat$Day !=31,]
val.dat<-val.dat[val.dat$Month !=8 | val.dat$Day !=31,]
#
library(maps)
map(database="state",regions="new york")
points(fit.site[,2:3],pch=2,col=4)
points(val.site[,2:3],pch=19,col=2)
#
###########################
## The GP models:
###########################
# define the coordinates
coords<-as.matrix(fit.site[,2:3])
# define the time-series
time.data<-spT.time(t.series=61,segment=1)
# hyper-parameters for the prior distributions
priors<-spT.priors(model="GP",var.prior=Gam(2,1),
beta.prior=Nor(0,10^4))
#priors<-NULL
# initial values for the model parameters
initials<-spT.initials(model="GP", sig2eps=0.01,
sig2eta=0.5, beta=NULL, phi=0.001)
#initials<-NULL
# input for spatial decay
#spatial.decay<-spT.decay(type="FIXED", value=0.01)
spatial.decay<-spT.decay(type="MH", tuning=0.08)
#spatial.decay<-spT.decay(type="DISCRETE",limit=c(0.01,0.02),segments=5)
# input for the MCMC algorithms
nItr<-5000
# MCMC via Gibbs
post.gp <- spT.Gibbs(formula=o8hrmax ~ cMAXTMP+WDSP+RH,
data=fit.dat, model="GP", time.data=time.data,
coords=coords, priors=priors, initials=initials,
nItr=nItr, nBurn=0, report=nItr,
tol.dist=2, distance.method="geodetic:km",
cov.fnc="exponential", scale.transform="SQRT",
spatial.decay=spatial.decay)
#object.size(post.gp)/(1024*1024) #MB
names(post.gp)
# model selection criteria
post.gp$PMCC #
# MCMC summary and plots
spT.MCMC.stat(post.gp,nBurn=1000)
spT.MCMC.plot(post.gp,nBurn=1000)
# Use of coda pakcage
library(coda)
tmp<-as.mcmc(post.gp)
plot(tmp)
summary(tmp)
##
## Fit and Prediction simultaneously
##
pred.coords<-as.matrix(val.site[,2:3])
coords<-as.matrix(fit.site[,2:3])
time.data<-spT.time(t.series=61,segment=1)
priors<-spT.priors(model="GP",var.prior=Gam(2,1),
beta.prior=Nor(0,10^4))
initials<-spT.initials(model="GP", sig2eps=0.01,
sig2eta=0.5, beta=NULL, phi=0.001)
# input for spatial decay
#spatial.decay<-spT.decay(type="FIXED", value=0.01)
spatial.decay<-spT.decay(type="MH", tuning=0.08)
#spatial.decay<-spT.decay(type="DISCRETE",limit=c(0.01,0.02),segments=5)
nItr<-5000
# MCMC via Gibbs
post.gp.fit.pred <- spT.Gibbs(formula=o8hrmax~cMAXTMP+WDSP+RH,
data=fit.dat, model="GP", time.data=time.data,
coords=coords, pred.coords=pred.coords, pred.data=val.dat,
priors=priors, initials=initials,
nItr=nItr, nBurn=1000, report=nItr,
tol.dist=2, distance.method="geodetic:km",
cov.fnc="exponential", scale.transform="SQRT",
spatial.decay=spatial.decay,
annual.aggregation="NONE")
names(post.gp.fit.pred)
post.gp.fit.pred$parameter
###########################
## The AR models:
###########################
# define the coordinates
coords<-as.matrix(fit.site[,2:3])
# define the time-series
time.data<-spT.time(t.series=61,segment=1)
# hyper-parameters for the prior distributions
priors<-spT.priors(model="AR",var.prior=Gam(2,1),
beta.prior=Nor(0,10^4))
# initial values for the model parameters
initials<-spT.initials(model="AR", sig2eps=0.01,
sig2eta=0.5, beta=NULL, phi=0.001)
# input for spatial decay
#spatial.decay<-spT.decay(type="FIXED", value=0.01)
spatial.decay<-spT.decay(type="MH", tuning=0.08)
#spatial.decay<-spT.decay(type="DISCRETE",limit=c(0.01,0.02),segments=5)
# input for the MCMC algorithms
nItr<-500
# MCMC via Gibbs
post.ar <- spT.Gibbs(formula=o8hrmax~cMAXTMP+WDSP+RH,
data=fit.dat, model="AR", time.data=time.data,
coords=coords, priors=priors, initials=initials,
nItr=nItr, nBurn=0, report=nItr,
tol.dist=2, distance.method="geodetic:km",
cov.fnc="exponential", scale.transform="SQRT",
spatial.decay=spatial.decay)
object.size(post.ar)/(1024*1024) #MB
names(post.ar)
# model selection criteria
post.ar$PMCC #
# MCMC summary and plots
spT.MCMC.stat(post.ar,nBurn=100)
spT.MCMC.plot(post.ar,nBurn=100)
# Use of coda pakcage
library(coda)
tmp<-as.mcmc(post.ar)
plot(tmp)
summary(tmp)
##
## fit and predict combinedly for AR models with text output
##
pred.coords<-as.matrix(val.site[,2:3])
coords<-as.matrix(fit.site[,2:3])
time.data<-spT.time(t.series=61,segment=1)
priors<-spT.priors(model="AR",var.prior=Gam(2,1),
beta.prior=Nor(0,10^4))
initials<-spT.initials(model="AR", sig2eps=0.01,
sig2eta=0.5, beta=NULL, phi=0.001)
# input for spatial decay
#spatial.decay<-spT.decay(type="FIXED", value=0.01)
spatial.decay<-spT.decay(type="MH", tuning=0.08)
#spatial.decay<-spT.decay(type="DISCRETE",limit=c(0.01,0.02),segments=5)
nItr<-500
nBurn<-100
# MCMC via Gibbs
post.ar.fit.pred <- spT.Gibbs(formula=o8hrmax~cMAXTMP+WDSP+RH,
data=fit.dat, model="AR", time.data=time.data,
coords=coords, pred.coords=pred.coords, pred.data=val.dat,
priors=priors, initials=initials,
nItr=nItr, nBurn=nBurn, report=nItr,
tol.dist=2, distance.method="geodetic:km",
cov.fnc="exponential", scale.transform="SQRT",
spatial.decay=spatial.decay,
annual.aggregation="an4th")
names(post.ar.fit.pred)
post.ar.fit.pred$para
###########################
## Models with GPP approximations:
###########################
# define the coordinates and knots
coords<-as.matrix(fit.site[,2:3])
knots.coords<-spT.grid.coords(Longitude=c(max(coords[,1]),
min(coords[,1])),Latitude=c(max(coords[,2]),
min(coords[,2])), by=c(4,4))
library(maps)
map(database="state",regions="new york")
points(coords,pch=2,col=2)
points(knots.coords,pch=19,col=4)
# define the time-series
time.data<-spT.time(t.series=61,segment=1)
# hyper-parameters for the prior distributions
priors<-spT.priors(model="GPP",var.prior=Gam(2,1),
beta.prior=Nor(0,10^4))
#priors<-NULL
# initial values for the model parameters
initials<-spT.initials(model="GPP", sig2eps=0.01,
sig2eta=0.5, beta=NULL, phi=0.001)
#initials<-NULL
# input for spatial decay
#spatial.decay<-spT.decay(type="FIXED", value=0.001)
spatial.decay<-spT.decay(type="MH", tuning=0.05) #
#spatial.decay<-spT.decay(type="DISCRETE",limit=c(0.001,0.009),segments=10)
# input for the MCMC algorithms
nItr<-5000
# MCMC via Gibbs
post.gpp <- spT.Gibbs(formula=o8hrmax~cMAXTMP+WDSP+RH,
data=fit.dat, model="GPP", time.data=time.data,
coords=coords, knots.coords=knots.coords,
priors=priors, initials=initials,
nItr=nItr, nBurn=0, report=nItr/10,
tol.dist=2, distance.method="geodetic:km",
cov.fnc="exponential", scale.transform="SQRT",
spatial.decay=spatial.decay)
object.size(post.gpp)/(1024*1024) #MB
names(post.gpp)
# model selection criteria
post.gpp$PMCC #
# MCMC summary and plots
spT.MCMC.stat(post.gpp,nBurn=1000)
spT.MCMC.plot(post.gpp,nBurn=1000,ACF=T)
# Use of coda pakcage
library(coda)
tmp<-as.mcmc(post.gpp)
plot(tmp)
summary(tmp)
##
## fit and predict together for the GPP with text output
##
pred.coords<-as.matrix(val.site[,2:3])
coords<-as.matrix(fit.site[,2:3])
knots.coords<-spT.grid.coords(Longitude=c(max(coords[,1]),
min(coords[,1])),Latitude=c(max(coords[,2]),
min(coords[,2])), by=c(4,4))
time.data<-spT.time(t.series=61,segment=1)
priors<-spT.priors(model="GPP",var.prior=Gam(2,1),
beta.prior=Nor(0,10^4))
#priors<-NULL
initials<-spT.initials(model="GPP", sig2eps=0.01,
sig2eta=0.5, beta=NULL, phi=0.001)
#initials<-NULL
# input for spatial decay
#spatial.decay<-spT.decay(type="FIXED", value=0.01)
spatial.decay<-spT.decay(type="MH", tuning=0.0008)
#spatial.decay<-spT.decay(type="DISCRETE",limit=c(0.001,0.002),segments=5)
nItr<-500
# MCMC via Gibbs
post.gpp.fit.pred <- spT.Gibbs(formula=o8hrmax~cMAXTMP+WDSP+RH,
data=fit.dat, model="GPP", time.data=time.data,
coords=coords, knots.coords=knots.coords,
pred.coords=pred.coords, pred.data=val.dat,
priors=priors, initials=initials,
nItr=nItr, nBurn=100, report=nItr,
tol.dist=2, distance.method="geodetic:km",
cov.fnc="exponential", scale.transform="SQRT",
spatial.decay=spatial.decay,
annual.aggregation="NONE")
names(post.gpp.fit.pred)
post.gpp.fit.pred$para
##
Run the code above in your browser using DataLab