# corr_complex: Complex Gaussian processes In cmvnorm: The Complex Multivariate Gaussian Distribution

## Description

Various utilities for investigating complex Gaussian processes

## Usage

 ```1 2 3 4 5 6 7 8``` ```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 C^n `distance.function` Function giving the (complex) covariance between two points in C^n `means, pos.def.matrix, scales` In function `complex_CF()`, the mean and covariance matrix of the distribution whose characteristic function is used as to give the covariance matrix; `scales` is used to specify the diagonal of `pos.def.matrix` if the off-diagonal elements are zero `zold, d, give_log, func, x, Ainv, give.Z,...` Direct analogues of the arguments in `interpolant()` and `scales.likelihood()` in the emulator package

## Details

• Function `complex_CF()` returns a (slightly reparameterized) characteristic function of a complex Gaussian distribution. The covariance is given by

[omitted, see PDF]

where x-x' is interpreted as the distance between two observations, mu is the mean of the distribution (which is in general a complex vector), and B a 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 i and observation j, or cov(eta(x_i),eta(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.mattrix()` 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

[omitted, see PDF]

. Here and elsewhere, A^* means the complex conjugate of the transpose.

• Function `interpolant.quick.complex()` is a complex version of `interpolant.quick()`.

[omitted, see PDF]

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

 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20``` ```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) ```

cmvnorm documentation built on Aug. 16, 2018, 9:05 a.m.