Spatial regression with differential regularization: anysotropic case (elliptic PDE)
Description
This function implements a spatial regression model with differential regularization; anysotropic case. In particular, the regularizing term involves a second order elliptic PDE, that models the spacevariation of the phenomenon. Spacevarying covariates can be included in the model. The technique accurately handle data distributed over irregularly shaped domains. Moreover, various conditions can be imposed at the domain boundaries.
Usage
1 2 3 
Arguments
locations 
A #observationsby2 matrix where each row specifies the spatial coordinates 
observations 
A vector of length #observations with the observed data values over the domain.
The locations of the observations can be specified with the 
FEMbasis 
A 
lambda 
A scalar or vector of smoothing parameters. 
PDE_parameters 
A list specifying the parameters of the elliptic PDE in the regularizing term: 
covariates 
A #observationsby#covariates matrix where each row represents the covariates associated with the corresponding observed data value in 
BC 
A list with two vectors:

GCV 
Boolean. If 
CPP_CODE 
Boolean. If 
Value
A list with the following variables:

A 

A 

If covariates is not 

If GCV is 

If GCV is 

If GCV is 
References
Azzimonti, L., Sangalli, L.M., Secchi, P., Domanin, M., and Nobile, F., 2014. Blood flow velocity field estimation via spatial regression with PDE penalization Blood flow velocity field estimation via spatial regression with PDE penalization. DOI. 10.1080/01621459.2014.946036.
Azzimonti, L., Nobile, F., Sangalli, L.M., and Secchi, P., 2014. Mixed Finite Elements for Spatial Regression with PDE Penalization. SIAM/ASA Journal on Uncertainty Quantification, 2(1), pp.305335.
See Also
smooth.FEM.basis
, smooth.FEM.PDE.sv.basis
Examples
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22  # Load the mesh and plot it
data(mesh.2D.simple)
plot(mesh.2D.simple)
# Create a vector of noisy samples of an underlying spatial field,
# located over the nodes of the mesh
observations = sin(pi*mesh.2D.simple$nodes[,1]) + rnorm(n = nrow(mesh.2D.simple$nodes), sd = 0.1)
# Create the FEM basis object
FEMbasis = create.FEM.basis(mesh.2D.simple)
# Set a vector of smoothing coefficients
lambda = c(10^4, 1, 10^4)
# Set the anysotropic smoothing matrix K
PDE_parameters_anys = list(K = matrix(c(0.01,0,0,1), nrow = 2), b = c(0,0), c = 0)
# Estimate one field for each smoothing parameter and plot these
FEM_CPP_PDE = smooth.FEM.PDE.basis(observations = observations,
FEMbasis = FEMbasis, lambda = lambda,
PDE_parameters = PDE_parameters_anys)
plot(FEM_CPP_PDE$fit.FEM)
# Evaluate solution in three points
eval.FEM(FEM_CPP_PDE$fit.FEM, locations = rbind(c(0,0),c(0.5,0),c(2,2)))
