|
|
Überlagerte Normalverteilung |
|
Kn3ipnt3rrorist |
Forum-Anfänger
|
|
Beiträge: 21
|
|
|
|
Anmeldedatum: 01.11.16
|
|
|
|
Wohnort: Dresden
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 03.03.2020, 12:13
Titel: Überlagerte Normalverteilung
|
|
Moin,
Folgendes Problem:
Ich habe Histogrammdaten aus einem Bildverarbeitungsprogramm (ImageJ) in folgender Form:
erste spalte bin start, in dem die startwerte der einzelnen Auswertungsintevalle stehen
zweite spalte count, in dem die Anzahl der PIxel stehen, die in den einzelnen bins gelandet sind
Im Endeffekt handel es sich um 2 verschiedene Stoffe, die in einem Tomogramm aufgenommen wurden. ICh möchte nun separat für beide Stoffe aus dem Tomogramm die Mittelwerte und Standardabweichung für die zugehörigen Grauwerte bestimmen. jemand eine AHnung wie ich das direkt uas den Daten gewinnen kann?
Im Anhang befindet sich ein Beispielhistogramm und eine csv Datei mit den zugehörigen Daten.
Vielen lieben Dank!
Benni
Beschreibung: |
|
Download |
Dateiname: |
berlagerte_Normalverteilung.fig |
Dateigröße: |
19.98 KB |
Heruntergeladen: |
216 mal |
|
|
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 03.03.2020, 13:10
Titel:
|
|
Hallo,
in erster Näherung: im lokalen Minimum in der Mitte die Daten trennen und jeweils eine Normalverteilung anpassen.
Wenn man es genau haben möchte, könnte man das als Optimierungsproblem angehen, mit den zu optimierenden Größen Mittelwerte, Standardabweichung und, soweit nicht bekannt, Prozentsatz des einen Stoffes gegenüber dem anderen Stoff.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
|
|
|
Kn3ipnt3rrorist |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 21
|
|
|
|
Anmeldedatum: 01.11.16
|
|
|
|
Wohnort: Dresden
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 03.03.2020, 16:45
Titel:
|
|
OKi danke schonmal, hab's jetzt auch erstmal aufgetrennt.
Hättest du für die 2. Lösung irgendwie nen Ansatz? ALs Optimierung wäre schon besser, die Histogramme sind nicht immer so eineindeutig, sondern gehen teilweise ineinander über, siehe Anhang
Viele Grüße, Benni
Beschreibung: |
|
Download |
Dateiname: |
berlagerte_Normalverteilung_nicht_ideal.fig |
Dateigröße: |
18.5 KB |
Heruntergeladen: |
218 mal |
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 03.03.2020, 17:11
Titel:
|
|
Hallo,
du brauchst eine Funktion, die einen Vektor, der die genannten 5 Parameter enthält, entgegennimmt. Dann muss auf einem Gitter die theoretische Verteilung mit zwei normpdf-Aufrufen erstellt werden.
lsqcurvefit
dürfte gut geeignet sein.
Als Startwerte kannst du z.B. die Ergebnisse der ersten Methode verwenden.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
|
|
|
Kn3ipnt3rrorist |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 21
|
|
|
|
Anmeldedatum: 01.11.16
|
|
|
|
Wohnort: Dresden
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 04.03.2020, 15:01
Titel:
|
|
Moin,
Ich habe das jetzt so implementiert
Problem a: er korrigiert aus x immer nur die ersten beiden Werte, die 2. lässt er stehen egal wie ich sie setze und
Problem b: er korrigiert sie immer nur minimal um den Wert der in x0 voreingestellt ist, selbst wenn die fernab der Realität liegen.
als Funktion habe ich jetzt sozusagen nur 2 Normalverteilungen addiert. Ist das so möglich oder liegt da schon der Fehler?
Als Abbruchkriterium gibt er folgendes aus:
Danke schonmal im Voraus und für die gegebenen Ratschläge
edit:
Meine gesuchten Variablen in x sind sigam1, mu1, sigma2 und mu2 in der Reihenfolge
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 04.03.2020, 15:32
Titel:
|
|
Hallo,
ein paar Dinge fallen mir auf:
* die Skalierung im Plot sind absolute Zahlen. Du müsstest also die Skalierung deiner PDFs geeignet anpassen, sonst passt das überhaupt nicht zusammen
* wenn du die Statistics and Machine Learning Toolbox hast, würde ich normpdf verwenden, z.B.
normpdf(xdata, x(2), x(1))
statt des länglichen ersten Teils im Function Handle
* wenn nicht je 50% von den beiden Stoffen kommen, dann würde ich auch die Häufigkeit der Stoffe noch als Unbekannte mit reinnehmen, also insgesamt:
mit Startwert z.B. 0.5 für x(5).
N ist entweder schon die Anzahl der Messungen oder sollte zumindest in der Größenordnung sein. Das müsste ich mir noch genauer überlegen. Im Zweifelsfall mache aus N ein x(6) ;)
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
|
|
|
Kn3ipnt3rrorist |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 21
|
|
|
|
Anmeldedatum: 01.11.16
|
|
|
|
Wohnort: Dresden
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 04.03.2020, 17:06
Titel:
|
|
Ok, schaut besser aus. Jedenfalls ohne Konzentrationen. Mal zum Vergleich, x1 ist die Lösung der Berchnung wenn ich x(5) aus deinem Beispiel rauslasse, und x2 ist das ergebniss für x(5)=0.4 als Startwert
Das erste ergebniss sieht auch von den Mittelwerten ganz gut aus, nur die Standardabweichungen schauen mir sehr eng aus.
Zitat: |
* die Skalierung im Plot sind absolute Zahlen. Du müsstest also die Skalierung deiner PDFs geeignet anpassen, sonst passt das überhaupt nicht zusammen |
den part verstehe ich nicht ganz. welcher Plot?^^
Grüße Benni
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 04.03.2020, 17:24
Titel:
|
|
Hallo,
in den Figures, die du zur Verfügung gestellt hast.
Eine PDF ist ja so normalisiert, dass die Fläche darunter 1 ist. Das ist bei der Figure definitiv nicht der Fall.
Du kannst bei den Parametern auch untere und obere Schranken angeben. Beispielsweise können Varianzen nicht negativ sein, und die Mittelwerte sollten zumindest mal im Intervall der Beobachtungen bleiben. x(5) sollte zwischen 0 und 1 sein.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
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
| 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.
|
|