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

Nonlinear regression: coding correct modelfun

 

liso
Forum-Anfänger

Forum-Anfänger


Beiträge: 39
Anmeldedatum: 12.07.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.02.2016, 15:08     Titel: Nonlinear regression: coding correct modelfun
  Antworten mit Zitat      
Hi all

I am having trouble writing a modelfun for nonlinear regression using fitnlm.
My formula is:
R=R_max (β + V_safe)/(σ + V_risk )

And my attempt to code it is:
Code:
Model = @(b,x)b(1).*((b(2)+x(:,1))./ (b(3)+x(:,2)));


The modelfun actually works, but I get the warning:
“Warning: Some columns of the Jacobian are effectively zero at the solution, indicating that the model is insensitive to some of its parameters. That may be because those parameters are not present in the model, or otherwise do not affect the predicted values. It may also be due to numerical underflow in the model function, which can sometimes be avoided by choosing better initial parameter values, or by rescaling or recentering. Parameter estimates may be unreliable.”

You may have an idea how to improve the code?
Thanks in advance.
Best
Liso
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 24.02.2016, 19:25     Titel:
  Antworten mit Zitat      
Hi,

the model function looks fine. Please provide the actual call to fitnlm and sample data to reproduce the issue.

Cheers,
Harald

P.S.: Hier gerne auch auf Deutsch.
Private Nachricht senden Benutzer-Profile anzeigen
 
liso
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 39
Anmeldedatum: 12.07.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.02.2016, 20:58     Titel:
  Antworten mit Zitat      
Hallo Harald

Vielen Dank für die Nachricht.

Anbei sende ich Beispieldaten um den Code zu prüfen (siehe Anhang).

Code:
Model = @(b,x)b(1).*((b(2)+x(:,1))./ (b(3)+x(:,2)));
beta0 = [1 0.5 1];
mdl = fitnlm(X,y,Model,beta0)


Nochmals herzlichen Dank im Voraus für einen Tip.
Viele Grüsse
Liso

X.mat
 Beschreibung:

Download
 Dateiname:  X.mat
 Dateigröße:  359 Bytes
 Heruntergeladen:  386 mal
y.mat
 Beschreibung:

Download
 Dateiname:  y.mat
 Dateigröße:  523 Bytes
 Heruntergeladen:  399 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 24.02.2016, 21:38     Titel:
  Antworten mit Zitat      
Hallo,

ich habe das gerade mal in R2015b laufen lassen und bekomme keine Warnung.
Der R-squared ist allerdings sehr schlecht und der Fit somit quasi unbrauchbar. Das sieht man auch optisch:

Code:
load X
load y
Model = @(b,x)b(1).*((b(2)+x(:,1))./ (b(3)+x(:,2)));
beta0 = [1 0.5 1];
mdl = fitnlm(X,Dataexone38,Model,beta0)
s1 = scatter3(X(:,1), X(:,2), Dataexone38);
hold on
s2 = scatter3(X(:,1), X(:,2), predict(mdl, X), 'Marker', 'x');
hold off


Zwei Möglichkeiten: entweder andere Startwerte versuchen oder ein anderes Modell.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
liso
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 39
Anmeldedatum: 12.07.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.02.2016, 11:28     Titel:
  Antworten mit Zitat      
Hallo Harad

Vielen Dank. Dies ist ein Beispiel aus einem grossen Datensatz. Das Resultat spielt im Einzelfall hier keine Rolle. Doch möchte ich gerne verstehen.
Anbei ein weiteres Beispiel, wo die gleiche Warnung auftritt. Ich wäre dankbar, wenn Du das nochmals testen könntest, evtl. war das vorherige Beispiel falsch.

Viele Grüsse
Liso

y1.mat
 Beschreibung:

Download
 Dateiname:  y1.mat
 Dateigröße:  513 Bytes
 Heruntergeladen:  388 mal
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.