RMtrend(mean, plane, polydeg, polycoeff, arbitraryfct, fctcoeff)
mean
is interpreted as constant
polydeg
; the coefficients are either assumed
to be polydeg_1
, ..., polydeg_p
in a
$d$-dimensional space. Each compoarbitraryfct
describes the trend surface of $Z_i(\cdot)$;
the arguments of this function should be location (and
time) corresponding to the random field to be modelled. Iarbitraryfct
, i.e. the trend
is given by fctcoeff * arbitraryfct
. Note that the
coefficient is the same for each component of
arbitraryfct
;
+
(see
Note that this function refers to trend surfaces in the geostatistical
framework. Fixed effects in the mixed models framework are
implemented, as well (see
The order of the monomial basis functions and the corresponding
coefficients given by polycoeff
is the following:
The first ${polydeg_1+d\choose d}$ components belong to the
trend polynomial of the first variable, the following
${polydeg_2+d\choose d}$ ones to the second one, and so on.
Within one trend polynomial the monomial basis functions are ordered
by the powers in an ascending way such that the power of the first
component varies fastest; e.g. the monomial basis functions up to
degree $k$ in a two-dimensional space are given by
RFoptions(seed=0) ## *ANY* simulation will have the random seed 0; set
## RFoptions(seed=NA) to make them all random again
##################################################
# Example 1: #
# Simulate from model with a plane trend surface #
##################################################
#trend: 1 + x - y, cov: exponential with variance 0.01
model <- ~ RMtrend(mean=1, plane = c(1,-1)) + RMexp(var=0.01)
#equivalent model:
model <- ~ RMtrend(polydeg=1,polycoeff=c(1,1,-1)) + RMexp(var=0.01)
#Simulation
x <- 0:10
simulated <- RFsimulate(model=model, x=x, y=x, grid=TRUE)
plot(simulated)
####################################################################
#
# Example 2: Simulate and fit a multivariate geostatistical model
#
####################################################################
# Simulate a bivariate Gaussian random field with trend
# m_1((x,y)) = x + 2*y and m_2((x,y)) = 3*x + 4*y
# where m_1 is a hyperplane describing the trend for the first response
# variable and m_2 is the trend for the second one;
# the covariance function is the sum of a bivariate Whittle-Matern model
# and a multivariate nugget effect
x <- y <- 0:10
model <- RMtrend(plane=matrix(c(1,2,3,4), ncol=2)) +
RMparswm(nu=c(1,1)) + RMnugget(var=0.5)
multi.simulated <- RFsimulate(model=model, x=x, y=y, grid=TRUE)
plot(multi.simulated)
\dontrun{
# Fit the Gaussian random field with unknown trend for the second
# response variable and unknown variances
model.na <- RMtrend(plane=matrix(c(1, 2, NA, NA), ncol=2)) +
RMparswm(nu=c(1,1), var=NA) + RMnugget(var=NA)
fit <- RFfit(model=model.na, data=multi.simulated)
}
\dontrun{
##################################################
#
# Example 3: Simulation and estimation for model with
# arbitrary trend functions
#
##################################################
#Simulation
# trend: 2*sin(x) + 0.5*cos(y), cov: spherical with scale 3
model <- ~ RMtrend(arbitraryfct=function(x) sin(x),
fctcoeff=2) +
RMtrend(arbitraryfct=function(y) cos(y),
fctcoeff=0.5) +
RMspheric(scale=3)
x <- seq(-4*pi, 4*pi, pi/10)
simulated <- RFsimulate(model=model, x=x, y=x, grid=TRUE)
plot(simulated)
################# ?? !!
#Estimation, part 1
# estimate coefficients and scale
model.est <- ~ RMtrend(arbitraryfct=function(x) sin(x), fctcoeff=1) +
RMtrend(arbitraryfct=function(y) cos(y), fctcoeff=1) +
RMspheric(scale=NA)
estimated <- RFfit(model=model.est, x=x, y=x, grid=TRUE,
data=simulated@data, mle.methods="ml")
#Estimation
# estimate coefficients and scale
model.est <- ~ RMtrend(arbitraryfct=function(x) sin(x)) +
RMtrend(arbitraryfct=function(y) cos(y)) +
RMspheric(scale=NA)
estimated <- RFfit(model=model.est, x=x, y=x, grid=TRUE,
data=simulated@data, mle.methods="ml")
##################################################
#
# Example 4: Simulation and estimation for model with
# polynomial trend
#
##################################################
#Simulation
# trend: 2*x^2 - 3 y^2, cov: whittle-matern with nu=1,scale=0.5
model <- ~ RMtrend(arbitraryfct=function(x) 2*x^2 - 3*y^2,
fctcoeff=1) + RMwhittle(nu=1, scale=0.5)
# equivalent model:
model <- ~ RMtrend(polydeg=2, polycoeff=c(0,0,2,0,0,-3))
x <- 0:20
simulated <- RFsimulate(model=model, x=x, y=x, grid=TRUE)
plot(simulated)
#Estimation
# estimate nu and the trend term assuming that it is a polynomial
# of degree 2
model.est <- ~ RMtrend(polydeg=2) + RMwhittle(nu=NA, scale=0.5)
estimated <- RFfit(model=model.est, x=x, y=x, grid=TRUE,
data=simulated@data, mle.methods="ml")
}
FinalizeExample()
Run the code above in your browser using DataLab