Regressionsmatrix < Sonstiges < Lineare Algebra < Hochschule < Mathe < Vorhilfe
|
Status: |
(Frage) reagiert/warte auf Reaktion | Datum: | 14:03 Di 21.08.2012 | Autor: | kappen |
Hallo liebe Leute, mir war nicht ganz klar, in welchen Bereich dieses Thema gehört, falls das hier falsch ist bitte verschieben :)
Es geht um folgendes: Ich habe einen Vektor mit analytischen Ausdrücken, abhängig von einigen konstanten Parametern und sich verändernden Parametern.
Die konstanten Parameter tauchen NICHT linear in dem Vektor auf, mein Ziel ist es aber, eine Regressionsmatrix und einen Parametervektor zu erstellen:
[math]
\boldsymbol{g}(\boldsymbol{q})=\boldsymbol{V}\boldsymbol{\Theta}
[/math]
Dabei ist g der vorhandene Vektor, q der Vektor der sich verändernden Parameter, bestehend aus [math]\boldsymbol{q}=\begin{pmatrix} q_1 \\ q_2 \\ q_3 \\ ... \\ q_6 \end{pmatrix}.[/math]
V soll die Regressormatrix sein, [mm] $\boldsymbol{\Theta}$ [/mm] der Parametervektor.
Nun besteht das Problem darin, neue Parameter einzuführen, die nur linear in [mm] $\boldsymbol{g}$ [/mm] auftauchen, nicht mehr als Kombination.
Bei kleinen Vektoren kann ich das per Hand machen, aber gibt es eine systematische Vorgehensweise? matlab/mupad ist vorhanden
Vielen Dank im Voraus :)
|
|
|
|
Hi,
> Hallo liebe Leute, mir war nicht ganz klar, in welchen
> Bereich dieses Thema gehört, falls das hier falsch ist
> bitte verschieben :)
>
> Es geht um folgendes: Ich habe einen Vektor mit
> analytischen Ausdrücken, abhängig von einigen konstanten
> Parametern und sich verändernden Parametern.
> Die konstanten Parameter tauchen NICHT linear in dem
> Vektor auf, mein Ziel ist es aber, eine Regressionsmatrix
> und einen Parametervektor zu erstellen:
>
> [mm]> \boldsymbol{g}(\boldsymbol{q})=\boldsymbol{V}\boldsymbol{\Theta}> [/mm]
> Dabei ist g der vorhandene Vektor, q der Vektor der sich
> verändernden Parameter, bestehend aus
> [mm]\boldsymbol{q}=\begin{pmatrix} q_1 \\
q_2 \\
q_3 \\
... \\
q_6 \end{pmatrix}.[/mm]
>
> V soll die Regressormatrix sein, [mm]\boldsymbol{\Theta}[/mm] der
> Parametervektor.
So ganz klar ist das nicht. Vielleicht kannst du es an einem Beispiel illustrieren.
Eine nichtlineare Funktion durch eine lineare Funktion auszudrücken ist i.A. sehr problematisch.
>
> Nun besteht das Problem darin, neue Parameter einzuführen,
> die nur linear in [mm]\boldsymbol{g}[/mm] auftauchen, nicht mehr als
> Kombination.
Du transformierst also die Eingabedaten bevor du eine lineare Regression durchführen möchtest?
Kannst du nicht die Einträge der Matrix V transformieren?
>
> Bei kleinen Vektoren kann ich das per Hand machen,
bei größeren sollte die Transformation (in Matlab) auch recht flott gehen.
> aber
> gibt es eine systematische Vorgehensweise? matlab/mupad ist
> vorhanden
In Matlab sind zwei Funktionen vorhanden:
lsqcurvefit
http://www.mathworks.de/help/toolbox/optim/ug/lsqcurvefit.html
lsqnonlin
http://www.mathworks.de/help/toolbox/optim/ug/lsqnonlin.html
>
> Vielen Dank im Voraus :)
Ist es eher eine theoretische Frage oder nun eher eine praktische (i.S.v. Umsetzung) Frage?
gruß
wieschoo
|
|
|
|
|
Status: |
(Frage) überfällig | Datum: | 15:40 Di 21.08.2012 | Autor: | kappen |
Hi, vielen Dank für die Antwort :)
> So ganz klar ist das nicht. Vielleicht kannst du es an
> einem Beispiel illustrieren.
>
> Eine nichtlineare Funktion durch eine lineare Funktion
> auszudrücken ist i.A. sehr problematisch.
Okay, ich probiere es, siehe unten.
> >
> > Nun besteht das Problem darin, neue Parameter einzuführen,
> > die nur linear in [mm]\boldsymbol{g}[/mm] auftauchen, nicht mehr als
> > Kombination.
>
> Du transformierst also die Eingabedaten bevor du eine
> lineare Regression durchführen möchtest?
> Kannst du nicht die Einträge der Matrix V transformieren?
>
Mir ist klar geworden, dass ich (noch) gar keine Regression vornehmen möchte. Das Problem ist eher ein Umformproblem. Die Elemente der Matrix V existieren nämlich noch nicht, genau die will ich ausrechnen.
>
> Ist es eher eine theoretische Frage oder nun eher eine
> praktische (i.S.v. Umsetzung) Frage?
Ich möchte momentan die theoretischen Grundlagen schaffen und später die Regression anhand von echten Messwerten durchführen. Aber so weit bin ich ja bei weitem noch nicht.
Ich versuche mal das Problem genauer zu beschreiben.
In dem Vektor g stehen z.B. solche Ausdrücke
[mm] $\boldsymbol{g}=\begin{pmatrix} a\cdot (b\cdot d + e) cos(x_1+x_2)+x_3\cdot c+d\cdot x_4\cdot sin(x_2) \\ b\cdot sin(x_1)+d\cdot b\cdot cos(x_2) \\ ... \end{pmatrix}$
[/mm]
Die Einträge sind jetzt willkürlich gewählt, aber die Form haut hin. Die Vektorelemente sind in echt länger.
[mm] $x_1 [/mm] .. [mm] x_6$ [/mm] sind die abhängigen, nicht konstanten Variablen, die später in der Matrix [mm] $\boldsymbol{V}$ [/mm] stehen sollen. a,b,c,d usw sind konstante Parameter, die hinterher in dem Parametervektor [mm] $\boldsymbol{\Theta}$ [/mm] stehen sollen.
Das große Problem ist halt jetzt, die konstanten Parameter irgendwie zu ersetzen, so dass in die Parameter (a,b,c...) in [mm] $\boldsymbol{g}$ [/mm] nur noch linear vorkommen. z.B.
[mm] $\boldsymbol{g}=\begin{pmatrix} p_1\cdot cos(x_1+x_2)+p_2\cdot x_3 \cdot sin(x_2) \\ ... \end{pmatrix}$
[/mm]
[mm] $p_i$ [/mm] ist dabei der neu eingeführte Parameter, bestehend aus (unter Umständen) Linearkombinationen der alten Parameter.
Dann kann ich nämlich durch partielles Ableiten meine Matrix V bestimmen.
Je mehr ich jetzt schreibe, desto eher merke ich, dass ich das Problem wohl durch geeignetes Ausklammern und Sortieren hinbekommen kann. Aber das muss maschinell erfolgen, denn der Vektor ist zu groß.
Ich denke das ist dann eher ein matlab spezifisches Problem. Werde mich in der Richtung umgucken. Oder habt ihr hier schon gute Ideen?
>
> gruß
> wieschoo
>
Vielen Dank + schöne Grüße
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 16:20 Do 23.08.2012 | Autor: | matux |
$MATUXTEXT(ueberfaellige_frage)
|
|
|
|