quadratische regressions-funktion

Neue Frage »

thomas a. anderson Auf diesen Beitrag antworten »
quadratische regressions-funktion
hallo,

ich habe jetzt schon einiges gesucht zum thema regressions-funktion mit quadratischem ansatz. ich bin leider nicht so firm in formeln lesen und hab auch sonst nicht so viel ahnung davon.
ich möchte ein programm schreiben, das für bestimmte wertepaaren eine regressions-funktion aufstellt, damit man interpolieren und voraussagen für bestimmte x treffen kann.
wie gehe ich da vor? was muss ich schritt für schritt berechnen? eine lineare regressions-gerade kann ich aufstellen, aber bei der quadratischen blicke ich nicht durch.

angenommen ich habe folgende wertepaare:
_x____ y_
24____250
27____260
30____290
31____320
33____370
34____400


nicht sehr aussagekräftig, aber es geht ja nur ums prinzip. kann mir jemand halbwegs verständlich erklären, wie ich jetzt vorgehen muss?

vielen dank schon mal im voraus,
thomas a. anderson
Zahlenschubser Auf diesen Beitrag antworten »
RE: quadratische regressions-funktion
Hallo!

Ohne ein wenig Formeln kommen wir leider nicht aus - ist schließlich ein Matheforum! smile

Ich nehme an, du möchtest eine Regressionsgerade der Form aufstellen? Dann ist es ganz einfach, wenn du weißt, wie lineare Einfachregression funktioniert. Du quadrierst einfach alle und verwendest diese neue Variable in deiner Regression - fertig. Wenn du allerdings und gleichzeitig in deiner Regressionsparabel verwenden möchtest, wird es schon ein Stückchen komplizierter. Ich lasse es erstmal aus, wenn du es brauchst, meld dich noch einmal. Und sag mir dann auch bitte direkt, ob du es in Matrizenschreibweise haben willst oder in Summennotation. (Wobei ich ersteres streng bevorzugen würde!)

NB: Mit interpolierten Werten lasse ich gerne mit mir reden, sofern oder andere Gütemaße eine gute Anpassung deiner Daten erkennen lassen. Bei extrapolierten Werten (deinen Voraussagen) werde ich immer sehr vorsichtig. Nur das ein Zusammenhang in dem bisher erkannten Bereich linear oder quadratisch ist, heißt absolut gar nichts über den Bereich darüber hinaus!
thomas a. anderson Auf diesen Beitrag antworten »

Hallo,

also welche Form(el) die Funktion hat/haben soll kann ich mit meinem Wissen nicht sagen unglücklich
Letztendlich soll aber keine Gerade sondern halt eine Parabel (eben quadratische Funktion) Beispiel herauskommen. Von daher gehe ich mal davon aus, dass ich deine zweite Version mit und brauche. Das sieht dann so aus, nehme ich an:
(wie auch immer man dieses tolle Dach über dem y in LaTeX macht)
c ist bei mir gleich 0. Das kann ich schon mal mit Sicherheit sagen. Vielleicht vereinfacht das die ganze Sache ein bisschen.
Und die Schreibweise!? Von mir aus gerne Matizenschreibweise. Hauptsache ich kann das nachher in einem Programm umsetzen.

mfg, t.a.a.
thomas a. anderson Auf diesen Beitrag antworten »

LaTeX ist cool Augenzwinkern
mYthos Auf diesen Beitrag antworten »



In diese Funktion setzt du nun drei relevante Wertepaare und erhältst somit ein lin. Gl. System in den drei Variablen a, b, c

Wie diese quadratische Funktion (Parabel) aussieht, kannst du in EXCEL recht gut sehen (falls du dieses Programm auf deiner Maschine hast). Zu der Messtabelle erstellst du zunächst ein Diagramm (Typ XY, Linie). Danach kann dazu eine Trendlinie (Typ polynomisch) erstellt werden. Das Ganze in ca. 5 Minuten.

mY+
thomas a. anderson Auf diesen Beitrag antworten »

Hallo,
vielen Dank schon mal für die Antwort.

Leider habe ich einen ganzen Haufen solcher Werte, der in einer Datenbank stetig wächst.
Speziell geht es hier um die Abschätzung von Laufzeiten von Anfragen an die Datenbank.
Mein Programm schätzt (bevor die Anfrage abgeschickt wird) die Laufzeit (zB 3 Sekunden), dann wird die Abfrage abgeschickt und die tatsächliche Dauer gemessen (zB 12 Sekunden). Dann werden die beiden Werte in der Datenbank gespeichert. x=3 y=12
Das wiederholt sich und ergibt viele Wertepaare.
Um meine Abschätzung besser zu machen (3 ist weit weg von 12) möchte ich mit meinem Programm die Regressionskurve für diese Werte bestimmen, um dann zukünftige Schätzungen anhand dieser Kurve bestimmen.
Durch neue Werte verändert sich natürlich auch wieder die Kurve, etc.

Ich möchte also nicht die Funktion eines Programmes (Excel oder so) benutzen, sondern sie selbst implementieren. Dafür muss ich verstehen, wie das ganze funktioniert.

In einem anderen Thread habe ich schon mal das gefunden:


Angenommen ich habe die Werte

X = 1, 3, 5, 7
Y = 2, 7, 14, 20

Wenn ich das richtig verstehe, dann muss ich meine Werte in die Formeln einsetzen:

Dann transoponiere ich X, multipliziere die Transponierte wiederum mit der der Originalen X, dann bilde ich davon die Inverse und multipliziere diese nochmal mit der Transponierten. Dann das Ergebnis noch mit dem Vektor y multiplizieren uns schon habe ich meine beiden Werte a und b in Theta!?

Ist das so oder hab ich das alles falsch verstanden?

taa

ps: was bedeutet das dach über einem Buchstaben?
 
 
Zahlenschubser Auf diesen Beitrag antworten »

Tadellose Matrixnotation! Freude

Genauso ist es. Je nach Software, müsstest du allerdings die Rechnung ggf. ausschreiben in Summennotation und über eine Schleife lösen.

Das Dach bedeutet nichts anderes, als das es sich um einen Schätzwert handelt (statistisch gesehen eine Zufallsvariable mit einer Verteilung).

Allerdings möchte ich meinen Einwand wiederholen, dass deine Regression evtl. nicht sonderlich theoretisch fundiert ist und vielleicht keine quadratische Funktion, sondern z. B. eine exponentielle hermüsste.
mYthos Auf diesen Beitrag antworten »

verwirrt

Wie soll das praktisch funktionieren? Rechne das doch mal mit ein paar Zahlenwerten durch. Matrizen kann man nur dann multiplizieren, wenn die Anzahl der Zeilen in der ersten gleich der Anzahl der Spalten in der zweiten ist.

Dies scheint hier nicht der Fall bzw. bedeutet die Matrixgleichung aus dem anderen Thread etwas völlig anderes! Das lin. Gl. Syst. in a, b ist ja dann ausserdem überbestimmt.

Belehrt mich ggf. bitte eines Besseren Big Laugh

verwirrt
thomas a. anderson Auf diesen Beitrag antworten »

Seeehr gut!Augenzwinkern

Wie würde das dann in Summenschreibweise ausssehen?

Ich mache mir halt gerade Gedanken über die Umsetzung. Also Transponieren ist ja einfach und das Multiplizieren bekomme ich auch hin, aber das Invertieren!? Wie löst man das am besten in einem Programm?

Bezüglich deines Einwandes:
Herr Papula (8. Auflage, Kapitel 5.1, Seite 301) bietet da eine Potenzfunktion der Form

und eine Exponentialfunktion der Form


1) geht ja immer durch den Punkt (1|1) und 2) den Punkt (0|1). Das ist nicht so zweckmäßig, oder?
Wie geht man denn dann vor, wenn man eine der Funktionen linearisiert hat?

@mYthos: Stimmt! ergibt eine 2x2 Matrix. Die mit der Transponierten multiplizieren wird schwer. Aber wie geht es dann?
AD Auf diesen Beitrag antworten »

@mYthos



ist völlig korrekt - auch dimensionsmäßig, was die Matrixmultiplikation betrifft. Vielleicht hast du das eine oder andere Transponiertzeichen übersehen.

Zitat:
Original von thomas a. anderson

und eine Exponentialfunktion der Form


1) geht ja immer durch den Punkt (1|1) und 2) den Punkt (0|1). Das ist nicht so zweckmäßig, oder?

Nein, schau nochmal genau hin:

1) geht durch den Punkt (1|a), und 2) durch den Punkt (0|a). Was ist daran nicht zweckmäßig?
thomas a. anderson Auf diesen Beitrag antworten »

Okay, ich glaube ich habe da ein a übersehen.. Arthur, du hast natürlich Rechtmit deinen Punkten, die das a berücksichtigen.

Aber bei den Matrixoperationen bin ich jetzt verwirrt:

Bei 42 Messwerten, habe ich für X eine 42x2 Matrix, transponiert ist das eine 2x42 Matrix. Wenn ich die dann multipliziere kommt eine 2x2 Matrix raus. Und die müsste ich wieder mit einer 2x42 Matrix mal nehmen, was mit meinem bisherigen Wissensstand nicht möglich ist.

verwirrt verwirrt
thomas a. anderson Auf diesen Beitrag antworten »

Vielleicht brauche ich die Matrizen ja auch gar nicht, wenn ich eine Exponentialfunkton nehme.
Zitat:
Original von Papula
Exponentialfunktion :


Mit z = ln(y) und c = ln(a) erhalten wir die Gerade z = bx + c


Das heisst:
  • Ich mache mir einfach eine Regressionsgerade z = bx + c nach dem ganz normalen Verfahren für Regressionsgeraden
  • Dann ist ja c = ln(a) also ist a = e^c. Damit hätte ich dann z = bx + a
  • Da gebe ich mein x raus und bekomme ein z heraus, dass ich dann in y = e^z einsetze um mein finales y zu bekommen.

Geht man so vor?
thomas a. anderson Auf diesen Beitrag antworten »

Guten Morgen...

Kann mir da vielleicht noch mal jemand weiterhelfen? Ich versteh's nicht so ganz.

1) Wie soll diese Multiplikation funktionieren?

Das mit den Dimensionen kann meiner Meinung nach ja nicht stimmen

2) Wie berechne ich mir die Faktoren einer Exponentialfunktion?

Eine lineare kann ich aufstellen. Die hat dann die Form

aber wie komme ich dann auf die Exponentialfunktion?

Dankbar für jede Hilfe,
taa
Gnu Auf diesen Beitrag antworten »

Guten Morgen,

1.

Passt schon alles zusammen smile

2.

Also Deine untere Funktion. Du machst lineare Regression mit ln(y) statt y und erhältst einen Achsenabschnitt und eine Steigung. Danach berechnest Du "e^intercept" - das ist Dein a im Modell . Den Wert der Steigung kannst Du einfach für b übernehmen.
thomas a. anderson Auf diesen Beitrag antworten »

Super, vielen Dank!

1) Also mir wurde in der Schule gesagt, Matrixmultiplikationen seien nicht kommutativ, ergo immer von links nach recht multiplizieren. Nach dieser Regel ist die Formel doch falsch und sollte vielmehr heißen:


2) Noch mal mit meinen Worten, um zu sehen ob ich das gecheckt habe:
Erst ersetze ich alle meine y-Werte durch ln(y) und rechne mit denen weiter, als wenn es mein normales y wäre. Dann erstelle ich meine lineare Regressionsgerade und erhalte die Steigung b und den Achsenabschnitt a. An b verändere ich nicht und a ersetze ich durch e^a. Mit dem alten b und dem neuen a habe ich dann meine fertige Exponentialfunktion


OK?
Gnu Auf diesen Beitrag antworten »

1. Matrixmultiplikation ist in der Regel auch nicht kommutativ, jedoch immer assoziativ. Wir nutzen hier keine Kommutativität aus.

2. Korrekt!
thomas a. anderson Auf diesen Beitrag antworten »

Top!
Vielen Dank euch allen.

Eine letzte Frage:
Bei einer Regressionsparabel kann es ja passieren, dass der Scheitelpunkt unterhalb der x-Achsel liegt. Das darf natürlich nicht sein: Meine Antwortzeiten müssen ja immer positiv sein. (Wie) kann man das verhindern? Oder muss ich dann eine Exponentialfunktion nehmen, damit das nicht passiert?
Mr. Gecko Auf diesen Beitrag antworten »

Ich hole diesen Thread mal für meine Frage hervor...

Wie würde das mit der Regression bei aussehen?
Neue Frage »
Antworten »



Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »