Thomas Plehn online

  • Increase font size
  • Default font size
  • Decrease font size

Regression Easy

E-mail Print PDF

 

http://sourceforge.net/projects/regressioneasy

regr

Regression Easy ist mit Visual Studio 2010 in C# programmiert. Daher ist das Microsoft .Net Framework 4.0 Client Profile erforderlich (http://www.microsoft.com/net). Außerdem ist die DLL Math-Dot-Net erforderlich, die ich der Einfachheit halber bei Sourceforge auf der Projektseite hinterlegt habe.

Eingegebene Funktion plotten

In der oberen Eingabezeile ist der Syntax wie in Excel, in der unteren Eingabezeile wird nur polnische Notation angenommen. Mit dem Button "to UPN" kann die obere Zeile in UPN konvertiert werden. Dies ist notwendig, weil aus Geschwindigkeitsgründen immer mit der UPN-Zeile gerechnet wird. Diese entweder direkt eingeben, oder durch konvertieren der oberen Zeile erzeugen. Funktionsargumente sind arg0, arg1, arg2, ... . Geplottet wird immer nach Argument arg0. immer nach dem Argument mit der Nummer, wie sie in "Plot by" steht, also z.B "0" für "arg0" (dies ist anders als bei der Visualisierung von Fits (s.u)). Den Wertebereich für den Plot kann man bei "von - bis" festlegen.

Eingegebene Funktion fitten, dann visualisieren

Bei "Vars" und "Params" lässt sich festlegen, welche Argumente Variablen bzw. Parameter der Regressionsmodells sind. Dafür geben Sie z.B. "1;2" für "arg1;arg2" an. Bei "Start" geben sie Startwerte für die Iterationen mit Levenberg Marquardt an, dies sollten genauso viele wie Parameter sein, durch Semikolon getrennt. "Plot by" kontrolliert hier, nach welcher Variable das Ergebnis visualisiert wird, geben Sie wieder z.B. "0" für "arg0" ein. Falsch! geben sie z.B "0" für das Plotten nach der 0-ten Dimension, "1" für das Plotten nach der 1-ten Dimension, usw. an (Dimensionszählung beginnt bei 0). Welche Variablen das dann sind, wird automatisch bestimmt. Im eindimensionalen Modell ist also immer "Plot by 0" richtig. Bei der Dateneingabe verwenden Sie immer eine Spalte mehr als Variablen verwendet werden, denn in der letzten Spalte steht der Funktionswert.

Hier ein Beispiel für Polynomregression mit einem Polynom 6. Grades (7 freie Parameter stellen die Koeffizienten da):

... und auch Regressionsmodelle, die nichtlinear in den Basisfunktionen sind, lassen sich fitten (hier beispielsweise ein exponentieller Zusammenhang mit drei freien Parametern), jedoch kommt es dann wesentlich auf die Startwerte an, die schon ungefähre Schätzungen sein sollten:

Außerdem lohnt es sich, bei derartigen Modellen am Dämpfungsparameter Lambda herumzuspielen. Ein grober Anhalt ist hier lambda=1, aber auch 0,1-5 sind teilweise hilfreich.

Beachte außerdem, dass bei den Modellen oberhalb die Dämpfung auf 0 geregelt wurde. Bei linearen Basisfunktionen verfälscht sie das Ergebnis.

und noch ein LOG-Fit (beachte, Lambda hat den Standardwert 1, der Log ist schon ungefähr skaliert mit 25):

Und noch ein Log-Fit, weil es so schön ist. (beachte, Lambda hat den Standardwert 1, der Log ist schon ungefähr skaliert mit 10)

Und noch eine ungewöhnliche Art, eine Parabel zu finden. Aber auch das konvergiert. Man beachte, das dies keine lineare Darstellung in den Basisfunktionen 1, x, x^2 ist.

test

Hier werden bald weitere Informationen erscheinen.

Last Updated on Saturday, 09 May 2015 17:03  

Stats

OS : Linux s
PHP : 5.3.3
MySQL : 5.5.54-38.6-log
Time : 20:27
Caching : Disabled
GZIP : Disabled
Members : 2
Content : 10
Web Links : 6
Content View Hits : 12073

Feedback

was ist auf dieser Seite am nützlichsten?