[beast-mcmc] r6731 committed - Fix debugging options and add simple test for KDE distribution.

0 views
Skip to first unread message

beast...@googlecode.com

unread,
Apr 10, 2015, 8:37:51 AM4/10/15
to beast-...@googlegroups.com
Revision: 6731
Author: bael...@gmail.com
Date: Fri Apr 10 12:37:38 2015 UTC
Log: Fix debugging options and add simple test for KDE distribution.
https://code.google.com/p/beast-mcmc/source/detail?r=6731

Modified:
/trunk/src/dr/math/distributions/LogTransformedNormalKDEDistribution.java

=======================================
---
/trunk/src/dr/math/distributions/LogTransformedNormalKDEDistribution.java
Fri Apr 10 09:27:25 2015 UTC
+++
/trunk/src/dr/math/distributions/LogTransformedNormalKDEDistribution.java
Fri Apr 10 12:37:38 2015 UTC
@@ -5,6 +5,8 @@
import dr.stats.DiscreteStatistics;
import dr.util.HeapSort;

+import java.util.Arrays;
+
/**
* @author Guy Baele
*/
@@ -291,7 +293,9 @@

for (int i = 0; i < finalXPoints.length; i++) {
finalDensityPoints[i] = linearApproximate(backupXPoints,
densityPoints, Math.log(finalXPoints[i]), 0.0, 0.0)*(1.0/finalXPoints[i]);
- System.out.println(finalXPoints[i] + " : " + finalDensityPoints[i]);
+ if (DEBUG) {
+ System.out.println(finalXPoints[i] + "\t" +
finalDensityPoints[i]);
+ }
}

//System.exit(0);
@@ -401,4 +405,31 @@
private double up;

private boolean densityKnown = false;
+
+ public static void main(String[] args) {
+
+ Double[] samples = new Double[10000];
+ NormalDistribution dist = new NormalDistribution(0.5, 0.10);
+ for (int i = 0; i < samples.length; i++) {
+ samples[i] = (Double)dist.nextRandom();
+ if (samples[i] < 0.0) {
+ System.err.println("Negative value generated!");
+ }
+ }
+ Arrays.sort(samples);
+ System.out.println("min: " + samples[0]);
+ System.out.println("max: " + samples[samples.length-1] + "\n");
+
+ LogTransformedNormalKDEDistribution ltn = new
LogTransformedNormalKDEDistribution(samples);
+ NormalKDEDistribution nKDE = new NormalKDEDistribution(samples);
+
+ for (int i = 0; i < 50; i++) {
+ Double test = (Double)dist.nextRandom();
+ System.out.println("random draw: " + test);
+ System.out.println("normal KDE: " + nKDE.evaluateKernel(test));
+ System.out.println("log transformed normal KDE: " +
ltn.evaluateKernel(test) + "\n");
+ }
+
+ }
+
}
Reply all
Reply to author
Forward
0 new messages