use of dr.math.distributions.NormalKDEDistribution in project beast-mcmc by beast-dev.
the class KDEDistributionTest method testNormalKDE.
public void testNormalKDE() {
int length = 100;
Double[] sample = new Double[length];
for (int i = 0; i < length; i++) {
sample[i] = (double) (i + 1);
}
// final int gridSize = 256;
NormalKDEDistribution kde = new NormalKDEDistribution(sample, null, null, null);
System.out.println("bw = " + kde.getBandWidth());
assertEquals(rBandWidth[0], kde.getBandWidth(), tolerance);
final int gridSize = NormalKDEDistribution.MINIMUM_GRID_SIZE;
double[] testPoints = new double[gridSize];
double x = kde.getFromPoint();
double delta = (kde.getToPoint() - kde.getFromPoint()) / (gridSize - 1);
for (int i = 0; i < gridSize; ++i) {
testPoints[i] = x;
x += delta;
}
System.err.println("Eval @ " + new Vector(testPoints));
double[] testDensity = new double[gridSize];
for (int i = 0; i < gridSize; ++i) {
testDensity[i] = kde.pdf(testPoints[i]);
}
System.err.println("Den " + new Vector(testDensity));
System.err.println("den[0] = " + testDensity[0]);
System.err.println("den[N] = " + testDensity[NormalKDEDistribution.MINIMUM_GRID_SIZE - 1]);
// System.exit(-1);
}
Aggregations