use of dr.math.distributions.MultivariateDistribution in project beast-mcmc by beast-dev.
the class ManyUniformGeoDistributionModelParser method parseXMLObject.
public Object parseXMLObject(XMLObject xo) throws XMLParseException {
List<GeoSpatialDistribution> distributions = new ArrayList<GeoSpatialDistribution>();
List<Parameter> parameters = new ArrayList<Parameter>();
List<Likelihood> oldLikelihood = new ArrayList<Likelihood>();
for (int i = 0; i < xo.getChildCount(); ++i) {
Object cxo = xo.getChild(i);
MultivariateDistributionLikelihood ab = null;
if (cxo instanceof MultivariateDistributionLikelihood) {
ab = (MultivariateDistributionLikelihood) cxo;
} else if (cxo instanceof CachedDistributionLikelihood) {
ab = (MultivariateDistributionLikelihood) ((CachedDistributionLikelihood) cxo).getDistributionLikelihood();
}
if (ab != null) {
parameters.add(ab.getDataParameter());
MultivariateDistribution md = ab.getDistribution();
oldLikelihood.add((Likelihood) cxo);
if (md instanceof GeoSpatialDistribution) {
distributions.add((GeoSpatialDistribution) md);
} else {
throw new XMLParseException("Unhandled distribution type in '" + xo.getId() + "'");
}
}
}
return new ManyUniformGeoDistributionModel(xo.getId(), parameters, distributions, oldLikelihood);
}
use of dr.math.distributions.MultivariateDistribution in project beast-mcmc by beast-dev.
the class GMRFSkyrideFixedEffectsGibbsOperatorParser method parseXMLObject.
public Object parseXMLObject(XMLObject xo) throws XMLParseException {
double weight = xo.getDoubleAttribute(MCMCOperator.WEIGHT);
GMRFSkyrideLikelihood gmrfLikelihood = (GMRFSkyrideLikelihood) xo.getChild(GMRFSkyrideLikelihood.class);
MultivariateDistributionLikelihood likelihood = (MultivariateDistributionLikelihood) xo.getChild(MultivariateDistributionLikelihood.class);
MultivariateDistribution prior = likelihood.getDistribution();
if (prior.getType().compareTo(MultivariateNormalDistribution.TYPE) != 0)
throw new XMLParseException("Only a multivariate normal distribution is conjugate for the regression coefficients in a GMRF");
Parameter param = (Parameter) xo.getChild(Parameter.class);
return new GMRFSkyrideFixedEffectsGibbsOperator(param, gmrfLikelihood, prior, weight);
}
Aggregations