use of dr.math.matrixAlgebra.Matrix in project beast-mcmc by beast-dev.
the class LKJTransformTest method testTransformationLimit.
public void testTransformationLimit() {
System.out.println("\nTest LKJ transform on the border.");
double[] transformedValue = transform.inverse(CPCsLimit, 0, CPCsLimit.length);
double[] inverseTransformedValues = transform.transform(transformedValue, 0, transformedValue.length);
SymmetricMatrix R = compoundCorrelationSymmetricMatrix(transformedValue, dim);
;
System.out.println("transformedValue=" + R);
try {
assertTrue("Positive Definite", R.isPD());
} catch (IllegalDimension illegalDimension) {
illegalDimension.printStackTrace();
}
System.out.println("iCPC=" + new Matrix(inverseTransformedValues, dim * (dim - 1) / 2, 1));
assertEquals("size CPCs", format.format(CPCsLimit.length), format.format(inverseTransformedValues.length));
for (int k = 0; k < CPCsLimit.length; k++) {
assertEquals("inverse transform k=" + k, format.format(CPCsLimit[k]), format.format(inverseTransformedValues[k]));
}
}
use of dr.math.matrixAlgebra.Matrix in project beast-mcmc by beast-dev.
the class PrecisionMatrixGibbsOperator method doOperation.
public double doOperation() {
if (wishartIsModel) {
setupWishartStatistics(priorModel);
}
final double[][] scaleMatrix = getOperationScaleMatrixAndSetObservationCount();
final double treeDf = numberObservations;
final double df = priorDf + treeDf * pathWeight;
// if (scaleMatrix[0][0] < 0.0) {
// System.err.println("ERROR");
// System.err.println(new Matrix(scaleMatrix));
// }
double[][] draw = WishartDistribution.nextWishart(df, scaleMatrix);
if (DEBUG) {
System.err.println("draw = " + new Matrix(draw));
}
for (int i = 0; i < dim; i++) {
Parameter column = precisionParam.getParameter(i);
for (int j = 0; j < dim; j++) column.setParameterValueQuietly(j, draw[j][i]);
}
precisionParam.fireParameterChangedEvent();
return 0;
}
use of dr.math.matrixAlgebra.Matrix in project beast-mcmc by beast-dev.
the class FactorTreeGibbsOperator method getMean.
double[] getMean(int column, double[][] precision) {
Matrix variance = (new SymmetricMatrix(precision)).inverse();
double[] midMean = new double[lfm.getLoadings().getColumnDimension()];
double[] condMean = getTreeMean(column);
double[][] condPrec = getTreePrec(column);
for (int i = 0; i < midMean.length; i++) {
// for (int j = 0; j < midMean.length; j++) {
midMean[i] += condPrec[i][i] * condMean[i];
// }
}
for (int i = 0; i < lfm.getLoadings().getRowDimension(); i++) {
for (int j = 0; j < lfm.getLoadings().getColumnDimension(); j++) {
if (missingIndicator == null || missingIndicator.getParameterValue(column * lfm.getScaledData().getRowDimension() + i) != 1)
midMean[j] += lfm.getScaledData().getParameterValue(i, column) * errorPrec.getParameterValue(i, i) * lfm.getLoadings().getParameterValue(i, j) * pathParameter;
}
}
double[] mean = new double[midMean.length];
for (int i = 0; i < mean.length; i++) {
for (int j = 0; j < mean.length; j++) {
mean[i] += variance.component(i, j) * midMean[j];
}
}
return mean;
}
use of dr.math.matrixAlgebra.Matrix in project beast-mcmc by beast-dev.
the class KernelDensityEstimator2D method main.
public static void main(String[] arg) {
double[] x = { 3.4, 1.2, 5.6, 2.2, 3.1 };
double[] y = { 1.0, 2.0, 1.0, 2.0, 1.0 };
KernelDensityEstimator2D kde = new KernelDensityEstimator2D(x, y, 4);
System.out.println(new Vector(kde.getXGrid()));
System.out.println(new Vector(kde.getYGrid()));
System.out.println(new Matrix(kde.getKDE()));
System.exit(-1);
}
use of dr.math.matrixAlgebra.Matrix in project beast-mcmc by beast-dev.
the class VarianceProportionStatistic method getReport.
@Override
public String getReport() {
Matrix mat = new Matrix(dimTrait, dimTrait);
for (int i = 0; i < dimTrait; i++) {
int offset = dimTrait * i;
for (int j = 0; j < dimTrait; j++) {
mat.set(i, j, getStatisticValue(offset + j));
}
}
StringBuilder sb = new StringBuilder();
sb.append("Variance proportion statistic: " + ratio.name());
sb.append("\n");
sb.append("stat value = ");
sb.append(mat);
sb.append("\n\n");
return sb.toString();
}
Aggregations