| corr_complex {cmvnorm} | R Documentation | 
Complex Gaussian processes
Description
Various utilities for investigating complex Gaussian processes
Usage
corr_complex(z1, z2 = NULL, distance.function = complex_CF, means =
NULL, scales = NULL, pos.def.matrix = NULL)
complex_CF(z1,z2, means, pos.def.matrix)
scales.likelihood.complex(pos.def.matrix, scales, means,  zold, z,
               give_log = TRUE, func = regressor.basis)
interpolant.quick.complex(x, d, zold, Ainv, scales = NULL, pos.def.matrix = NULL,
               means=NULL, func = regressor.basis, give.Z = FALSE,
               distance.function = corr_complex, ...)
Arguments
| z,z1,z2 | Points in  | 
| distance.function | Function giving the (complex) covariance
between two points in  | 
| means,pos.def.matrix,scales | In function  | 
| zold,d,give_log,func,x,Ainv,give.Z,... | Direct analogues of the
arguments in  | 
Details
- Function - complex_CF()returns a (slightly reparameterized) characteristic function of a complex Gaussian distribution. The covariance is given by- c(\mathbf{t}) = \exp(i\mathrm{Re}(\mathbf{t}^\ast\mathbf{\mu}) - \mathbf{t}^\ast B\mathbf{t})- where - \mathbf{t}=\mathbf{x}-\mathbf{x}'is interpreted as the distance between two observations,- \mathbf{\mu}is the mean of the distribution (which is in general a complex vector), and- Ba positive-definite matrix.
- Function - corr_complex()is the complex analogue of- corr.matrix(). It returns a matrix with entry- (i,j)equal to the covariance of the process at observation- iand observation- j, or- \mbox{cov}(\eta(\mathbf{x}_i),\eta(\mathbf{x}_j)). The elements are calculated by- complex_CF().- This function includes only a single method, that of nested calls to - apply(). I could not figure out how to generalize method 1 of- corr.matrix()to the complex case.
- Function - scales.likelihood.complex()is a complex version of- scales.likelihood()which takes a positive definite matrix and a mean. The formula used is- (\sigma^2)^{-(n-q)}|A|^{-1} |H^\ast A^{-1}H|^{-1}- . Here and elsewhere, - A^\astmeans the complex conjugate of the transpose.
- Function - interpolant.quick.complex()is a complex version of- interpolant.quick().- \mathbf{h}(\mathbf{x})^\ast\hat{\mathbf{\beta}} + \mathbf{t}(\mathbf{x})^\ast A^{-1}(\mathbf{y}-H\hat{\mathbf{\beta}})- This is the complex version of Oakley's equation 2.30 or Hankin's equation 5. 
More details are given in the package vignette.
Author(s)
Robin K. S. Hankin
References
- Hankin, R. K. S. 2005. “Introducing BACCO, an R bundle for Bayesian Analysis of Computer Code Output”, Journal of Statistical Software, 14(15) 
- J. Oakley 1999. Bayesian uncertainty analysis for complex computer codes, PhD thesis, University of Sheffield. 
Examples
complex_CF(c(1,1i),c(1,-1i),means=c(1i,1i),pos.def.matrix=diag(2))
V <- latin.hypercube(7,2,complex=TRUE)
cm <- c(1,1+1i)                     # "complex mean"
cs <- matrix(c(2,1i,-1i,1),2,2)   # "complex scales"
tb <- c(1,1i,1-1i)                     # "true beta"
A <- corr_complex(V,means=cm,pos.def.matrix=cs)
Ainv <- solve(A)
z <- drop(rcmvnorm(n=1,mean=regressor.multi(V) %*% tb, sigma=A))
betahat.fun(V,Ainv,z)    # should be close to 'tb'
#scales.likelihood.complex(cs,cm,V,z)   # log-likelihood evaluated true parameters
interpolant.quick.complex(x=0.1i+V[1:3,],d=z,zold=V,Ainv=Ainv,pos.def.matrix=cs,means=cm)