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

Graphische Auswertung einer RSM mit 5 Parametern

 

JulesMB
Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 09.10.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.10.2012, 17:42     Titel: Graphische Auswertung einer RSM mit 5 Parametern
  Antworten mit Zitat      
Hallo,

ich habe eine RSM erstellt mit 5 Parametern und möchte nun eine graphische Auswertung davon machen. Hierfür habe ich versucht ein Beispiel aus der Matlab Hilfe auf meine Bedürfnisse anzupassen (unter Statistics Toolbox\User's Guide\Parametric Regression Analysis\Linear Regression, bzw. durch Suche nach "response surface models"):

Code:

% Importieren der Daten für die RSM
data = xlsread('Auswertung.xlsx')
data(:,1) = [];
X = data(:, [1:3, 5:6]);
Y = data(:, 7);

x1 = X(:,1);
x2 = X(:,2);
x3 = X(:,3);
x4 = X(:,4);
x5 = X(:,5);

xx1 = linspace(min(x1), max(x1), 25);
xx2 = linspace(min(x2), max(x2), 25);
xx3 = linspace(min(x3), max(x3), 25);
xx4 = linspace(min(x4), max(x4), 25);
xx5 = linspace(min(x5), max(x5), 25);

% Durchführung der RSM via regstats
structRegstats = regstats(Y, X, 'quadratic', 'beta');
b = structRegstats.beta;
dm = x2fx(X, 'quadratic');
t = dm * b;

% Erstellen eines 3D-Plots mit 3 Variablen als x,y,z und
% der Antwort y als 'Farbe'
[X1, X2, X3] = meshgrid(xx1, xx2, xx3);
model = scatter3(X1(:), X2(:), X3(:), 5, t(:), 'filled');
punkte = scatter3(x1, x2, x3, 'ko', 'filled');
 


Bei 3 Variablen funktioniert das aber bei 5 weiß ich nicht wie ich das umsetzen kann. Im weiteren Text bei der Hilfe gibts es noch einen kurzen Absatz, was man denn tun kann, wenn man mehr als 3 Variablen hat, allerdings nur mit einer Erklärung wie ich es 2-dimensional darstellen kann (die ich im übrigen auch nicht auf mein 5-parametrisches-Problem anwenden konnte). Ich hätte aber gerne eine 3-dimensionale Darstellung, in der ich entweder:
- 2 Variablen festhalte und dann den Plot erstellen lasse so wie oben
- oder 3 Variablen festhalte und dann in meinem 3D-Plot die übrigen 2 Variablen als x und y hernehme und meine Antwort als z, so dass ich dann eine Oberfläche abgebildet bekomme.

Ich hoffe ihr versteht was ich meine und habt eine Idee die mir weiterhelfen würde!

Schonmal vielen Dank für eure Hilfe!
Private Nachricht senden Benutzer-Profile anzeigen


JulesMB
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 09.10.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.10.2012, 18:07     Titel:
  Antworten mit Zitat      
Ich nochmal. Ich habe nun den Code folgendermaßen geändert:
Code:

% Importieren der Daten für die RSM
data = xlsread('Auswertung.xlsx');
data(:,1) = [];
X = data(:, [1:3, 5:6]);
Y = data(:, 7);

x1 = X(:,1);
x2 = X(:,2);
x3 = X(:,3);
x4 = X(:,4);
x5 = X(:,5);

xx1 = linspace(min(x1), max(x1), 25);
xx2 = linspace(min(x2), max(x2), 25);
xx3 = linspace(min(x3), max(x3), 25);
xx4 = linspace(min(x4), max(x4), 25);
xx5 = linspace(min(x5), max(x5), 25);

% Durchführung der RSM via regstats
structRegstats = regstats(Y, X, 'quadratic', 'beta');
b = structRegstats.beta;

% Erstellen eines 3D-Plots mit 3 Variablen als x,y,z und der Antwort y als 'Farbe'
[X1, X2, X3] = meshgrid(xx1, xx2, xx3);
t = b(1) + b(2)*X1 + b(3)*X2 + b(4)*X3 +  b(7)*X1.*X2 +  b(8)*X1.*X3 +  b(11)*X2.*X3 +  b(17)*X1.^2 +  b(18)*X2.^2 +  b(19)*X3.^2;
model = scatter3(X1(:), X2(:), X3(:), 5, t(:), 'filled');
hold on;
punkte = scatter3(x1, x2, x3, 'ko', 'filled');
 


Jetzt kommt etwas dabei heraus, aber leider etwas falsches, da nun negative Werte entstehen aufgrund der Regressionskoeffizienten beta.

Und dann bleibt die Frage wie ich es machen kann, dass ich die Antwort y über 2 Variablen auftrage und mir hier eine Oberfläche ausgeben lasse, die ich über meine RSM berechnet habe. Geht das überhaupt?

Vielen Dank schonmal für eure Hilfe!
Private Nachricht senden Benutzer-Profile anzeigen
 
JulesMB
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 09.10.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.10.2012, 11:28     Titel:
  Antworten mit Zitat      
Problem Nr 1 gelöst (3 Parameter festhalten, Antwort über restlichen 2 Parameter ausgeben):

Code:

data = xlsread('Auswertung.xlsx');
data(:,1) = [];
X = data(:, [1:3, 5:6]);
Y = data(:, 7);

X1 = X(:,1);
X2 = X(:,2);

rsm = regstats(Y, X, 'quadratic', 'beta');
b = rsm.beta;

X3 = 2125;
X4 = 350000;
X5 = 5;

hold on;

tf = @(X1,X2) (b(1) + b(2)*X1 + b(3)*X2 + b(4)*X3 + b(5)*X4 + b(6)*X5 + ...
    b(7)*X1.*X2 + b(8)*X1.*X3 + b(9)*X1.*X4 + b(10)*X1.*X5 + ...
    b(11)*X2.*X3 + b(12)*X2.*X4 + b(13)*X2.*X5 + ...
    b(14)*X3.*X4 + b(15)*X3.*X5 + b(16)*X4.*X5 + ...
    b(17)*X1.^2 + b(18)*X2.^2 + b(19)*X3.^2 + b(20)*X4.^2 + b(21)*X5.^2);

ezsurf(tf, [0.001, 0.005, 0.05, 5.0]); title('ezsurf');
view(-37.5,30);
 
Private Nachricht senden Benutzer-Profile anzeigen
 
as1989

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.01.2013, 15:14     Titel:
  Antworten mit Zitat      
Stehe auch vor dem Problem, dass meine Werte negativ werden und weiß absolut nicht, wie ich das lösen kann, oder woher das problem kommt. hast du das mittlerweile gelöst?
 
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.