Geh barfuß über warmen Sand.
      Spür die Erde unter deinen Füßen ...
Aktuelle Zeit: Di 12. Dez 2017, 02:49

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 7 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Summenhäufigkeit glätten
BeitragVerfasst: Di 6. Mai 2014, 13:44 
Offline
bachelor
bachelor

Registriert:
Do 14. Dez 2006, 16:47
Beiträge: 86
Wohnort: Leipzig
Hallo zusammen,

schon seit einiger Zeit versuche ich in Excel eine Summenhäufigkeitskurve sinnvoll zu glätten.

Erklärung: beim händischen Einzeichen einer Verbindungslinie zwischen Punkten in einem Koordinatensystem zeichnet man eine Kurve die opt. 'schön' 'interpoliert ist. Sprich, trotz rel. weniger Daten zeichnet man keine Treppen.
Da Excel aber nur stur x,y-Werte verbindet entstehen meist immer Treppen. Die 'Glättenfunktion' für eine Linie in Excel ist unzureichend, da 'größere' Treppensprünge nicht optisch sauber geglättet werden. Im Grunde werden nur die Treppenstufen 'rundgelutscht'..

Hat jemand für dieses Problem eine schöne Lösung? gibt es da irgendwelche rechenoperationen die man unternehmen kann um die Treppen zu eliminiern?

Viele Grüße
Inigo


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Summenhäufigkeit glätten
BeitragVerfasst: Di 6. Mai 2014, 17:00 
Offline
badge of honor
badge of honor
Benutzeravatar

Registriert:
Fr 16. Feb 2007, 19:08
Beiträge: 1350
Wohnort: Solingen
Ich hatte mich mal an anderer Stelle im Forum mit dem Problem befasst und dafür auch eine halbautomatische Excel-Lösung entwickelt. Dahinter steckt etwas mathematische Theorie. Die Steigungen in den Stützpunkten der Summenkurve können sinnvoll geschätzt werden. Danach ist eine abschnittsweise monotone Interpolation durch Polynomfunktionen 3. Grades möglich, deren Steigungen an den Endpunkten mit den Schätzwerten übereinstimmen. Das Ergebnis ist eine (einmal) differenzierbare Summenkurve. Die zugehörige Dichtefunktion (entspricht dem Histogramm bei linearer Interpolation) ist dann nicht mehr treppenförmig sondern eine stetige Funktion. Statt der Sprünge hat man jetzt nur Knicke an den Stützwerten.

Falls ernsthaftes Interesse besteht kann ich versuchen die Sachen von damals noch mal 'auszugraben'.

Älterer Thread zum Thema: [hier]

_________________
Gruß,
    tepui

[Kalender] [Link-Sammlung]
[bei Flickr]


Zuletzt geändert von tepui am Di 6. Mai 2014, 20:05, insgesamt 1-mal geändert.
Link hinzugefügt


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Summenhäufigkeit glätten
BeitragVerfasst: Mi 7. Mai 2014, 13:37 
Offline
bachelor
bachelor

Registriert:
Do 14. Dez 2006, 16:47
Beiträge: 86
Wohnort: Leipzig
Hallo tepui,

vielen Dank für deine Antwort!

Zuerst muss ich eingestehen, dass ich von dieser Mathematik kaum Ahnung habe, da ich seit Jahren damit nicht mehr zu tun hab. Den verlinkten Thread von dir und den darin enthaltenen wiki-Link hab ich mir angeschaut und ja, das klingt in meinen Ohren irgendwie so ähnlich wie mein Problem und deren Lösung. Dinge wie 'Dichtefunktion' und 'Stützpunkte' sagen mir allerdings nichts.

Ausgehend von deinem Beitrag hier, hab ich meine Summenkurve in mehrere Einzelkurven zurlegt und dann mit der Polynomfunktion etwas herumgespielt (Anm.: Wir benutzen im Büro die Goldensoftware 'Grapher', welche aus den Exceldaten die Kurven erzeugt - die Diagramme sind einfach sauberer und einfacher zu verändern als in Excel). Das Ergebniss war allerdings noch nicht wirkl. zufriedenstellend.
Zwar sahen die Kurven 'eleganter' aus aber es gab starke Abweichungen, vorallem beim letzten Wert, der lag viel zu weit links, so dass die Aussage der Kurve schon relevant verändert wird.
Ein Abschätzen von Stützpunkten habe ich aus o.g. Grund nicht vorgenommen. Ich dachte erst, es wären meine x,y-Werte, das hat aber dann nicht so hingehauen wie ich dachte.

Da ich häufig mit der Darstellung von Summenlinien zu tun habe, wäre ich sehr an einer Lösung interessiert (auch _wie_ das funktioniert, also die Theorie).

Viele Grüße
Inigo


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Summenhäufigkeit glätten
BeitragVerfasst: Mi 7. Mai 2014, 15:07 
Offline
badge of honor
badge of honor
Benutzeravatar

Registriert:
Fr 16. Feb 2007, 19:08
Beiträge: 1350
Wohnort: Solingen
Die Theorie und den Algorithmus findest Du hier:
http://www.univie.ac.at/nuhag-php/bibte ... 7.1055.pdf
https://en.wikipedia.org/wiki/Monotone_cubic_spline

Sieht kompliziert aus ist aber im Grunde nicht so schwierig.

Zunächst einmal die wichtigsten mathemathischen Eigenschaften einer Summenkurve y=F(x)
1. Sie ist monoton: aus a<b folgt F(a) <= F(b)
2. Für x gegen -Unendlich ist lim F(x) = 0
3. Für x gegen +Unendlich ist lim F(x) = 1
4. (Mathematisch nicht erforderlich aber in der Praxis oft gefordert): Sie ist stetig.

Dein Problem:
Du kennst F nicht, Du hast nur einige Stützpunkte [x(i);y(i)] mit x(i) < x(j) forlgt y(i) <= y(j)
Du möchtest die Stützstellen mittels Interpolation zu einer Kurve ergänzen und dadurch die tatsächliche Summenkurve annähern.
Einfachste Möglichkeit: Verbinden der Stützpunkte durch Geradenstücke. Nachteil: Die Summenkurve ist "eckig", die Ableitung (entspricht hier dem Histogramm) ist "sprunghaft".
Neue Idee: Man schätzt die Ableitung m(i) der Summenkurve an den Stützstellen x(i).
Jetzt interpoliert man benachbarte Stützpunkte [x(i);y(i)], [x(i+1);y(i+1)] durch eine Funktion H mit folgenden Eigenschaften:
H(x(i)) = y(i) ; H(x(i+1)) = y(i+1) ; H'(x(i)) = m(i) ; H'(x(i+1))
Mit einem Polynom 3. Grades H(x)=aX^3+bx^2+cx+d geht das immer, dummerweise ist die Interpolationsfunktion H nicht unbedingt monoton.
Durch gewisse Korrekturen an den geschätzten Ableiteungen m(i) lässt sich aber Monotonie erzwingen, darum geht es in der theortischen Arbeit bei den genannten Links.
Setzt man die abschnittsweise ermittelten Polynome zusammen ergibt sich eine monotone Funktion, die "glatt" (differenzierbar) ist.
Allerdings ist dieses Ergebnis immer noch etwas "unrund", die Ableitung weist jetzt zwar keine Sprünge mehr auf, aber doch Knicke an den Stellen x(i)

Ich hab mich übrigen in diesem Beitrag http://forum.geoversum.de/viewtopic.php?t=1740 noch mal mit dem Thema befasst und noch ein Excel von damals gefunden. Schick mit Deine Email-Adresse per PN und ich schicke es Dir zu. Eventuell kann man sich auch mal telefonisch in Verbindung setzen - das Excel ist nämlich nicht unbedingt selbsterklärend.

_________________
Gruß,
    tepui

[Kalender] [Link-Sammlung]
[bei Flickr]


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Summenhäufigkeit glätten
BeitragVerfasst: Do 8. Mai 2014, 14:48 
Offline
bachelor
bachelor

Registriert:
Do 14. Dez 2006, 16:47
Beiträge: 86
Wohnort: Leipzig
Hallo tepui,

vielen Dank nochmal für deine Ausführungen.
Ich habe mir jetzt erstmal wieder die Grundlagen der Differentialrechnung einverleibt. So brennt wieder ein schwaches Licht am Leuchter.

Allerdings bin ich auch gleich wieder gestolpert.
Wie schätze ich den die Ableitung m(i) an der Stützstelle x(i) ab? Händisch konstruieren und dann die entsprechende Geradengleichung ermitteln?
Die Ableitung bezeichnet doch die Tangente an der Stützstelle? Wobei ich davon ausgehe, dass mit Stützstelle ein Wertepaar x,y gemeint ist.

Viele Grüße
Inigo

PS: PN unterwegs


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Summenhäufigkeit glätten
BeitragVerfasst: Do 8. Mai 2014, 17:30 
Offline
badge of honor
badge of honor
Benutzeravatar

Registriert:
Fr 16. Feb 2007, 19:08
Beiträge: 1350
Wohnort: Solingen
Inigo hat geschrieben:
Wie schätze ich den die Ableitung m(i) an der Stützstelle x(i) ab?


Antwort: Mittels eines Schamanen :))

Spaß beiseite:
Es gibt nicht DIE Methode, aber es gibt Möglichkeiten plausibel zu "raten".
Grundlage ist immer die durchschnittliche Steigung v in den benachbartem Intervallen:
v(i-1) = (y(i)-y(i-1))/(x(i)-x(i-1) und v(i) = (y(i+1)-y(i))/(x(i+1)-x(i))
Dann schätz man m(i) mittels einen gewichteten Mittels von v(i-1) und v(i) ab:
m(i) = (w(i-1)*v(i-1)+w(i)*v(i)) / (w(i-1)+w(i))
Jetzt stellt sich nur noch die Frage der Gewichtung:
Methode 1 (Mittelwert der Intervallsteigungen, z.B. in dem Wikipedia-Link): w(i-1) = w(i) = 1
Methode 2 (basiert auf der Definition der Ableitung bei x (i)): w(i-1) = 1/(x(i)-x(i-1) und analog w(i) = 1/(x(i+1)-x(i))
Bei gleichen Intervalllängen führen beide Methoden zum gleichen Ergebnis, bei sehr unterschiedlichen Intervalllängen ist aus mathematischer Sicht die Methode 2 vorzuziehen. Sie wird auch in der dem PDF zugrundeliegenden Originalarbeit angewandt.
Nachteil beider Methoden: Die Forderung nach Monotonie geht nicht ein.
Deshalb meine Lösung (ist wahrscheinlich nur eine Wiederentdeckung):
Methode 3 (berücksichtigt die Monotonie): w(i-1) = 1/[(x(i)-x(i-1))*(y(i)-y(i-1)] und analog w(i) = 1/[(x(i+1)-x(i))*(y(i+1)-y(i))]

Ich hab im Rahme dieses Forums 3x beim Glätten von Summenkurven geholfen. Methode 3 hat sich bewährt - die möglicherweise erforderlichen Korrekturen wurden reduziert.

_________________
Gruß,
    tepui

[Kalender] [Link-Sammlung]
[bei Flickr]


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Summenhäufigkeit glätten
BeitragVerfasst: Mo 26. Mai 2014, 09:25 
Offline
bachelor
bachelor

Registriert:
Do 14. Dez 2006, 16:47
Beiträge: 86
Wohnort: Leipzig
tepui hat geschrieben:
[...]

Ich hab im Rahme dieses Forums 3x beim Glätten von Summenkurven geholfen. Methode 3 hat sich bewährt - die möglicherweise erforderlichen Korrekturen wurden reduziert.


4x! :-bd
Vielen Dank für deine Hilfe!


Nach oben
 Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 7 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
cron
forum geoversum © 2002 - 2012 by geoversum - last modified apr-11-2012
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
layout modified by geoversum based on FI Subice by phpBBservice.nl
Deutsche Übersetzung durch phpBB.de