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

Design of Experiments - Nicht lineare multiple Regression

 

AxelEN
Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 08.05.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.05.2012, 10:45     Titel: Design of Experiments - Nicht lineare multiple Regression
  Antworten mit Zitat      
Hallo!

Folgendes Problem:
Zur Zeit arbeite ich an einem nicht-linearen 3-parametrigen DOE und möchte dieses (ohne den zusätzlichen Erwerb kostenpflichtiger Software, Matlab ist verfügbar) auswerten.

Der Versuchsplan des DOE hat 3 Parameter und ist aufgebaut wie das CCD (Central Composite Design --> spezieller Aufbau eines nicht-linearen Versuchsplans), das in Matlab hinterlegt ist. Letztenendes soll eine Funktion der Form

y=a0 + a1*A + a2*B + a3*C + a4*A*B + a5*A*C + a6*B*C + a7*A*B*C + a8*A² + a9*B² + a10*C²

dabei herauskommen.

Nun zu meinen zwei Fragen:

1.) Gibt es eine Möglichkeit in Matlab den entsprechenden Versuchsplan inklusive Ergebnisse zu hinterlegen und sich das ganze direkt auswerten zu lassen?

2.) Ist in Matlab eine Funktion hinterlegt, die mir bei Vorgabe der entsprechenden Tabellenwerte eine nicht-lineare, multiple Regression durchführt (das wäre ja sozusagen die AUswertung des Versuchsplans)? Funktionen für lineare multiple Regression und nicht-lineare Regression sind implementiert soweit ich weiß. Ich bräuchte halt beides zusammen Smile

Danke schonmal im Voraus für eure Hilfe!

Grüße
Private Nachricht senden Benutzer-Profile anzeigen


MaFam
Forum-Meister

Forum-Meister


Beiträge: 799
Anmeldedatum: 02.05.12
Wohnort: ---
Version: R2009b
     Beitrag Verfasst am: 08.05.2012, 11:07     Titel:
  Antworten mit Zitat      
Hallo,

zuvor was Grundsätzliches. Was sind jetzt genau die Parameter und was die Variablen? Wenn A,B,C die Variablen der Modellfunktion sind, davon gehe ich aus, so ist diese nicht-linear.
Die Parameter a_i werden gemäß den Daten innerhalb der Regression angepasst. Diese wirken aber linear auf das y(A,B,C), so dass letztlich das Regressionsproblem, so wie hier vorgestellt, in jedem Fall linear ist.

Ansonsten zu deinen Fragen:

zu 1. Könntest du das bitte näher ausführen. Was genau verstehst du unter einem "Versuchsplan", unter "hinterlegen" und unter "direkt auswerten"?

zu 2. Dazu solltest du zunächst meine anfänglichen Ausführungen bedenken.

Grüße, MaFam
Private Nachricht senden Benutzer-Profile anzeigen
 
AxelEN
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 08.05.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.05.2012, 11:21     Titel:
  Antworten mit Zitat      
Erst einmal danke für deine schnelle Antwort!

Also: Bzgl. deiner Vermutung hast du recht. A, B und C sind die Variablen und a,i die anzupassenden Parameter.

Nun zu deinen Rückfragen:
Versuchsplan ist ein Begriff aus dem DOE-Gebiet. Dieser beschreibt die einzelnen Eckpunkte des Versuchsraums und enthält für verschiedene Kombinationen von A, B und C die dabei herausgekommenen (in diesem Fall gemessenen) Werte von y.

Beispiel:

A B C / y
------------------
1 1 1 / 5
-1 1 1 / 3
1 -1 1 / -2
-1 -1 1 / 1
1 1 -1 / 9
-1 1 -1 / -1
1 -1 -1 / -2,5
-1 -1 -1 / -3

Die Tabelle ist ein typisches Beispiel für einen Versuchsplan, der linear auszuwerten ist. Lineare Auswertung geht recht einfach und kann man auch von Hand rechnen oder eben mit Excel. Leider muss ich in meinem Fall davon ausgehen, dass das Modell nicht-linear ist.

Meine Frage unter 1.) war, ob ich diesen Plan wie oben in Matlab beispielsweise in Matrizenform eingeben kann und Matlab mir dann eine Funktion gemäß einer bestimmten Auswertemethode (im Bereich des DOE gibt es verschiedene, die aber jeweils mit bestimmten Formen von Versuchsplänen verknüpft sind) ausgibt. Auf diesen Gedanken komme ich, da es in Matlab eben auch die Möglichkeit gibt, sich für einen bestimmte Anzahl an Variablen und eine bestimmte Form des Versuchsplans den Versuchsplan ausgeben zu lassen. In meinem Fall mit Hilfe des Befehls:

dCC = ccdesign(3,'type','circumscribed')
Private Nachricht senden Benutzer-Profile anzeigen
 
MaFam
Forum-Meister

Forum-Meister


Beiträge: 799
Anmeldedatum: 02.05.12
Wohnort: ---
Version: R2009b
     Beitrag Verfasst am: 08.05.2012, 11:37     Titel:
  Antworten mit Zitat      
Falls du die Statistics Toolbox hast, dann schau mal hier: http://www.mathworks.de/help/toolbox/stats/regress.html

Das ist allerdings eine Methode für die lineare Regression, was auch zu deiner Modellfunktion y passt! Dein Versuchsplan wird in x, Y aus regress(y,X) geschrieben, wobei x eine Matrix und y ein Vektor ist.

"b = regress(y,X) returns a p-by-1 vector b of coefficient estimates for a multilinear regression of the responses in y on the predictors in X. X is an n-by-p matrix of p predictors at each of n observations. y is an n-by-1 vector of observed responses."

Du schreibst jedoch, dass das Modell nicht-linear ist. Welche Form hat denn diese Modellfunktion?
Die Statistics Toolbox beherrscht ebenso nichtlineare Regression: http://www.mathworks.de/products/statistics/description4.html
Private Nachricht senden Benutzer-Profile anzeigen
 
AxelEN
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 08.05.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.05.2012, 11:42     Titel:
  Antworten mit Zitat      
Hmmm...wenn ich mir das so anschaue denke ich, dass es sich um ein Verständnis-Problem meinerseits gehandelt hat. Die Funktion sieht genauso aus, wie ich sie in meinem ersten Beitrag beschrieben habe. Ich habe gedacht, dass sich der Begriff nicht-linear auf die Variablen bezieht, aber offensichtlich irre ich mich hier Smile

So wie ich das sehe, muss ich ja nichts weiter machen wie die Zeile

X = [ones(size(x1)) x1 x2 x1.*x2];

gemäß meiner Funktion anzupassen bzw. zu erweitern. Werd ich gleich versuchen.

Vielen Dank für die Hilfe!
Private Nachricht senden Benutzer-Profile anzeigen
 
MaFam
Forum-Meister

Forum-Meister


Beiträge: 799
Anmeldedatum: 02.05.12
Wohnort: ---
Version: R2009b
     Beitrag Verfasst am: 08.05.2012, 11:45     Titel:
  Antworten mit Zitat      
Ja, deswegen schrieb ich im ersten Beitrag, dass man zwischen der Charakteristik der Modellfunktion und des Regressionsproblems unterscheiden muss. Idea

Dein y ist linear in den a_i!
Private Nachricht senden Benutzer-Profile anzeigen
 
AxelEN
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 08.05.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.05.2012, 11:52     Titel:
  Antworten mit Zitat      
Jop! Vielen Dank für die Hilfe nochmal. Hab's verstanden!
Private Nachricht senden Benutzer-Profile anzeigen
 
dotwinX
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 52
Anmeldedatum: 06.12.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.06.2012, 22:55     Titel:
  Antworten mit Zitat      
Kurze Frage: Wie plottest du das Ergebnis!??
Private Nachricht senden Benutzer-Profile anzeigen
 
AxelEN
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 08.05.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.06.2012, 07:30     Titel:
  Antworten mit Zitat      
Hi!

Eigentlich genauso wie in folgendem Link beschrieben:

http://www.mathworks.de/help/toolbox/stats/regress.html

Die Befehle musst du halt an Deine Anwendung anpassen Smile
Private Nachricht senden Benutzer-Profile anzeigen
 
dotwinX
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 52
Anmeldedatum: 06.12.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.06.2012, 15:55     Titel:
  Antworten mit Zitat      
Bei 2 Faktoren ist es klar, bei 3 wirds schwierig...
Private Nachricht senden Benutzer-Profile anzeigen
 
AxelEN
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 08.05.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.06.2012, 07:34     Titel:
  Antworten mit Zitat      
Ach du meinst bezogen auf das DOE. Naja, da wird's halt schwierig. Das ganze ist ja prinzipiell ein 4-dimensionaler Raum (3 Faktoren + Ergebnisgröße). Ich habe dann immer eine Größe 0 Gesetzt, d.h. das Ganze bezogen auf diese eine Größe dann im Mittelpunkt des DOE betrachtet. Dann hat man wieder ein 3-dimensionales Versuchsfeld und kann es im Koordinatensystem abbilden.
Private Nachricht senden Benutzer-Profile anzeigen
 
dotwinX
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 52
Anmeldedatum: 06.12.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.06.2012, 12:04     Titel:
  Antworten mit Zitat      
*Kopf gegen die Wand hau*
jap! danke!

Edit:
Daher nutze ich auch nun die Funktionen aus der Statistic Toolbox:
"rstool" für lineare Regressionsprobleme und "nlintool" für nichtlineare Regressionsprobleme.

Bei nlintool verstehe ich nur nicht ganz was für eine Art von Ansatzfkt. er möchte. Ich habe 3 Faktoren: A, B, C und eine Zielgröße Y:

Code:
nlintool([A_full; B_full; C_full]',Y',model_nonlin,a_start)


in "model_nonlin" müssten ja x(1), x(2) und x(3) stecken. Bei den Variablen a kann ich doch soviele verwenden wie ich möchte, oder?

Code:

model_nonlin3d = @(a,x)...
    (a(1) +...
    a(2).*exp(-a(3).*x(1)) +...
    a(4).*exp(-a(5).*x(2)) +...
    a(6).*exp(-a(7).*x(3)));
 


Will nicht funktionieren...

---
Bei 2D-Regression mit nur einem x klappt es:
Code:

model_nonlin = @(a,x)(a(1) + a(2)*exp(-a(3)*x))
nlintool(A_Full,Y_A,model_nonlin,a_start)
 
Private Nachricht senden Benutzer-Profile anzeigen
 
dotwinX
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 52
Anmeldedatum: 06.12.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.06.2012, 12:29     Titel:
  Antworten mit Zitat      
Meine Güte, ich bin nicht auf der Höhe!
Natürlich klappt es mit:

Code:
model_nonlin3d = @(a,x)...
    (a(1) +...
    a(2).*exp(-a(3).*x(:,1)) +...
    a(4).*exp(-a(5).*x(:,2)) +...
    a(6).*exp(-a(7).*x(:,3)));


Sorry für Spamming ...
Private Nachricht senden Benutzer-Profile anzeigen
 
Käthe

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.09.2012, 11:54     Titel: ähnliches Problem
  Antworten mit Zitat      
Hallo ihr Lieben,
ich hab ein sehr ähnliches Problem, wie es am Anfang beschrieben ist.
ich bin relativ neu in Matlab und bräuchte dringend Hilfe. Im Rahmen meiner Masterarbeit habe ich Messwerte aufgenommen, die ich nun korrelieren muss: u, R, T

meine Ausgleichskurve sollte wie folgt aussehen:

u(R,T)=((a*T)+b)*exp(((c*T)+d)*R+((e*T)+f))+(g*R^2)+((h*T)+i)

Wie bekomme ich denn nu über Matlab meine Regressionskoeffizienten a-i heraus?
Da ich schon sehr verzweifelt bin, wäre ich über Hilfe echt dankbar!

Liebe Grüße

Käthe
 
roadrunner_ac
Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 13.08.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.10.2014, 19:03     Titel: Vielleicht hilft das
  Antworten mit Zitat      
http://www.mathworks.de/help/stats/design-of-experiments-1.html
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 - 2025 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.