WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Statistic Toolbox - Eigene Regressionsmodelle

 

gigazwerg
Forum-Anfänger

Forum-Anfänger


Beiträge: 24
Anmeldedatum: 27.11.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.01.2009, 12:18     Titel: Statistic Toolbox - Eigene Regressionsmodelle
  Antworten mit Zitat      
Hi,

ich bin noch recht frisch was das Thema Matlab und die stat. Toolbox angeht und brauche mal eure Hilfe.

Ich habe 3 oder mehr Einflussparameter und eine Zielgröße und will jetzt herausfinden wie die Zusammenhängen. Mit der einfachen Regression (regress oder robustfit) ist das ja kein Problem, allerdings geht das ja immer nach der Formel

y = a*x1+b*x2+c*x3+d*x4....

Das will ich aber nicht. Ich möchte mir meine Lösungsformeln selber basteln. In meinem Fall mit 3 Parametern und einer Zielgröße soll die Formel folgendermaßen aussehen

y = a*x1*x2+x3^2

Jetzt weiß ich, dass ich dafür ein *.m file schreiben muss und dann z.B. in der Funktion robustfit die Möglichkeit habe über fun und tune (@*, * da muss der Dateiname von meinem File rein) diese Regression rechnen zu lassen. Nur klappt das ganz und gar nicht. Ich bekomme ständig Fehlermeldungen wie "nicht definiert", "X is rank deficient", "Error in starrobustfit", .... Shocked

Kann mir bitte jemand sagen was ich falsch mache? Ich will doch nur eine individuelle multivariate Analyse machen. Crying or Very sad

Danke

Sebastian
Private Nachricht senden Benutzer-Profile anzeigen


Helmert
Forum-Century

Forum-Century


Beiträge: 121
Anmeldedatum: 04.09.08
Wohnort: Karlsruhe
Version: 2011a
     Beitrag Verfasst am: 07.01.2009, 13:30     Titel:
  Antworten mit Zitat      
Hallo,
mit den Funktionen aus der Statistik-Toolbox kenne ich mich leider nicht so aus. Von daher weiß ich nicht, ob es für dein Problem eine nutzbare Funktion gibt.

Man kann das aber auch mit mäßigem Aufwand zu Fuß rechnen - zumindest dann, wenn allein y eine Zufallsgröße ist. Dabei braucht man allerdings Näherungswerte (a0, b0, ...) für die zu schätztenden Parameter, die dann iterativ verbessert werden können. Benötigt werden dann eine Matrix mit den partiellen Ableitungen der y nach den Parametern: [dy(i)_da,dy(i)_db,...]. Bei dem Beispiel

f(a,b,...) = y = a*x1*x2+x3^2

wäre das:

Code:

A = [ x1(1)*x2(1)
      x1(2)*x2(2)
      ...         ]
 


Weiterhin braucht man:

y0 = f(a0,b0,...)

und die Lösung ergibt sich zu:

p = p0 + A \ (y-y0)

wobei

p = [a;b;...]
p0 = [a0;b0;...].

Code:

y0 = a0*x1*x2+x3^2;
a = a0 + A \ (y-y0)
 


Hoffe, das hilft dir weiter ...
Private Nachricht senden Benutzer-Profile anzeigen
 
gigazwerg
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 24
Anmeldedatum: 27.11.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.01.2009, 16:08     Titel:
  Antworten mit Zitat      
Hi Helmert,

danke für deine Nachricht aber ich glaube wir reden aneinander vorbei.

y ist bei mir eine Zielgröße, allerdings auch eine Messgröße.

Nimm an ich habe folgende Eingabeparameter:

x1 = Blutdurck vom Mann
x2 = Fettgehalt vom Mann
x3 = Gewicht vom Mann
y = Alter vom Mann

All diese Werte sind gemessen und ich möchte jetzt herausfinden, wie Blutdruck, Fettgehalt und Gewicht mit dem Alter der Männer zusammenhängen. Dabei will ich keine multiple-lineare-Regression, sondern eine von mir erdachtes Regressionsmodell benutzen.

Dazu möchte ich mir ein *.m file schreiben, in dem eine vermutete Regressionsgleichung ist. Matlab soll mir dann die Koeffizienten dazu ausrechen.
Private Nachricht senden Benutzer-Profile anzeigen
 
Helmert
Forum-Century

Forum-Century


Beiträge: 121
Anmeldedatum: 04.09.08
Wohnort: Karlsruhe
Version: 2011a
     Beitrag Verfasst am: 08.01.2009, 08:35     Titel:
  Antworten mit Zitat      
Hallo gigazwerg,

ich denke schon, daß deine Regression so funktionieren würde, wie ich es beschrieben habe bzw. versucht habe zu beschreiben. Im Prinzip könnte man das auch in eine m-Datei schreiben, allerdings, die allerdings individuell für jedes erdachtes Regressionsmodell angepaßt werden müßte.
Private Nachricht senden Benutzer-Profile anzeigen
 
gigazwerg
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 24
Anmeldedatum: 27.11.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.01.2009, 16:45     Titel:
  Antworten mit Zitat      
Hi Helmert,

danke für deine Hilfe. Ich habe eine Lösung gefunden, die mich glücklich macht.

Ich habe ein *.m file geschrieben und dort lasse ich jetzt diverse Regressionsmodelle testen. Geht erstaunlich gut, wenn man einmal weiß wie oder in meinem Fall: einfach nur Glück hatte.

Danke trotzdem für deine Hilfe.
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.