hab eine Frage zur Umsetzung der Berechnung der Einzelabweichung, Varianz, Standardabweichung.
Ich habe Messungen durchgeführt (entlang einer Geraden, gegeben durch Start- und Endpunkte) und die xy Werte aufzeichnen lassen.
Grafiken kann ich erzeugen, evtl. wollte ich jetzt noch den euklidischen Abstand, Mittelwert der Einzelabweichung, Varianz und Standardabweichung berechnen.
Da ich entlang einer Geraden gemessen habe, gibt es keine festen Messpunkte, diese muss ich über die Geradengleichung selbst ausrechnen und dann mit den gemessenen Werten vergleichen.
Untenstehend ist meine bisherigen Vorgehensweise dargestellt, dennoch kann das noch nicht korrekt sein.
Wo ist der Fehler? Ich steh auf dem Schlauch...
Code:
%Die Start-Endkoordinaten einer Geraden(=reale Positionen)sind z.B.
pointsxx=[3.011, 3.031];
pointsyy=[8.593, 4.599];
%Steigung m und Achsenabschnitt b berechnen für Form: y=mx+b
m=(pointsyy(1,2)-pointsyy(1,1))./(pointsxx(1,2)-pointsxx(1,1))
b=pointsyy(1,1)-m.*pointsxx(1,1)
%Die gemessenen x y werte liegen in den Matizen f(x werte) und g (y werte)
%vor, unterschiedliche Größen der Matizen möglich, hier z.B. 141double
AnzWerte=size(f,1);%Wie viele Werte umfasst f (und damit auch g)
%Jetzt möchte ich die Einzelabweichung zw. Gerade und Messpunkten berechnen
%Da die realen Positionen nur über die Geradengleichung zu berechnen ist,
%muss dies getrennt in x und y richtung erfolgen
%Messungen wurden meist in x oder y richtung durchgeführt
%y=mx+b;
%x=(y-b)/m;
for index=1:AnzWerte;
Di_y_fest(index)=sqrt((((g(index)-b)/m)-f(index)+0)^2);%Abweichung x Richtung
% Soll-X-Wert:(y-b)m - IST-X Wert + 0(y ist ja gleich)
Di_x_fest(index)=sqrt((((m*f(index)+b)-g(index))+0)^2);%Abweichung y Richtung
end;
%
%Mittelwert aus den Einzelabweichungen bilden
mittelwert_Di_y_fest=mean(Di_y_fest)
mittelwert_Di_x_fest= mean(Di_x_fest)
Warum meinst du denn, dass das nicht stimmen kann? Das würde die Antwort glaube ich erleichtern...
Es ist aber schon so gedacht, dass einmal der Abstand in x und einmal in y Richtung berechnet werden sollen und nicht der orthogonale Abstand zum nächstgelegenen Punkt auf der Gerade?
vg, Lucia
PS: Die for-Schleifen im Code kann man sich sparen:
Es gibt auch eine Matlab-Funktion für die Varianz, var.
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 23.04.2009, 16:32
Titel:
@Lucia:
Dein Einwand mit dem orthogonalen Abstand ist gut. Nur wie würde ich das in meinem Fall umsetzen?
Gerne würde ich die "fertige" var-Fkt. von Matlab nehmen.
Jedoch habe ich die Matlab hilfe nicht wirklich verstanden, bzw. weiß nicht wie ich meine Matrizen umbauen muss, um var verwenden zu können!
d müßte dann die Abstände aller Punkte zur Geraden enthalten. Das Vorzeichen gibt dann Auskunft darüber, auf welcher Seite der Geraden sich der Punkt befindet. (Ich habe das Verfahren nicht getestet und hoffe, daß nicht irgendwo noch ein Denkfehler drin ist.)
Die Anwendung der Varianz-Funktion ist übrigens kein Hexenwerk:
@ Helmert: Danke für deine Tipps!
Ich habe den Code nun folgendermaßen umgebaut
Code:
%Die Start-Endkoordinaten einer Geraden(=reale Positionen)sind z.B.
pointsxx=[3.011, 3.031];
pointsyy=[8.593, 4.599];
%Steigung m und Achsenabschnitt b berechnen für Form: y=mx+b
%m=(pointsyy(1,2)-pointsyy(1,1))./(pointsxx(1,2)-pointsxx(1,1))
%b=pointsyy(1,1)-m.*pointsxx(1,1)
% Richtungsvektor der Geraden
r = [pointsxx(2)-pointsxx(1);pointsyy(2)-pointsyy(1)];
r = r / norm(r); % Vektor auf die Länge 1 normieren
Als Ergebnis bekomme ich z.B.
mittelwert_d =
0.0444
varianz_d =
0.0133
Standardabweichung_d =
0.1151
Erscheint euch das bei folgender Grafik plausibel?
Ps: Bei der Deutung bin ich mir auch noch nicht ganz im Klaren, was die Werte jetzt aussagen.
Gut, der mittelwert_d=0.0444m ist die Mittlere Abweichung bei dieser Messung.
Wäre aber hier das "quadratische" Mittel aussagekräftiger?
Aber wie berechne ich das?
Welche Aussage bekomme ich jetzt aus der Standardabweichung_d=0.1151m^2 ?
Eigentlich müssten das ja Schwankungen sein. Aber in welcher Größenordnung ist ein Wert "gut" oder "schlecht"?
Also noch ist mir das ganze sehr undurchsichtig... ich bin für jede Hilfe dankbar!
Die Zahlenwerte erscheinen mir relativ plausibel. Eine gute Möglichkeit, das zu validieren wäre der Vergleich von mittelwert_d mit mittelwert_Di_x_fest, varianz_d mit VarDx bzw. Standardabweichung_d mit Standardabweichung_x. Da die Gerade in sehr guter Näherung parallel zur y-Achse verläuft, sollten sich die Werte einigermaßen ähnlich sein. So ließen sich zumindest sehr grobe Fehler ausschließen.
Die Standardabweichung kann man folgendermaßen deuten:
- Für 68,3 % aller Meßwerte ist die Abweichung vom Mittelwert nicht größer als die Standardabweichung.
- Für 95,4 % aller Meßwerte ist die Abweichung vom Mittelwert nicht größer als die doppelte Standardabweichung.
- Für 99,87 % aller Meßwerte ist die Abweichung vom Mittelwert nicht größer als die dreifache Standardabweichung.
usw.
(nur der Vollständigkeit halber: Diese Faustregeln gelten nur dann, wenn man Normalverteilung (-> Gaußsche Glockenkurve) der Messungen voraussetzt, was aber gängige Praxis ist.)
Anstatt der Standardabweichung könnte ggf. auch das quadratische Mittel aussagekräftiger bzw. geeigneter sein:
Welche von beiden Varianten hier sinnvoll ist, hängt von deiner konkreten Fragestellung ab:
Willst du ein Maß für die Streuung der Meßwerte um die Gerade selbst, ist das quadratische Mittel vorzuziehen.
Die Standardabweichung ist hingegen ein Maß für die Streuung der Meßwerte um ihren rechnerischen Mittelwert (hier: mittelwert_d), in deinem Fall eine Parallele zur eigentlichen Geraden mit Abstand mittelwert_d.
Ich hoffe, das hilft dir etwas weiter ...
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 25.04.2009, 09:51
Titel:
@Helmert: Vielen Dank für deine ausführliche Beschreibung!
Bei deinem Beispielcode ist mir ein kleiner Fehler aufgefallen, müsste es nicht so lauten:
Code:
%Anzahl Elemente von d Berechnen
anz_d_elem=length(d)
%norm(d) ist sqrt(d(1)^2+d(2)^2+d(3)^2+...)
quadratisches_Mittel_d=norm(d)/sqrt(anz_d_elem)
Ok, ich denke, dass das quadratische Mittel aussagekräftiger ist.
Z.B. erhalt ich folgendes:
quadratisches_Mittel_d =
0.5733
mittelwert_d =
0.0770
Standardabweichung_d =
0.5688
Bei unterer Grafik.
Noch eine Frage: Den Bahnverlauf bin ich tw. mehrmals abgelaufen.
Wenn ich jetzt für jede einzelne Messung das quad. Mittel einzeln ausrechne, dann kann ich aus den einzelnen quadr. Mittel den Durchschnitt bilden und habe dann das quad. Mittel für diese Messreihe?
also: [quadratisches_Mittel_d1+quadratisches_Mittel_d2]/2
Oder müsste ich dann ebenfalls mit den Einzelergebnissen das quad. Mittel berechnen?
also:sqrt[(quadratisches_Mittel_d1^2+quadratisches_Mittel_d2^2)/2]
Noch eine Frage: Den Bahnverlauf bin ich tw. mehrmals abgelaufen.
Wenn ich jetzt für jede einzelne Messung das quad. Mittel einzeln ausrechne, dann kann ich aus den einzelnen quadr. Mittel den Durchschnitt bilden und habe dann das quad. Mittel für diese Messreihe?
also: [quadratisches_Mittel_d1+quadratisches_Mittel_d2]/2
Oder müsste ich dann ebenfalls mit den Einzelergebnissen das quad. Mittel berechnen?
also:sqrt[(quadratisches_Mittel_d1^2+quadratisches_Mittel_d2^2)/2]
Wenn du das quadratische Mittel (eigentlich ist der Begriff "mittlere quadratische Abweichung" besser) für sämtliche Messungen aller Meßreihen berechnen willst, ist das so, als würdest du sämtliche Messungen in einen Vektor packen und die Berechnungsformel drauf loslassen:
Alternativ kannst du es natürlich auch aus den Ergebnissen für die einzelnen Meßreihen berechnen. Wenn sämtliche Meßreihen aus gleich vielen Meßwerten bestehen, würde die zweite, von dir vorgeschlagene Formel funktionieren:
Danke für den Hinweis mit der Anzahl der Meßwerte. Diese Anzahl ist nämlich nicht gleich!
Daher ist dein allgemeiner Ansatz genau das richtige für mich!
Ich will hier mal etwas weiter ausholen. So wie ich es verstanden habe, kann man dein Problem nach Berechnung der Abstände zur Geraden als eindimensional betrachten, denn du betrachtest ja nur Abweichungen von der Geraden, unabhängig davon, an welchem Abschnitt der Geraden sich der Meßwert befindet.
Statistisch gesprochen kann man die Gesamtheit aller Meßwerte durch verschiedene Parameter charakterisieren. Zum einen wäre da der sog. Erwartungswert, den die Meßwerte annehmen würden, wenn sie frei von Fehlern sinn. Da eine fehlerfreie Messung praktisch nicht möglich ist, streuen die Messungen immer um den Erwartungswert.
Kennt man den Erwartungswert nicht, so kann man den Mittelwert berechnen. Dieser ist dann eine bestmögliche Annäherung an den tatsächlichen Erwartungswert, den man ja in Wirklichkeit nicht kennt. Je mehr Messungen man macht, desto besser wird die Annäherung und desto genauer wird dieser Mittelwert.
In deinem Fall ist es aber so, sofern ich alles richtig verstanden habe, daß eine hypothetisch fehlerfreie Messung, exakt auf der Geraden liegen würde. Insofern ist die Gerade selbst der Erwartungswert (bzw. eine Abweichung um null von der Geraden), und da dieser bekannt ist, ist die Berechnung des Mittelwerts m. E. bedeutungslos, weil man damit einen Wert (hier: null) anzunähern versucht, den man in Wirklichkeit bereits genau kennt. Unabhängig von dieser Feststellung kann man mehrere Mittelwerte folgendermaßen zusammenführen:
Ein zweiter wichtiger Parameter ist die Standardabweichung. Sie ist ein Maß für die Streuung der Meßwerte um ihren Erwartungswert. Bei ihrer Berechnung muß man unterscheiden, ob der Erwartungswert theoretisch bekannt ist (hier der Fall: null), oder ob er durch die Berechnung eines Mittelwerts angenähert bzw. "geschätzt" wird.
Im ersten Fall (Erwartungswert bekannt) ist die Standardabweichung identisch mit der mittleren quadratischen Abweichung:
Im zweiten Fall (Erwartungswert ist unbekannt und wird durch Mittelwert angenähert), berechnet sich die Standardabweichung nach der allgemein bekannten Formel:
Ich hoffe, ich konnte etwas Licht in das Dunkel bringen und die Zusammenhänge einigermaßen verständlich rüberbringen.
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 27.04.2009, 09:15
Titel:
Vielen Dank Helmert für deine äusserst ausfühliche Beschreibung!
Dennoch habe ich noch eine Frage zur Begrifflichkeit der mittleren quadratischen Abweichung bzw. dem quadratischen Mittel und der Standardabweichung
Laut Wikipedia ist das quadratische Mittel
QMW=sqrt{ (x_1^2 +x_2^2 +...+x_N^2)/N }
Die mittlere quadratische Abweichung ist die Varianz (mit Stichprobenumfang n)
kleines_sigma^2=1/n *[ (x1-X)^2+(x2-X)^2+....]
Somit ist das Quadrat des quadratischen Mittels von den Abständen der Punkte zur Geraden(also hier: d) gleich die mittlere quadratische Abweichung (mit dem Teiler 1/n).
also: QMW^2 = kleines_sigma^2
Die Formel std für die Standardabweichung (S) wiederrum ist aber
mit Teiler n-1,
(laut kurzer googlesuche, ist die Standardabweichung mit 1/(n-1) die gebräuchlichste Form)
1/n und 1/(n-1) nähern sich mit größer werdendem n immer mehr an.
Sicher ist der Einfluss von 1/n und 1/(n-1) bei mir sehr klein, gibt es jedoch eine Begründung, warum ich dann gerade einmal 1/n und einmal 1/(n-1) nehme?
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 27.04.2009, 09:24
Titel:
Noch eine kurze Überlegung zur Bedeutung des Mittelwertes:
Ich denke mittlerweile, dass es für mich Sinn mache alle drei Größen (Mittelwert, Standardabweichung, mittlere quadr. Abweichung) zu berechenen und zu vergleichen.
Als "absolute" Aussage ist sicher die mittlere quadr. Abweichung sinnvoll, da die Abweichung von meiner Soll-Geraden "bestimmt" wird.
Aber gleichzeitig ist sicher der Mittelwert + Standardabweichung sinnvoll: Es könnte sein, dass die Messwerte nahe beeinander liegen (Standardabweichung klein) aber z.B. auf einer parallelen der Gerade, im Abstand = Mittelwert!
Diese Aussage bekomme ich allein durch die quadr. Abweichung nicht!
Helmert, kannst du meiner Überlegung soweit zustimmen?
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
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.