Create a likelihood function of a numerical vector parameter

PCMCreateLikelihood(
X,
tree,
model,
SE = matrix(0, PCMNumTraits(model), PCMTreeNumTips(tree)),
metaI = PCMInfo(X, tree, model, SE),
positiveValueGuard = Inf
)

## Arguments

X |
a `k x N` numerical matrix with possible `NA` and
`NaN` entries. For `i=1,..., N` , the column `i` of X contains
the measured trait values for species `i` (the tip with integer
identifier equal to `i` in `tree` ). Missing values can be either
not-available (`NA` ) or not existing (`NaN` ). These two values are
treated differently when calculating likelihoods (see
`PCMPresentCoordinates` ). |

tree |
a phylo object with N tips. |

model |
an S3 object specifying both, the model type (class, e.g. "OU") as
well as the concrete model parameter values at which the likelihood is to be
calculated (see also Details). |

SE |
a k x N matrix specifying the standard error for each measurement in
X. Alternatively, a k x k x N cube specifying an upper triangular k x k
factor of the variance covariance matrix for the measurement error
for each tip `i=1, ..., N` . When `SE` is a matrix, the k x k
measurement error variance matrix for a tip `i` is calculated as
`VE[, , i] <- diag(SE[, i] * SE[, i], nrow = k)` . When `SE` is a
cube, the way how the measurement variance matrix for a tip `i` is
calculated depends on the runtime option `PCMBase.Transpose.Sigma_x`
as follows:
- if
`getOption("PCMBase.Transpose.Sigma_x", FALSE) == FALSE` (default): VE[, , i] <- SE[, , i] %*% t(SE[, , i])
- if
`getOption("PCMBase.Transpose.Sigma_x", FALSE) == TRUE` : VE[, , i] <- t(SE[, , i]) %*% SE[, , i]
Note that the above behavior is consistent with the treatment of the model
parameters `Sigma_x` , `Sigmae_x` and `Sigmaj_x` , which are
also specified as upper triangular factors.
Default: `matrix(0.0, PCMNumTraits(model), PCMTreeNumTips(tree))` . |

metaI |
a list returned from a call to `PCMInfo(X, tree, model, SE)` ,
containing meta-data such as N, M and k. Alternatively, this can be a
character string naming a function or a function object that returns such
a list, e.g. the function`PCMInfo` or the function `PCMInfoCpp`
from the `PCMBaseCpp` package. |

positiveValueGuard |
positive numerical value (default Inf), which
serves as a guard for numerical error. Values exceeding
this positiveGuard are most likely due to numerical error and
PCMOptions()$PCMBase.Value.NA is returned instead. |

## Value

a function of a numerical vector parameter called p returning the
likelihood of X given the tree and the model with parameter values specified
by p.

## Details

It is possible to specify a function for the argument metaI. This
function should have three parameters (X, tree, model) and should return a
metaInfo object. (see `PCMInfo`

).