Mathe-Unit für Statistik und Optimierung

Zur Vorstellung von Komponenten und Units für Lazarus
Antworten
weber_8722
Beiträge: 26
Registriert: Mo 17. Feb 2014, 10:11

Mathe-Unit für Statistik und Optimierung

Beitrag von weber_8722 »

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

volker
Beiträge: 24
Registriert: Mi 14. Nov 2012, 14:36
OS, Lazarus, FPC: Rosa Linux Desktop R8 (L 1.6, FPC 2.6.4)
CPU-Target: 32Bit

Re: Mathe-Unit für Statistik und Optimierung

Beitrag von volker »

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

weber_8722
Beiträge: 26
Registriert: Mo 17. Feb 2014, 10:11

Re: Mathe-Unit für Statistik und Optimierung

Beitrag von weber_8722 »

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

Benutzeravatar
fliegermichl
Lazarusforum e. V.
Beiträge: 1430
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

Beitrag von fliegermichl »

Aha, verstehe! Bahnhof :-)

weber_8722
Beiträge: 26
Registriert: Mo 17. Feb 2014, 10:11

Re: Mathe-Unit für Statistik und Optimierung

Beitrag von weber_8722 »

fliegermichl hat geschrieben:Aha, verstehe! Bahnhof :-)

Muss gestehen, dass ich in der Schule Statistik und mehr noch Matrizen gehasst habe, ABER das sind 2 sehr praktische Sachen.

AndreasMR
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

Beitrag von AndreasMR »

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
Ubuntu 14.04 LTS / Raspbian / Windows: Lazarus ab 0.9 bis 3.0

mschnell
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

Beitrag von mschnell »

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

weber_8722
Beiträge: 26
Registriert: Mo 17. Feb 2014, 10:11

Re: Mathe-Unit für Statistik und Optimierung

Beitrag von weber_8722 »

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.

Benutzeravatar
fliegermichl
Lazarusforum e. V.
Beiträge: 1430
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

Beitrag von fliegermichl »

Ja Statistik ist toll!

Wenn man einmal vorne am Reh vorbeischiesst und einmal hinten vorbei ist es statistisch gesehen tot :-)

mschnell
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

Beitrag von mschnell »

weber_8722 hat geschrieben: WENN der Uebertragungsfehler quasi ein Messwert zufaellig rausgepickt und gestoert hat ...

... 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:man kann damit z.B. prima "beweisen" das Homoopathie eine Superwirkung hat. .

Oder "beweisen" dass Glyphost nicht krebserregend ist. (Die Krebsfälle sind natürlich Messfehler, weil Krebs ja auch ansonsten auftritt.)

-Michael

Benutzeravatar
six1
Beiträge: 782
Registriert: Do 1. Jul 2010, 19:01

Re: Mathe-Unit für Statistik und Optimierung

Beitrag von six1 »

Ja, so ist das eben, wenn der Mensch an Dingen "rumspielt", geht immer irgend etwas kaputt :D
Gruß, Michael

marcov
Beiträge: 1100
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

Beitrag von marcov »

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;

weber_8722
Beiträge: 26
Registriert: Mo 17. Feb 2014, 10:11

Re: Mathe-Unit für Statistik und Optimierung

Beitrag von weber_8722 »

marcov hat geschrieben:unit spe


Looks good, where can I get it?
Currently, I am using DPMath, which has this also.

sstvmaster
Beiträge: 575
Registriert: Sa 22. Okt 2016, 23:12
OS, Lazarus, FPC: W10, L 2.2.6
CPU-Target: 32+64bit
Wohnort: Dresden

Re: Mathe-Unit für Statistik und Optimierung

Beitrag von sstvmaster »

@weber_8722

die unit spe ist in lazarus schon drin. Einfach mit in die uses oben mit einbinden.
LG Maik

Windows 10,
- Lazarus 2.2.6 (stable) + fpc 3.2.2 (stable)
- Lazarus 2.2.7 (fixes) + fpc 3.3.1 (main/trunk)

marcov
Beiträge: 1100
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

Beitrag von marcov »

Und unit Typ fuer die Typen :-)

Antworten