Edit: Es sieht aus wie die Apache Commons Math library hat eine Statistik-Sektion. Genauer gesagt, ein ganzes Paket auf gemeinsamen Distributions. Hoffentlich gibt es Mathe-Leute da draußen, weil ich mich nicht an grundlegende Statistiken erinnern kann ... hier ist mein Versuch, ihre Bibliothek zu benutzen. Ich habe hier nur ein gleitendes Fenster und berechne das P zwischen diesen Werten. Was ist der richtige Weg, um daraus ein PDF zu erhalten? Sie haben nur eine CDF-Funktion.
public void testNormalDist() throws MathException {
DistributionFactory f = DistributionFactory.newInstance();
NormalDistribution n = f.createNormalDistribution(0.0d, 1.0d);
double lastx = Double.NEGATIVE_INFINITY;
double nextx = Double.NEGATIVE_INFINITY;
for (int i=-100; i < 100; i++) {
nextx = i/100d;
System.out.println(n.cumulativeProbability(lastx, nextx));
lastx = nextx;
}
}
Ich nehme an, Sie wollen die Wahrscheinlichkeit Dichtefunktion für das Diagramm. Die equations are on wikipedia, da ich nicht weiß, wie man Mathe Markup hier einbezieht. Verwenden Sie einfach p (x) als Y-Wert und X als X-Wert, und Sie können daraus eine ziemlich einfache 2-d-Grafik erstellen.
Haben Sie sich Mathtools under Java angesehen?
Ok, wie wäre es damit ... Sie geben ihm eine Reihe von X Punkten (normalisiert, natürlich, können Sie Ihre X Pixel zu diesen konvertieren, indem Sie jede Pixelposition durch die Breite Ihres Bildes teilen), und es wird gib die Höhen der Verteilungskurve zurück (multipliziere wiederum mit deinem Normierungsfaktor). Dies ist für den Grund Fall, in dem Mittelwert 0 und Standardabweichung ist 1.
public double[] normalDistBasic(double[] xarray, double mu) {
double[] yarray = new double[xarray.length];
double rad2pi = 2.50662827d;
for (int off = 0; off < yarray.length; off++) {
double x = xarray[off];
double ss = -1d * x * x/2d;
yarray[off] = (-1f/rad2pi) * Math.exp(ss);
}
return yarray;
}
Es soll ziemlich einfach sein, eine zu implementieren, die beliebige Mittelwert und Standardabweichung nimmt, wenn man nicht im Netz gefunden werden kann.
Haben Sie Probleme mit der Mathematik oder mit den Bibliotheken? – pyon
Nur Bibliotheken :) Ich könnte das selbst programmieren, aber das Rad nicht neu erfinden und Zeit verlieren;) – Seb