| |
VB.NET - Ein- und UmsteigerEllipsen Fit | | | Autor: alexg | Datum: 30.08.21 15:16 |
| Hallo Zusammen,
ich habe für eine Punkteliste (List of (Point)) eine Funktion gebastelt, die mir die Koeffizienten eines einfachen linearen Fits zurück gibt.
Jetzt würde ich aber an die Datenpunkte gerne eine Ellipse anfitten (die sind nämlich oft elipsenförmig verteilt) und deren Parameter (Länge der Achsen, Mittelpunkt und Neigungswinkel) zurückgeben lassen.
Hat da evtl. schon jemand was gemacht?
Beispiel meines Line-Fits, funktioniert einwandfrei:
Public Class LinRegress
Public Steigung As Double
Public b As Double 'Achsenschnittpunkt b
Public r As Double 'Korrelationskoeffizient R
End Class Public Function LinRegressionPoints(ByVal dps As List(Of Point)) As _
LinRegress
Dim erg As New LinRegress
Dim n As Integer
n = dps.Count
If n < 2 Then Return Nothing
Dim sum_xy As Double
Dim sum_x As Double
Dim sum_y As Double
Dim sum_x2 As Double
Dim sum_y2 As Double
For i = 0 To n - 1
sum_x += dps.Item(i).X
sum_y += dps.Item(i).Y
sum_xy += dps.Item(i).X * dps.Item(i).Y
sum_x2 += dps.Item(i).X ^ 2
sum_y2 += dps.Item(i).Y ^ 2
Next
erg.Steigung = (n * sum_xy - sum_x * sum_y) / (n * sum_x2 - sum_x ^ 2)
erg.b = (sum_y - erg.Steigung * sum_x) / n
erg.r = (n * sum_xy - sum_x * sum_y) / ((Math.Sqrt(n * sum_x2 - sum_x ^ _
2) * Math.Sqrt(n * sum_y2 - sum_y ^ 2)))
Return erg
End Function THX | |
Re: Ellipsen Fit | | | Autor: Manfred X | Datum: 30.08.21 21:54 |
| Hallo!
Du errechnest eine lineare Anpassung.
(Eindeutige Minimierung nach der Methode der kleinsten Abweichungs-Quadrate).
Eine umhüllende Ellipse ist nicht eindeutig definierbar.
Ihre Form hängt im wesentlichen von der Enge des Zusammenhangs zwischen
den beiden zugrundeliegenden Variablen ab (Höhe der Korrelation).
Man könnte eine Ellipse auf der Basis der Höhe der Korrelation formal
definieren. Die spiegelt aber eventuell die reale Punktewolke nicht gut wider.
Gewöhnlich zeichnet man in solche Graphen einen "Konfidenzstreifen"
(eine obere und untere Gerade, die den Bereich der 95%-Schätzung angibt,
wenn man von einem x-Wert auf den y-Wert schließen will).
Was genau soll diese Graphik zum Ausdruck bringen? | |
Re: Ellipsen Fit | | | Autor: alexg | Datum: 31.08.21 12:41 |
| Hallo, vielen Dank für die Antwort.
Also ich habe Daten die eben oft "elliptisch verteilt" sind.
Die Parameter einer Ellipse (Winkel der Verdrehung zur x-Ache, Länge der Halbachsen etc.) wären da sehr hilfreich.
Kann man hier irgendwo ein Bild hochladen? | |
Re: Ellipsen Fit | | | Autor: Manfred X | Datum: 31.08.21 15:30 |
| Hallo!
Ich benötige kein Bild, sondern weiss, worauf Du Dich beziehst.
Bei einer Null-Korrelation entsteht ein Kreis, bei einer 1-Korrelation eine Gerade.
Bei allen Korrelationen dazwischen liegen die Punkte in einer umhüllenden Ellipse
(falls das lineare Modell geeignet ist, um den Zusammenhang zu beschreiben).
Die Frage ist aber, was Du mit einer solchen Graphik zum Ausdruck bringen willst?
Eigentlich sagt der Korrelationskoeffizient schon alles aus.
- Geht es um ein mathematisch definiertes Modell?
- Soll graphisch inspiziert werden, ob das lineare Modell angemessen ist?
- Was ist mit Ausreisser-Werten, die ein lineares Modell (Abweichungsquadrate!)
untauglich machen können (riesige Ellipse wegen weniger Punkte)?
Der einfachste Weg wäre, abhängig von der Höhe des Korrelationskoeffizienten
zwei Punkte auf der Anpassungsgerade zu wählen.
Bei 0-Korelation den Geradenpunkt, der durch die Mittelwerte beider Variablen
gegeben ist.
Bei 1-Korrelation die Anfangs- und Endpunke (kleinster/grösster X-Wert).
Bei den Korrelationen (Determinationskoeffizient!), deren Ausprägungen dazwischen
liegen, benutzt man zwei Zwischenpunkte auf der Geraden für die Lage und
die Distanz dieser Punkte zu den Endpunkten für die "Dicke" der Ellipse.
Ohne genauere Angaben zum Zweck ist es aber schwierig, eine geeignete Lösung
vorzuschlagen. | |
Re: Ellipsen Fit | | | Autor: alexg | Datum: 02.09.21 15:35 |
| Hallo,
okay dann muss ich ein klein wenig ausholen.
Die Physik hinter meinem Problem ist eine röntgenografische Spannungsmessung.
Dabei nimmt man Beugungspeaks unter mehreren Kippwinkeln über einer ebenen Probe (kristallin) auf.
Wenn in der Probe Eigenspannungen vorliegen, verschiebt sich die Lage der Beugungsreflexe etwas im Vergleich zur Spannungsfreien Probe (meine y-Werte).
Diese Werte werden über dem Kippwinkel aufgetragen bzw. über deren sin^2 (z.B. -45 bis +45° entspricht sin^2 Werten von 0 bis 0,5) (Meine x-Werte).
d.H. Es gibt jeweils zwei y-Werte für einen x-Wert (einen für den negativen und einen für den positiven Kippwinkel).
Wenn jetzt die Probe nur in Richtung der Kippung eine Spannung aufweist, liegen die Werte für positive und negative Kippwinkel sehr gut auf einer Geraden. Aus der Steigung dieser Geraden lässt sich dann über elastische Materialkostanten die Spannung errechnen.
Wenn in der Spannungszustand aber eine Schubspannungskomponente hat, gibt es eine "Aufspaltung" zwischen beiden Kipprichtungen und die Punkte liegen nicht mehr auf einer Geraden sondern verschieben sich.
Ich nehme an, dass die elliptische Form dieser "Aufspaltung" bei solchen Spannungszusammenhängen geometrisch begründet werden können. So tief stecke ich da aber nicht drin.
So wie ich das verstanden habe, kann man hier die Spannung in Kipprichtung nach wie vor über die Steigung der großen Halbachse der Ellipse bestimmen und zusätzlich den Schubspannungsanteil über die Länge der kleinen Halbachse.
Deine Beschreibung des Vorgehens klingt für mich plausibel. Wie gehe ich allerdings vor, wenn die Punkte so verteilt sind, dass sie besser auf einer Ellipse liegen, deren Anfangs- und Endpunkt weit außerhalb des kleinsten und größten x-Wertes lägen? | |
| Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
|
|
sevISDN 1.0
Überwachung aller eingehender Anrufe!
Die DLL erkennt alle über die CAPI-Schnittstelle eingehenden Anrufe und teilt Ihnen sogar mit, aus welchem Ortsbereich der Anruf stammt. Weitere Highlights: Online-Rufident, Erkennung der Anrufbehandlung u.v.m. Weitere InfosTipp des Monats TOP! Unser Nr. 1
Neu! sevDataGrid 3.0
Mehrspaltige Listen, mit oder ohne DB-Anbindung. Autom. Sortierung, Editieren von Spalteninhalten oder das interaktive Hinzufügen von Datenzeilen sind ebenso möglich wie das Erstellen eines Web-Reports. Weitere Infos
|
|
|
Copyright ©2000-2024 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|