Search in sources :

Example 31 with Matrix

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]));
    }
}
Also used : SymmetricMatrix.compoundCorrelationSymmetricMatrix(dr.math.matrixAlgebra.SymmetricMatrix.compoundCorrelationSymmetricMatrix) SymmetricMatrix(dr.math.matrixAlgebra.SymmetricMatrix) Matrix(dr.math.matrixAlgebra.Matrix) IllegalDimension(dr.math.matrixAlgebra.IllegalDimension) SymmetricMatrix.compoundCorrelationSymmetricMatrix(dr.math.matrixAlgebra.SymmetricMatrix.compoundCorrelationSymmetricMatrix) SymmetricMatrix(dr.math.matrixAlgebra.SymmetricMatrix)

Example 32 with Matrix

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;
}
Also used : SymmetricMatrix(dr.math.matrixAlgebra.SymmetricMatrix) Matrix(dr.math.matrixAlgebra.Matrix) Parameter(dr.inference.model.Parameter) MatrixParameter(dr.inference.model.MatrixParameter)

Example 33 with Matrix

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;
}
Also used : SymmetricMatrix(dr.math.matrixAlgebra.SymmetricMatrix) Matrix(dr.math.matrixAlgebra.Matrix) SymmetricMatrix(dr.math.matrixAlgebra.SymmetricMatrix)

Example 34 with Matrix

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);
}
Also used : Matrix(dr.math.matrixAlgebra.Matrix) Vector(dr.math.matrixAlgebra.Vector)

Example 35 with Matrix

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();
}
Also used : Matrix(dr.math.matrixAlgebra.Matrix)

Aggregations

Matrix (dr.math.matrixAlgebra.Matrix)51 SymmetricMatrix (dr.math.matrixAlgebra.SymmetricMatrix)17 Vector (dr.math.matrixAlgebra.Vector)15 IllegalDimension (dr.math.matrixAlgebra.IllegalDimension)14 SymmetricMatrix.compoundCorrelationSymmetricMatrix (dr.math.matrixAlgebra.SymmetricMatrix.compoundCorrelationSymmetricMatrix)7 NodeRef (dr.evolution.tree.NodeRef)6 MultivariateNormalDistribution (dr.math.distributions.MultivariateNormalDistribution)5 WishartSufficientStatistics (dr.math.distributions.WishartSufficientStatistics)4 Parameter (dr.inference.model.Parameter)3 DoubleMatrix1D (cern.colt.matrix.DoubleMatrix1D)2 DoubleMatrix2D (cern.colt.matrix.DoubleMatrix2D)2 DenseDoubleMatrix2D (cern.colt.matrix.impl.DenseDoubleMatrix2D)2 Tree (dr.evolution.tree.Tree)2 MatrixParameter (dr.inference.model.MatrixParameter)2 RobustEigenDecomposition (dr.math.matrixAlgebra.RobustEigenDecomposition)2 WrappedMatrix (dr.math.matrixAlgebra.WrappedMatrix)2 BranchRates (dr.evolution.tree.BranchRates)1 MutableTreeModel (dr.evolution.tree.MutableTreeModel)1 CompoundSymmetricMatrix (dr.inference.model.CompoundSymmetricMatrix)1 CorrelationSymmetricMatrix (dr.inference.model.CorrelationSymmetricMatrix)1