public double calculateLogLikelihood() { double logL = 0.0; for (Attribute<double[]> data : dataList) { double[] x = data.getAttributeValue(); if (transforms != null) { double[] y = new double[x.length]; for (int i = 0; i < x.length; ++i) { logL += transforms[i].getLogJacobian(x[i]); y[i] = transforms[i].transform(x[i]); } logL += distribution.logPdf(y); } else { logL += distribution.logPdf(x); } } return logL; }
public MultivariateDistributionLikelihood( MultivariateDistribution distribution, Transform[] transforms) { this(distribution.getType(), distribution, transforms); }