Rek. Algorithmus zur Klassenerkenn. von Messwerten

Dies ist die Fortsetzung von folgender Diskussion:
/t/messdatenauswertung-klassen-von-ausreissern-entf/…
Habe etwas lange nicht geantwortet und vergessen, wie schnell hier die Artikel ins Archiv rutschen, tut mir leid. Ich werde hier den Faden also wieder aufnehmen:

Eine typische Verteilung von 600 Messwerten (das letzte PNG konnte offenbar nicht bei allen angezeigt werden?), hier jetzt mit 2 Klassen (übrigens immer Abstand d, auch bei Fenster von 30 Werten):
http://www.pic-upload.de/10.04.09/r5vqa6.gif

@JPL, die Klassierung stammt nicht von mir, das ist ein phys. bedingter, sehr nachteiliger „Dreckeffekt“ des Sensors, so etwas wie Normalverteilung gibt es nur innerhalb der Klassen (gibt es übrigens einen besseren Ausdruck dafür?). Experimente lassen darauf schliessen, dass eine Klasse (bzw. deren MW) den wahren Wert repräsentiert, leider gibt es keinen eindeutigen Hinweis welche das ist. Das Kriterium ist also noch offen (am nächsten beim MW, am meisten Werte, die kleinsten Werte etc.).

Meine Idee das Problem anzugehen wäre ein rekursiver Algorithmus für die letzten n Messwerte, der untersucht wieviele Klassen vorliegen, sich für eine entscheidet und von der dann den Mittelwert berechnet. Wie ich das implementieren könnte (Matlab) ist mir noch völlig unklar.

Hat jemand eine aussichtsreichere Idee zur Behandlung dieses Problems oder ein Gerüst für so einen Algorithmus?

Hi operator,

Eine typische Verteilung von 600 Messwerten (das letzte PNG konnte :offenbar nicht bei allen angezeigt werden?), hier jetzt mit 2 :Klassen (übrigens immer Abstand d, auch bei Fenster von 30 Werten):
http://www.pic-upload.de/10.04.09/r5v

Jetzt kann man es sehen. Aber das sind nicht 2 Klassen, sondern 17 - jeder Balken ist eine Klasse. Du hast eine bimodale (zweigipflige) Verteilung, die nicht mehr adäquat durch MW und STD beschrieben werden kann. Da man aber bimod. Verteilungen als Mischungen von anderen Verteilungen auffassen kann, wäre eine Charakterisierung wie folgt möglich: Für jeden den beiden Gipfel und deren Umgebung eine Verteilung finden (Normalverteilung?) und deren Parameter berechnen. Anschließend beide mischen: Y = k1*N(m1,s1²) + k2*N(m2,s2²) mit k1, k2 aus (0,1) und k1+k2=1. Ich habe gerade keinen Alg. im Kopf, wie man k1 unf k2 anders als durch ausprobieren finden könnte, sorry. die Güte der Anpassung kannst du über die Quadratsummen der Residuen machen, je kleiner diese je besser die Anpassung.
Das sollte man über die implementierten Funktionen in MatLab abhandeln können.
Grüße,
JPL