Trend-Linien ( regression, Kurvenanpassung) java-Bibliothek
Ich versuche eine Anwendung zu entwickeln, würde die Berechnung der trend-Zeilen, die excel unterstützt, aber für größere Datenmengen.
Aber ich bin nicht in der Lage ist, um jede java-Bibliothek, die berechnet solche Regressionen. Für das Modell linera ich bin mit Apache Commons math, und für die anderen gab es eine große numerische Bibliothek von Michael Thomas Flanagan, aber seit Januar ist es nicht mehr verfügbar ist:
http://www.ee.ucl.ac.uk/~mflanaga/java/
Kennen Sie andere Bibliotheken, code-repositories für die Berechnung dieser Regressionen in java. Am besten,
Warum nicht Rollen Sie Ihre eigenen? Zumindest ist die Mathematik sorta einfach zu code, richtig? IOW
What have you tried?
InformationsquelleAutor Fgblanch | 2013-07-11
Du musst angemeldet sein, um einen Kommentar abzugeben.
Da Sie alle basieren auf linearen passt, OLSMultipleLinearRegression ist alles was Sie brauchen für lineare, polynomiale, exponentielle, logarithmische und macht Trendlinien.
Ihre Frage gab mir eine Ausrede, um downloaden und spielen Sie mit den commons math regression tools, und ich zusammen einige trend-line tools:
Schnittstelle:
Eine abstrakte Klasse für regression-based-Trendlinien:
Implementierung zu einem Polynom oder lineare Modelle:
(Für lineare Modelle) stellen Sie den Grad, zu 1 beim Aufruf des Konstruktors.)
Exponential-und power-Modelle sind noch einfacher:
(Hinweis: wir sind Vorhersage log y nun-das ist wichtig. Beide eignen sich nur für positive y -)
und
Und ein log-Modell:
(Was nimmt der Logarithmus von x, sondern prognostiziert y, nicht ln y)
Und Sie können es verwenden, wie diese:
Da Sie nur wollten Trendlinien, verwarf ich den ols-Modellen, wenn ich fertig war mit Ihnen, aber möchten Sie vielleicht einige Daten über die Güte der Anpassung, etc.
Für Implementierungen mit gleitender Mittelwert, gleitender median, etc, wie es aussieht, können Sie kleben mit den commons math. Versuchen DescriptiveStatistics und geben Sie sich ein Fenster. Möchten Sie vielleicht tun einige Glättung durch interpolation wie bereits in einer anderen Antwort.
Ich habe versucht deinen code gut, aber ich wollte nur wissen, wie zu zeichnen eine Trendlinie einmal, wenn ich array von Y eine Andere Sache ist, ist es nur für y= x2 + const Gleichung oder kann ich in der Lage, ändern Sie es auf meine Gleichung sagen y=4x2+3x+6.4.
Ja, ein
TrendLine
erstellt mitPolyTrendLine(2)
wird die Schätzung von Koeffizienten füry=b0+b1*x+b2*x^2
. Schauen Sie genau einexVector
und du wirst sehen, dass es verwendet x^0, x^1, ... x^k als Schätzer für k-Grad-regression.einfach durch Aufruf von main() zeichnet die Linie auf die Grafik? Ich habe versucht Stück code in der onCreate (), aber es wird nicht alles zeichnen auf meine Benutzeroberfläche. Sehen Sie bitte meine Frage stackoverflow.com/questions/22808204/...
fantastische Antwort. Dank einem Haufen. Ich werde stehlen diese..
InformationsquelleAutor maybeWeCouldStealAVan
Können Sie verschiedene Arten von interpolatoren verfügbar in
org.apache.commons.math3.analysis.interpolation
, einschließlich z.B., LinearInterpolator, LoessInterpolator und NevilleInterpolator.InformationsquelleAutor Alexander Serebrenik
Zusätzlich zu dem, was maybeWeCouldStealAVa sagte;
Commons-math3-Bibliothek ist auch verfügbar in der maven-repository.
Aktuelle version ist 3.2 und die dependency-tag:
InformationsquelleAutor Martin Åberg