Mathe-Unit für Statistik und Optimierung
-
- Beiträge: 27
- Registriert: Mo 17. Feb 2014, 10:11
Mathe-Unit für Statistik und Optimierung
Hallo,
habe zwar über die Zeit eine Bibliothek erstellt, aber einiges fehlt mir noch. Zum Beispiel suche ich eine Funktion für Konfidenz-Intervalle nach Clopper-Pearson (https://de.wikipedia.org/wiki/Konfidenz ... inlichkeit).
Darin ist die inv. Beta-Funktion enthalten. Hab zwar einiges dazu gefunden, aber in meinen Testfällen kommt dann einfach das falsche Ergebnis raus.
Gut wären auch eine Procedur zum Finden des Modes (Punkt maximaler Wahrscheinlichkeitsdichte), sowie ein Random-basierter Globaler Optimierer wäre gut (BFGS u.a. habe ich).
Viele Grüße Stephan
habe zwar über die Zeit eine Bibliothek erstellt, aber einiges fehlt mir noch. Zum Beispiel suche ich eine Funktion für Konfidenz-Intervalle nach Clopper-Pearson (https://de.wikipedia.org/wiki/Konfidenz ... inlichkeit).
Darin ist die inv. Beta-Funktion enthalten. Hab zwar einiges dazu gefunden, aber in meinen Testfällen kommt dann einfach das falsche Ergebnis raus.
Gut wären auch eine Procedur zum Finden des Modes (Punkt maximaler Wahrscheinlichkeitsdichte), sowie ein Random-basierter Globaler Optimierer wäre gut (BFGS u.a. habe ich).
Viele Grüße Stephan
-
- Beiträge: 25
- Registriert: Mi 14. Nov 2012, 14:36
- OS, Lazarus, FPC: Linux Kernel 6.6 (L 3.0 FPC 3.2.2)
- CPU-Target: x86_64 Linux gtk2
Re: Mathe-Unit für Statistik und Optimierung
Hallo Stephan,
bin ich bei dir richtig? Ich suche gerade eine Pascal Funktion für den GESD Ausreißer Test.
Bin da über die dmath units gestolpert: https://www.unilim.fr/pages_perso/jean. ... tpmath.htm
Da sind viele Statistik-Funktionen drin (Beta-, Gamma Fkt, Incomplete Beta, Inverse Beta, etc...), aber den kompletten `Generalised Extreme Studentised Deviate Outlier Test` (geiles Wort) muss ich mir wohl noch selber bauen. Oder hast du eine Idee, wo es den schon als "einfache" Funktion für Lazarus/FPC gibt?
Vielen Dank für deine Hilfe
bin ich bei dir richtig? Ich suche gerade eine Pascal Funktion für den GESD Ausreißer Test.
Bin da über die dmath units gestolpert: https://www.unilim.fr/pages_perso/jean. ... tpmath.htm
Da sind viele Statistik-Funktionen drin (Beta-, Gamma Fkt, Incomplete Beta, Inverse Beta, etc...), aber den kompletten `Generalised Extreme Studentised Deviate Outlier Test` (geiles Wort) muss ich mir wohl noch selber bauen. Oder hast du eine Idee, wo es den schon als "einfache" Funktion für Lazarus/FPC gibt?
Vielen Dank für deine Hilfe
-
- Beiträge: 27
- Registriert: Mo 17. Feb 2014, 10:11
Re: Mathe-Unit für Statistik und Optimierung
Hi Volker,
lese jetzt erst deine Nachricht. Ausreissersuche ist so eine Sache. Genial finde ich MLE mit censoring. Wenn man einen potentiellen Ausreisser erkannt hat, dann muss man ihn nicht weglassen, sondern kann ihn quasi bis auf einen gewissen realistischen Zensorwert zurueck-pushen, und die Parameterberechnung ist trotzdem korrekt. Geht z.B. gut wenn ein Messgeraet einen Ueberlauf hat, dann ist das Sample quasi auf den maximalen skalenwert zensiert.
Gut ist es auch die Werte, wie beim normal quantile plot, umzuskalieren, so dass sich eine Gerade ergeben muesste. Dann kann man die Standardmethoden anwenden.
VG Stephan
lese jetzt erst deine Nachricht. Ausreissersuche ist so eine Sache. Genial finde ich MLE mit censoring. Wenn man einen potentiellen Ausreisser erkannt hat, dann muss man ihn nicht weglassen, sondern kann ihn quasi bis auf einen gewissen realistischen Zensorwert zurueck-pushen, und die Parameterberechnung ist trotzdem korrekt. Geht z.B. gut wenn ein Messgeraet einen Ueberlauf hat, dann ist das Sample quasi auf den maximalen skalenwert zensiert.
Gut ist es auch die Werte, wie beim normal quantile plot, umzuskalieren, so dass sich eine Gerade ergeben muesste. Dann kann man die Standardmethoden anwenden.
VG Stephan
- fliegermichl
- Lazarusforum e. V.
- Beiträge: 1639
- Registriert: Do 9. Jun 2011, 09:42
- OS, Lazarus, FPC: Lazarus Fixes FPC Stable
- CPU-Target: 32/64Bit
- Wohnort: Echzell
Re: Mathe-Unit für Statistik und Optimierung
Aha, verstehe! Bahnhof 

-
- Beiträge: 27
- Registriert: Mo 17. Feb 2014, 10:11
Re: Mathe-Unit für Statistik und Optimierung
Muss gestehen, dass ich in der Schule Statistik und mehr noch Matrizen gehasst habe, ABER das sind 2 sehr praktische Sachen.fliegermichl hat geschrieben:Aha, verstehe! Bahnhof
-
- Beiträge: 98
- Registriert: Di 4. Aug 2015, 15:29
- OS, Lazarus, FPC: Linux, Raspbian, Windows
- CPU-Target: 64/32 Bit
Re: Mathe-Unit für Statistik und Optimierung
Hallo zusammen,
mit den Ausreißern und deren Erkennung ist das so eine Sache.
Einige Statistik-Koryphäen haben Algorithmen entwickelt, nach denen Ausreißer erkannt werden können.
Es obliegt aber dem Experimentator bzw. dem Auswerter des Datenmaterials, was er mit den erkannten Ausreißern anstellt - und insbesondere, ob es legitim ist, Ausreißer aus dem auszuwertenden Datenmaterial zu löschen.
Vermeintliche Ausreißer können nämlich einen aktuellen Trend andeuten. So wurden z.B. bereits in den 60ern und 70ern des vergangenen Jahrhunderts Ozon-Messungen durchgeführt. Zwar beobachtete man immer häufiger<Ausreißer, die man sich nicht erklären konnte und vermutete - ohne es wirklich zu wissen - irgendwelche Störungen im Messsystem. Anstatt diesen vermuteten Störungen auf den Grund zu gehen, hat man lieber die vermeintlichen Ausreißer entfernt und - stellte dann fest, dass eine signifikante Ozonabnahme nicht geschlussfolgert werden konnte.
Ohne Eliminierung der vermeintlichen Ausreißer hätte man einen Trend erkennen müssen - der zu einem wesentlich frühzeitigeren Umdenken in der FCKW-Nutzung hätte führen müssen. So vergingen Jahre / Jahrzehnte des Schlafwandelns.
Es ist sehr leicht gesagt, gilt aber auch hier: Man muss wissen, was man tut.
Durch bloßes Eintippen von Messwerten, Knöpchen drücken und irgendwas bestätigen, dessen Hintergrund man sich nicht vollständig verinnerlicht hat, steigert den Anteil solcher fehlerhaften Auswertungen.
Bevor man sich überhaupt entschließen darf, vermeintliche Ausreißer zu eliminieren, muss man sich im Klaren werden, welcher Verteilung die Messwerte entspringen. Nicht jede Messreihe ist normalverteilt. Setzt man hier Ausreißerverfahren (z.B. nach Grubbs) ein, hat aber keine normalverteilten Messwerte, dann ist die Eliminierung von Messwerten innerhalb der "inneren Zäune" garantiert nicht erlaubt.
Beste Grüße
Andreas
mit den Ausreißern und deren Erkennung ist das so eine Sache.
Einige Statistik-Koryphäen haben Algorithmen entwickelt, nach denen Ausreißer erkannt werden können.
Es obliegt aber dem Experimentator bzw. dem Auswerter des Datenmaterials, was er mit den erkannten Ausreißern anstellt - und insbesondere, ob es legitim ist, Ausreißer aus dem auszuwertenden Datenmaterial zu löschen.
Vermeintliche Ausreißer können nämlich einen aktuellen Trend andeuten. So wurden z.B. bereits in den 60ern und 70ern des vergangenen Jahrhunderts Ozon-Messungen durchgeführt. Zwar beobachtete man immer häufiger<Ausreißer, die man sich nicht erklären konnte und vermutete - ohne es wirklich zu wissen - irgendwelche Störungen im Messsystem. Anstatt diesen vermuteten Störungen auf den Grund zu gehen, hat man lieber die vermeintlichen Ausreißer entfernt und - stellte dann fest, dass eine signifikante Ozonabnahme nicht geschlussfolgert werden konnte.
Ohne Eliminierung der vermeintlichen Ausreißer hätte man einen Trend erkennen müssen - der zu einem wesentlich frühzeitigeren Umdenken in der FCKW-Nutzung hätte führen müssen. So vergingen Jahre / Jahrzehnte des Schlafwandelns.
Es ist sehr leicht gesagt, gilt aber auch hier: Man muss wissen, was man tut.
Durch bloßes Eintippen von Messwerten, Knöpchen drücken und irgendwas bestätigen, dessen Hintergrund man sich nicht vollständig verinnerlicht hat, steigert den Anteil solcher fehlerhaften Auswertungen.
Bevor man sich überhaupt entschließen darf, vermeintliche Ausreißer zu eliminieren, muss man sich im Klaren werden, welcher Verteilung die Messwerte entspringen. Nicht jede Messreihe ist normalverteilt. Setzt man hier Ausreißerverfahren (z.B. nach Grubbs) ein, hat aber keine normalverteilten Messwerte, dann ist die Eliminierung von Messwerten innerhalb der "inneren Zäune" garantiert nicht erlaubt.
Beste Grüße
Andreas
Ubuntu 14.04 LTS / Raspbian / Windows: Lazarus ab 0.9 bis 3.0
-
- Beiträge: 3444
- Registriert: Mo 11. Sep 2006, 10:24
- OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
- CPU-Target: X32 / X64 / ARMv5
- Wohnort: Krefeld
Re: Mathe-Unit für Statistik und Optimierung
????? !!!!!! ??????AndreasMR hat geschrieben:Es obliegt aber dem Experimentator bzw. dem Auswerter des Datenmaterials, was er mit den erkannten Ausreißern anstellt - und insbesondere, ob es legitim ist, Ausreißer aus dem auszuwertenden Datenmaterial zu löschen.
Ausreißer dürfen natürlich nicht gelöscht werden, sonst stimmt die Signifikanz-Berechnung nicht mehr und ohne gesicherte Signifikanz-Betrachtung ist das Ergebnis der Messreihe in keiner Weise aussage-kräftig .
Erkennen der Ausreißer ist natürlich trotzdem sinnvoll, um eventuelle Ursachen für Messfehler zu suchen und zu bekämpfen.
Dann muss man eine neue Messreihe machen.
Alles andere ist statistischer Unfug. (Aber üblich in den beliebten und teuren Auftrags-Gutachten - auch Lügenmärchen genannt).
-Michael
-
- Beiträge: 27
- Registriert: Mo 17. Feb 2014, 10:11
Re: Mathe-Unit für Statistik und Optimierung
Ausreisser sind ja offensichtlich sehr kontrovers!
Ein Ausreisser ist ein Messwert, der nicht zur angenommenen Verteilung PASST, also den Fit quasi "stoert", also oft die Signifikanz reduziert.
Am besten der Ursache auf den Grund gehen, die ganze Messung neu machen kann aber uebertrieben sein. Wenn man z.B. weiss, dass durch ein Uebertragungsfehler ein Wert unsinnig wurde, dann musste man nicht alles neu machen, WENN der Uebertragungsfehler quasi ein Messwert zufaellig rausgepickt und gestoert hat ("Censored at random"). Wenn die "Stoerung" systematisch ist (z.B. nur auf grosse Werte), dann sieht es natuerlich anders aus ("Right-Censored").
Aber selbst die Information "Wert nicht genau bekannt, aber sicher >=irgendeine Zahl" kann noch genutzt werden! Und man bekommt dadurch eine stabilere Aussage, als wenn man den Wert weglaesst. Das waere in der Tat ziemlich unwissenschaftlich; man kann damit z.B. prima "beweisen" das Homoopathie eine Superwirkung hat. Alles Experimente die dagegen sprechen laesst man als "Fehlmessung" einfach weg.
Ein Ausreisser ist ein Messwert, der nicht zur angenommenen Verteilung PASST, also den Fit quasi "stoert", also oft die Signifikanz reduziert.
Am besten der Ursache auf den Grund gehen, die ganze Messung neu machen kann aber uebertrieben sein. Wenn man z.B. weiss, dass durch ein Uebertragungsfehler ein Wert unsinnig wurde, dann musste man nicht alles neu machen, WENN der Uebertragungsfehler quasi ein Messwert zufaellig rausgepickt und gestoert hat ("Censored at random"). Wenn die "Stoerung" systematisch ist (z.B. nur auf grosse Werte), dann sieht es natuerlich anders aus ("Right-Censored").
Aber selbst die Information "Wert nicht genau bekannt, aber sicher >=irgendeine Zahl" kann noch genutzt werden! Und man bekommt dadurch eine stabilere Aussage, als wenn man den Wert weglaesst. Das waere in der Tat ziemlich unwissenschaftlich; man kann damit z.B. prima "beweisen" das Homoopathie eine Superwirkung hat. Alles Experimente die dagegen sprechen laesst man als "Fehlmessung" einfach weg.
- fliegermichl
- Lazarusforum e. V.
- Beiträge: 1639
- Registriert: Do 9. Jun 2011, 09:42
- OS, Lazarus, FPC: Lazarus Fixes FPC Stable
- CPU-Target: 32/64Bit
- Wohnort: Echzell
Re: Mathe-Unit für Statistik und Optimierung
Ja Statistik ist toll!
Wenn man einmal vorne am Reh vorbeischiesst und einmal hinten vorbei ist es statistisch gesehen tot
Wenn man einmal vorne am Reh vorbeischiesst und einmal hinten vorbei ist es statistisch gesehen tot

-
- Beiträge: 3444
- Registriert: Mo 11. Sep 2006, 10:24
- OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
- CPU-Target: X32 / X64 / ARMv5
- Wohnort: Krefeld
Re: Mathe-Unit für Statistik und Optimierung
... kann ein ähnlicher Fehler "zufälliger Weise" auch einen völlig unerwünschten Wert zu einem erwünschten machen, damit die Bezahlung des Gutachtens sichern und nachher jede Menge Menschenleben kosten.weber_8722 hat geschrieben: WENN der Uebertragungsfehler quasi ein Messwert zufaellig rausgepickt und gestoert hat ...
Oder "beweisen" dass Glyphost nicht krebserregend ist. (Die Krebsfälle sind natürlich Messfehler, weil Krebs ja auch ansonsten auftritt.)weber_8722 hat geschrieben:man kann damit z.B. prima "beweisen" das Homoopathie eine Superwirkung hat. .
-Michael
Re: Mathe-Unit für Statistik und Optimierung
Ja, so ist das eben, wenn der Mensch an Dingen "rumspielt", geht immer irgend etwas kaputt 

Gruß, Michael
-
- Beiträge: 1102
- Registriert: Di 5. Aug 2008, 09:37
- OS, Lazarus, FPC: Windows ,Linux,FreeBSD,Dos (L trunk FPC trunk)
- CPU-Target: 32/64,PPC(+64), ARM
- Wohnort: Eindhoven (Niederlande)
Re: Mathe-Unit für Statistik und Optimierung
FPC unit spe:
{ Function to calculate the (complete) beta function
beta(a, b) = int(t, 0, 1, t^(a-1) * (1-t)^(b-1) with a > 0, b > 0
beta(a, b) = spegam(a) * spegam(b) / spegam(a + b) }
function beta(a, b: ArbFloat): ArbFloat;
{ Function to calculate the (regularized) incomplete beta function
betai(a, b, x) = int(t, 0, x, t^(x-1) * (1-t)^(y-1) ) / beta(a,b) }
function betai(a, b, x: ArbFloat): ArbFloat;
function invbetai(a, b, y: ArbFloat; eps: ArbFloat = 0.0): ArbFloat;
{ Function to calculate the (complete) beta function
beta(a, b) = int(t, 0, 1, t^(a-1) * (1-t)^(b-1) with a > 0, b > 0
beta(a, b) = spegam(a) * spegam(b) / spegam(a + b) }
function beta(a, b: ArbFloat): ArbFloat;
{ Function to calculate the (regularized) incomplete beta function
betai(a, b, x) = int(t, 0, x, t^(x-1) * (1-t)^(y-1) ) / beta(a,b) }
function betai(a, b, x: ArbFloat): ArbFloat;
function invbetai(a, b, y: ArbFloat; eps: ArbFloat = 0.0): ArbFloat;
-
- Beiträge: 27
- Registriert: Mo 17. Feb 2014, 10:11
Re: Mathe-Unit für Statistik und Optimierung
Looks good, where can I get it?marcov hat geschrieben:unit spe
Currently, I am using DPMath, which has this also.
-
- Beiträge: 582
- Registriert: Sa 22. Okt 2016, 23:12
- OS, Lazarus, FPC: W10, L 3.8
- CPU-Target: 32+64bit
- Wohnort: Dresden
Re: Mathe-Unit für Statistik und Optimierung
@weber_8722
die unit spe ist in lazarus schon drin. Einfach mit in die uses oben mit einbinden.
die unit spe ist in lazarus schon drin. Einfach mit in die uses oben mit einbinden.
LG Maik
Windows 10,
- Lazarus 3.8 (stable) + fpc 3.2.2 (stable)
- Lazarus 4.99 (trunk) + fpc 3.3.1 (main/trunk)
Windows 10,
- Lazarus 3.8 (stable) + fpc 3.2.2 (stable)
- Lazarus 4.99 (trunk) + fpc 3.3.1 (main/trunk)
-
- Beiträge: 1102
- Registriert: Di 5. Aug 2008, 09:37
- OS, Lazarus, FPC: Windows ,Linux,FreeBSD,Dos (L trunk FPC trunk)
- CPU-Target: 32/64,PPC(+64), ARM
- Wohnort: Eindhoven (Niederlande)
Re: Mathe-Unit für Statistik und Optimierung
Und unit Typ fuer die Typen 
