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

Steigung an Messdaten mit Unsicherheiten

 

Nras
Forum-Meister

Forum-Meister


Beiträge: 608
Anmeldedatum: 21.02.12
Wohnort: ---
Version: 7.12.0.635 (R2011a)
     Beitrag Verfasst am: 21.03.2013, 13:17     Titel: Steigung an Messdaten mit Unsicherheiten
  Antworten mit Zitat      
Hallo,

ich habe in der Suche keinen passenden Beitrag dazu gefunden. Ich habe Werte mit Fehlern und möchte einen linearen Fit durch die Werte legen, und die Steigung auslesen. Das ginge so ohne Probleme mit
Code:

Allerdings hat diese Steigung nicht die Fehler in den Messungen berücksichtigt.
Beispiel:

Code:
x = 1:10;
y = 2*x;
e = y.*randn(1,10)*0.2; % ausgedachter fehler
figure
errorbar(x,y,e,'o')
p = polyfit(x,y,1);
 

Liefert mir nur die Steigung durch die vermeintlichen Mittelwerte y ohne den Fehler e zu berücksichtigen.

Ich suche also eine Funktion der Bauweise
Code:
[Steigung, Steigung_fehler] = mein_fit(x,y,e)

der ich die x und y-Werte, sowie die Unsicherheiten der y-Werte übergebe und entsprechend eine Steigung mit Unsicherheiten zurückbekomme. Steigung sollte hier exakt 2 geben und die Unsicherheit soetwas wie +/- 0.2.
Gibt es soetwas bereits?

Ich wäre für Hilfe dankbar,
Nras
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 21.03.2013, 14:12     Titel:
  Antworten mit Zitat      
Hallo,

mit regress (Statistics Toolbox) bekommst du Konfidenzintervalle für deine Parameter zurück, die aufgrund der vorliegenden Daten geschätzt werden (d.h. du gibst nicht selbst eine Fehlertoleranz an).

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

Forum-Meister

Forum-Meister


Beiträge: 608
Anmeldedatum: 21.02.12
Wohnort: ---
Version: 7.12.0.635 (R2011a)
     Beitrag Verfasst am: 21.03.2013, 14:39     Titel:
  Antworten mit Zitat      
Hallo Harald,

ich bin mir nicht sicher, ob ich wirklich Konfidenzintervalle möchte. Der Fehler, um den es geht, berechnet sich aus Standardabweichung durch die Wurzel der Anzahl der Messungen. Das bedeutet vor allem auch, dass nicht jeder Wert im Vektor y aus gleichvielen Messungen berechnet wird, daher habe ich auch gar keine "n by p - Matrix" wie in der Hilfe von Regress angegeben wird.

Viele Grüße
Nras
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 21.03.2013, 15:01     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
Der Fehler, um den es geht, berechnet sich aus Standardabweichung durch die Wurzel der Anzahl der Messungen.


Verstehe ich nicht. Vor allem: wenn du den gesuchten Fehler berechnen kannst, dann mach das doch direkt?

Zitat:
Das bedeutet vor allem auch, dass nicht jeder Wert im Vektor y aus gleichvielen Messungen berechnet wird,

Auch das verstehe ich nicht.

Meine Idee wäre quasi:
Code:
[b,bint] = regress(e, [ones(size(x)); x]')


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

Forum-Meister

Forum-Meister


Beiträge: 608
Anmeldedatum: 21.02.12
Wohnort: ---
Version: 7.12.0.635 (R2011a)
     Beitrag Verfasst am: 21.03.2013, 15:30     Titel:
  Antworten mit Zitat      
Hallo,

sorry dafür, dass ich deine Zeit verschwendet habe, das war eben alles etwas schwammig formuliert. Aus diesem Beispiel oben noch mal genauer.
Code:
x = 1:10;
y = 2*x;
e = y.*randn(1,10)*0.2; % Hier: ausgedachter Fehler
figure
errorbar(x,y,e,'o')
p = polyfit(x,y,1);
steigung = p(1);


Zu jedem Wert in x habe ich einige (verschieden viele) Messungen. Diese Messungen habe ich zu Mittelwert y und Fehlern e zusammengefasst, um das mit errorbar(x,y,e) zu plotten. Dieser Fehler e hat sich, falls das noch gebraucht wird, aus Standardabweichung und der Wurzel der Anzahl der Messungen berechnet. Diesen Fehler e kenne ich also.

Nun kann ich die Steigung der gefitteten Geraden durch die Punkte (x,y) ausrechnen.
Was ich jetzt noch suche ist, wie sich der bekannte Fehler e auf die Genauigkeit der Steigung der Regression auswirkt. Wenn der Fehler e "klein" ist, ewarte ich, dass bei der Steigung soetwas wie steigung= 2 \pm 0.01 rauskommt, wenn der Fehler e "eher groß" wird, sollte soetwas wie Steigung  = 2 \pm 0.5 dabei herauskommen. Und im Extremfall, wenn der Fehler nur aus Nullen bestünde, kommt eben genau   2 \pm 0 raus.

Ist Regress wirklich das, was ich suche?

Vielen, vielen Dank für deine Mühe.
Nras
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

bitte von Anfang an das Problem möglichst klar schildern. Erst jetzt verstehe ich, was du überhaupt meinst.
Und nein, dann hilft dir regress nicht weiter. Ich weiß auch nichts, was dir direkt weiterhelfen könnte.
Im Zweifelsfall kann man eine große Anzahl unterschiedlicher Szenarien durchrechnen und schauen, wie die herauskommenden Steigungen verteilt sind.
Kann man aber denn davon ausgehen, dass die Fehler voneinander unabhängig sind?

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

Forum-Meister

Forum-Meister


Beiträge: 608
Anmeldedatum: 21.02.12
Wohnort: ---
Version: 7.12.0.635 (R2011a)
     Beitrag Verfasst am: 21.03.2013, 15:51     Titel:
  Antworten mit Zitat      
Hallo,

Harald hat Folgendes geschrieben:
Hallo,


Kann man aber denn davon ausgehen, dass die Fehler voneinander unabhängig sind?


Welche Fehler meinst du jetzt genau?

Ich habe eventuell etwas gefunden, das mein Problem löst.
http://www.mathworks.com/matlabcent.....curve_fit_0_01/york_fit.m
Die Beschreibung sieht vielversprechend aus. Wenn ich damit durch bin, gebe ich noch Feedback, ob mir das geholfen hat.

Viele Grüße,
Nras
Private Nachricht senden Benutzer-Profile anzeigen
 
Nras
Themenstarter

Forum-Meister

Forum-Meister


Beiträge: 608
Anmeldedatum: 21.02.12
Wohnort: ---
Version: 7.12.0.635 (R2011a)
     Beitrag Verfasst am: 21.03.2013, 21:55     Titel:
  Antworten mit Zitat      
Hallo,

falls sich jemand für die richtige Lösung interessiert, der wird in den Numerical Recipes, 2nd. Edit. Kapitel 15.2 fündig. Mein Betreuer hat mich drauf aufmerksam gemacht.
Aus diesem Buch direkt entnommen:
Zitat:

We assume that the uncertainty σi associated with
each measurement yi is known, and that the xi’s (values of the dependent variable)
are known exactly.


Das entspricht ja genau meinem Fall. In aller Kürze: die Residuen ei werden zunächst mit dem jeweilgen Fehler σi gewichtet und anschließend minimiert.

Trotzdem vielen Dank an alle Beteiligten.

P.S.: Nur wegen der Vollständigkeit: das von mir Gelinkte bezieht sich auf das Kapitel 15.3 in diesem Buch:
Zitat:
If experimental data are subject to measurement error not only in the yi’s, but also in
the xi’s, then the task of fitting a straight-line model
y(x) = a + bx (15.3.1)
is considerably harder [...]


Beste Grüße,
Nras

Edit: Nicht, dass ich das nicht selber könnte, aber schwer zu glauben, dass soetwas nicht schon direkt in der Statistics Toolbox mit drin ist, bzw. dass das nicht schon mal jemand zur Verfügung gestellt hat - oder haber habe ich einfach nur schlecht gesucht? Worte wie "Fehler" in die Suche zu tun, macht ja leider wenig Sinn, da mit "Fehler" meistens nur "funktioniert nicht" gemeint ist und nicht "Fehler" im weiteren Sinne.
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.