Die Mathe-Redaktion - 14.12.2019 00:33 - Registrieren/Login
Auswahl
ListenpunktHome
ListenpunktAktuell und Interessant ai
ListenpunktArtikelübersicht/-suche
ListenpunktAlle Links / Mathe-Links
ListenpunktFach- & Sachbücher
ListenpunktMitglieder / Karte / Top 15
ListenpunktRegistrieren/Login
ListenpunktArbeitsgruppen
Listenpunkt? im neuen Schwätz
ListenpunktWerde Mathe-Millionär!
ListenpunktFormeleditor fedgeo
Schwarzes Brett
Aktion im Forum
Suche
Stichwortsuche in Artikeln und Links von Matheplanet
Suchen im Forum
Suchtipps

Bücher
Englische Bücher
Software
Suchbegriffe:
Mathematik bei amazon
Naturwissenschaft & Technik
In Partnerschaft mit Amazon.de
Kontakt
Mail an Matroid
[Keine Übungsaufgaben!]
Impressum

Bitte beachten Sie unsere Nutzungsbedingungen, die Distanzierung, unsere Datenschutzerklärung und
die Forumregeln.

Sie können Mitglied werden. Mitglieder können den Matheplanet-Newsletter bestellen, der etwa alle 2 Monate erscheint.

Der Newsletter Okt. 2017

Für Mitglieder
Mathematisch für Anfänger
Wer ist Online
Aktuell sind 159 Gäste und 8 Mitglieder online.

Sie können Mitglied werden:
Klick hier.

Über Matheplanet
 

Antworte auf:  Abschätzen einer Messfehler-Verteilung aus Messwerten von Lucky_7
Forum:  Stochastik und Statistik, moderiert von: Kleine_Meerjungfrau Monkfish epsilonkugel

[Zur Forum-Gliederung] [Wie man Fragen beantwortet]

  Alle registrierten Mitglieder können Mitteilungen schreiben.
Benutzername:
Passwort:
Nachricht-Icon:                     
                    
                  
Nachricht:


 

Erledigt J


Eingabehilfen (JavaScript): [Link extern intern] [MathML?] [$$?]
[fed-Bereich] [LaTeX-inline] [LaTeX-display] [Tikz] [hide-Bereich][show-Bereich] [Quelltext [num.]][?]
 Zeige Vorschau      Schreibe im fedgeoFormeleditor oder mit Latex.

Wähle Smilies für Deine Nachricht: :-) :-( :-D ;-) :-0 8-) :-? :-P :-|
Optionen: Deaktiviere HTML in dieser Nachricht
Deaktiviere MATHML in dieser Nachricht. Wenn Dein Text $-Zeichen enthält, die nicht LaTeX-Formeln begrenzen.
Deaktiviere Smilies in dieser Nachricht
Zeige die Signatur (Kann in 'Mein Profil' editiert werden.)
    [Abbrechen]
 
Beachte bitte die [Forumregeln]


Themenübersicht
Lucky_7
Aktiv
Dabei seit: 21.01.2018
Mitteilungen: 164
Herkunft:
 Beitrag No.11, eingetragen 2019-05-12 21:01    [Diesen Beitrag zitieren]

hey Leute,

tut mir leid, das Thema lässt mich nicht los:
Ich habe gerade herausgefunden, dass meine Daten einer bimodalen Verteilung folgen!

Der Plot dazu sieht so aus:


Die gefittete Bimodal-Verteilung folgt der geschätzten PDF also nahezu identisch!

Ich werde das jetzt mit einem KS-Test überprüfen.


Lucky_7
Aktiv
Dabei seit: 21.01.2018
Mitteilungen: 164
Herkunft:
 Beitrag No.10, eingetragen 2019-04-24 19:19    [Diesen Beitrag zitieren]

Hey,

danke für dein Input, Kurvenintegral!

Es liegt schon etwas zurück, dass ich einen Hypothesen-Test durchgeführt habe...
Ich habe deshalb etwas auf wikipedia recherchiert, und mich für den Kolmogorov-Smirnov-Test entschieden (Einstichprobenproblem). Die Intuition hinter diesem Test ist: Ich vergleiche die Cumulative Distribution Function der Stichproben-Verteilung mit der CDF der hypothetischen Verteilung. Wenn die Differenz der einzelnen ausgewerteten Punkte einen kritischen Wert übersteigt, wird die Nullhypothese abgelehnt.
Ich verstehe nicht so recht warum wir zusätzlich zum d_o auch noch das d_u betrachten (siehe hier)

Jedenfalls habe ich diesen Test implementiert. Du kannst das Ergebnis in der .py-File sehen, die ich ein paar Posts vorher verlinkt habe. Der Hypothesen-Test steht in Zeile 93 bis 113.

Der Hypothesen-Test bestätigt, dass meine geschätzte pdf keiner Gauß-Verteilung entspricht:


Allerdings frage ich mich: Für die CDF der geschätzten PDF, habe ich die einzelnen Elemente der PDF aufaddiert und dann durch die Gesamtsumme geteilt:
python
np.cumsum(pdf)/np.sum(pdf)

Ist denn die geschätzte PDF, die ich hier schon häufiger gezeigt habe, dann überhaupt korrekt? - Eigentlich ist doch die CDF das Integral über der PDF. Wieso muss ich hier noch mit np.sum(pdf) normalisieren?


Kurvenintegral
Junior
Dabei seit: 16.08.2014
Mitteilungen: 14
Herkunft: Hessen
 Beitrag No.9, eingetragen 2019-04-22 19:58    [Diesen Beitrag zitieren]

Hallo,

ja so einen Plot habe ich gemeint.

Du sagst, dass du einen Gauß-verteilten Fehler brauchst. Hast du mal gestestet, ob dein Fehler Gauß-Verteilt ist?
Ich sehe das Problem, dass du dir ja nicht aussuchen kannst, wie deine Messdaten verteilt sind, sondern der Zufall im Experiment steckt. Natürlich würde ich auch erstmal davon ausgehen, dass die Messfehler Gauß-Verteilt sind, solange nichts offensichtliches dagegen spricht. Aber wenn sich rausstellt, dass die Fehler nicht Gauß-verteilt sind, würde ich eher versuchen herauszufinden woran das liegen könnte, als mit einer gefitteten Gauß-Kurve weiter zu rechnen.

Ich frage mal in die Runde: Wäre es ok, aufgrund der vorliegenden Daten und der Annahme, dass die Messfehler Normalverteilt sind, die Parameter der Normalverteilung zu schätzen und damit weiter zu rechnen?
Wenn ein Test die Normalverteilung nicht bestätigt, bliebe was anderes übrig als den Maximalfehler zu nehmen?


Lucky_7
Aktiv
Dabei seit: 21.01.2018
Mitteilungen: 164
Herkunft:
 Beitrag No.8, eingetragen 2019-04-22 13:24    [Diesen Beitrag zitieren]

@Schnitzel: Was genau meinst du mit 'wie sieht dein Messprozess aus?'

Ich habe den Abstand vom Sensor zu einem Hindernis gemessen. Da es sich um einen Ultraschallsensor handelt, funktioniert das so: Die Schallwelle trifft auf das Hindernis und wird reflektiert. Aus der Flugzeit der Schallwelle wird der Abstand berechnet.
Ich habe den Abstand variiert: 5cm, 6cm, 7cm, ..., 20cm
Pro Abstand habe ich 7000 Messwerte aufgezeichnet.

@Kurvenintegral: Ich denke, dass @Schnitzels Vorgehensweise deinem Vorschlag sehr nahe kommt, richtig? Einen linearen Zusammenhang kann ich da aber leider nicht erkennen.

... ich habe übrigens meinen Python-Code, den ich verlinkt habe, geupdated. Ich werde mir sicherlich den relativen Fehler noch genauer anschauen. Jetzt gerade möchte ich aber vor allem die pdf etwas verschönern. Ich habe gehofft eine Grafik ähnlich Bild 3 in diesem Link zu erhalten.
Nachdem das den ganzen Tag lang aber nicht geklappt hat, gebe ich hiermit erstmal auf.

Zu dem geänderten Python-Skript: Ich wähle jetzt die Datenpunkte zum Zeichnen der pdf zufällig aus. Das heißt: Ich habe pro Messung 7000 Datenpunkte zur Verfügung. Für jede der 16 Messungen wähle ich 50 Datenpunkte aus. Das ganze wiederhole ich drei mal. Aus diesen Datenpunkten erstelle ich dann meine pdf, die so aussieht:


Was haltet ihr davon?
Ist es offensichtlich, dass der Messfehler nicht Gauß-verteilt ist, oder sollte ich diese Hypothese testen?


schnitzel
Aktiv
Dabei seit: 26.02.2009
Mitteilungen: 153
Herkunft:
 Beitrag No.7, eingetragen 2019-04-21 17:40    [Diesen Beitrag zitieren]

Hi,

ich glaub nicht, dass es sinnvoll ist nur den absoluten Fehler zu betrachten. Jedenfalls habe ich mal den gemessenen Wert gegen den absoluten Fehler aufgetragen:



Kannst du das erklären, bzw. wie sieht dein Messprozess aus?
Gruß


Lucky_7
Aktiv
Dabei seit: 21.01.2018
Mitteilungen: 164
Herkunft:
 Beitrag No.6, eingetragen 2019-04-21 16:22    [Diesen Beitrag zitieren]

Hey,

vielen Dank erstmal für deinen Post!

Die txt-Datei, die ich einlese, hat ja insgesamt 32 Spalten.
In den ungeraden Spalten stehen die tatsächlichen Messungen meines Abstand-Sensors. In der ersten Spalte betrug der Abstand des Sensors zum Hindernis bspw. 5cm. In den geraden Spalten steht der Messfehler. In der zweiten Spalte stehen somit die Werte aus der ersten Spalte - 5cm.
Ich interessiere mich für die Wahrscheinlichkeitsverteilung des Messfehlers. Deshalb betrachte ich nur jede zweite Spalte der txt-Datei.

Hast du für deinen Plot alle Zeilen der txt-Datei eingelesen? Weil das so viele sind, habe ich nämlich nur die ersten 100 Zeilen eingelesen.

Ich suche noch nach einer Möglichkeit beurteilen zu können, wie genau die Wahrscheinlichkeitsdichte, die ich jetzt herausgefunden habe, die Wahrscheinlichkeitsdichte meiner Messdaten widerspiegelt. Und da habe ich gedacht, dass ich evtl. Konfidenzintervalle zeichnen kann.

Die Frage ist: Was genau stellen die Konfidenzintervalle dar?

Da ich pro Messung nur 100 Werte eingelesen habe (insgesamt also 16*100), habe ich gedacht: Vielleicht kann ich die Kerndichteschätzung noch einmal durchführen und diesmal aber andere 16*100 Werte verwenden. Pro Messung habe ich ja 7000 Werte zur Verfügung. Auf diese Weise würde ich wieder eine Wahrscheinlichkeitsdichte schätzen und vielleicht irgendwie auch Konfidenzintervalle zeichnen können.

Ich hoffe du verstehst so halbwegs, was ich hier von mir gebe. Ich bin auf dem Gebiet der Statistik nicht sehr bewandert und es ist durchaus möglich, dass ich mich unklar/ungenau/falsch ausdrücke.


Flowsen95
Aktiv
Dabei seit: 25.07.2015
Mitteilungen: 94
Herkunft: Mannheim
 Beitrag No.5, eingetragen 2019-04-21 15:51    [Diesen Beitrag zitieren]

Hi Lucky_7,

ich verstehe nicht, wieso du nur jede zweite Spalte behältst? Kann man den Rest ohne Informationsverlust ignorieren?
Ich habe dieselbe Analyse mit allen Daten durchgeführt. Da die Größenordnung der Daten stark über die Spalten hinweg variiert, erhalte ich ein ganz anderes Ergebnis.

Es scheint so zu sein, dass du mit der Daumenregel-Bandbreite nicht allzuviel falsch machst (in meinem Fall unterscheiden sich die Bandbreiten nur wenig)
R
dat <- read.table("HYSRF_Errors_PerMeasurement.txt")
 
library(tidyr)
library(kedd)
#keep only every second column
#col_keep <- seq(2,ncol(dat),by=2)
#dat <- dat[,col_keep]
dat <- gather(dat)[,2]
 
 
dat.random <- sample(dat,length(dat)/30,replace=T)
cv.bw <- h.ccv(dat.random,deriv.order=0,kernel="gaussian")
 
bw.nrd(dat)
#[1] 0.6349237
cv.bw$h
#[1] 0.683013




Für Konfidenzintervalle kannst du auf eines der vielen Verteilungsresultate zurückgreifen. Siehe bspw. 6.1.5  hier
Wenn ich morgen nochmal Zeit finde, würde ich mich nochmal melden. Dann vielleicht sogar mit Python (habe erst begonnen, es zu lernen..)

Viele Grüße
FLowsen95




Lucky_7
Aktiv
Dabei seit: 21.01.2018
Mitteilungen: 164
Herkunft:
 Beitrag No.4, eingetragen 2019-04-20 12:49    [Diesen Beitrag zitieren]

Hey,

hier findest du den Link zu der txt-Datei, die ich verwende, und den python-Code, den ich bisher geschrieben habe.

Eine Anmerkung zu der txt-Datei: Sie hat insgesamt 32 Spalten und sehr, sehr viele Zeilen (um die 7000). Für den Messfehler erstelle ich ein eigenes Array, das sich aus den Einträgen jeder zweiten Spalte zusammensetzt. Insgesamt ist dieses Array etwa 16*7000 Einträge lang. Es sind also sehr viele Daten, die hier enthalten sind. Vermutlich benötige ich gar nicht so viele, insbesondere, da sich die meisten Einträge stark ähneln. Deshalb verwende ich momentan auch nur die ersten 100 Zeilen der txt-Datei.

Ich habe jetzt einen Plot erstellt, wobei ich die optimale Bandbreite mittels Cross-Validation bestimmt habe:


Dies sieht für mich nach einer bimodalen Verteilung aus. Diese Hypothese möchte ich gerne testen. Bevor ich das aber mache, möchte ich Konfidenzintervalle meines Kerndichte-Schätzers zeichnen. Ich weiß wie ich das Konfidenzintervall zu einem Daten-Array berechne. Aber in meinem Fall möchte ich ja zu jedem x-Wert der pdf ein Konfidenzintervall bestimmen. Wie mache ich das?


Flowsen95
Aktiv
Dabei seit: 25.07.2015
Mitteilungen: 94
Herkunft: Mannheim
 Beitrag No.3, eingetragen 2019-04-20 10:34    [Diesen Beitrag zitieren]

Hi Lucky_7,

ist es möglich, die Daten zu posten?
Wenn du die Zufallsvariable der zu schätzenden Dichte \(f\) bereits als normalverteilt annimmst und einen Gaußkern benutzt, ergibt sich als asymptotisch optimale Bandbreite
\[
h_{n}^{*}=1.06\cdot\frac{\sigma}{n^{1/5}}.
\] Diese funktioniert aber häufig auch ohne Normlaverteilungsannahme gut. Um sicherzugehen würde ich zusätzlich die cross-validation Bandbreite berechnen. Auf die Schnelle habe ich für Python dies gefunden:
hier


Lucky_7
Aktiv
Dabei seit: 21.01.2018
Mitteilungen: 164
Herkunft:
 Beitrag No.2, eingetragen 2019-04-20 09:38    [Diesen Beitrag zitieren]

hey,

die lineare Regression werde ich mir nachher mal anschauen.
Ich habe jetzt erst einmal eine Kernel-Density-Estimation durchgeführt, weil dies offenbar eine bessere Alternative zum Histogram-Plot ist.
 

Das Ergebnis sieht besser aus als das Histogramm, wird aber auch stark durch die gewählte Bandbreite beeinflusst.
Für eine Brandbreite von 0.5 erhalte ich:


Und für eine Bandbreite von 1.0 erhalte ich:



Aber so recht zufrieden bin ich damit immer noch nicht


Kurvenintegral
Junior
Dabei seit: 16.08.2014
Mitteilungen: 14
Herkunft: Hessen
 Beitrag No.1, eingetragen 2019-04-19 17:59    [Diesen Beitrag zitieren]

Hallo Lucky_7,

Ich würde mal eine lineare Regression durchführen und schauen, ob der Messfehler mit dem Abstand zusammenhängt (vielleicht reicht ein Plot schon aus um qualitativ einen Zusammenhang zu sehen).
Möglicherweise ist der Fehler des Sensors p% vom gemessenen Wert. Dann würdest du bei größeren Abständen auch größere Fehler machen. Wurde beim Sensor eine Bedienunsanleitung mitgeliefert? Manchmal steht dort drin, mit welchem Fehler zu rechnen ist.

Viele Grüße,
Kurvenintegral


Lucky_7
Aktiv
Dabei seit: 21.01.2018
Mitteilungen: 164
Herkunft:
 Themenstart: 2019-04-16 12:53    [Diesen Beitrag zitieren]

Hey,

ich arbeite zurzeit an einer Aufgabe, die meine Statistik-Kenntnisse etwas auf die Probe stellt. Vielleicht könnt ihr mir helfen:

Ich messe mit einem Sensor den Abstand vom Sensor zu einem Hindernis. Zum Vergleich messe ich den Abstand auch mit einem Maßband. Die Differenz zwischen beiden Werten ist mein Messfehler.
Das habe ich inzwischen für mehrere Distanzen getan: Ich habe von 5cm bis 20cm in Schritten von 1cm gemessen. Hierbei ist mir aufgefallen, dass die Messungenauigkeit nicht für jeden gewählten Abstand gleich ist. Zum Teil sind die Unterschiede recht groß (von nur 0.3cm bis zu 1.2cm). Ich könnte mir vorstellen, dass dies noch relevant wird, deshalb erwähne ich es.

Nun zu meiner Frage: Ich habe alle Messfehler in eine Datei geschrieben und ein Histogramm aus den Werten erstellt:


Ich frage mich, warum der Messfehler nicht Gauß-verteilt ist. An der Anzahl der Messungen kann es nicht liegen, die liegt bei knapp über 100.000. Der Messfehler sollte Gauß-verteilt sein, am besten noch mit Mittelwert 0. Hat jemand eine Idee woran es liegen kann?

Habe ich vielleicht einfach die falsche Anzahl an Bins gewählt? Eigentlich habe ich die Entscheidung über die richtige Anzahl der Bins Python überlassen:
python
import numpy as np
import matplotlib.pyplot as plt
 
a,b = np.loadtxt('Measurements\Sensor_Errors.txt', unpack=True, delimiter='\t', usecols=range(2))
 
 
n, bins, patches = plt.hist(x=b, bins='auto', color='#0504aa', alpha=0.7, rwidth=0.85)
plt.grid(axis='y', alpha=0.75)
plt.xlabel('Value')
plt.ylabel('Frequency')
plt.show()

Ist es vielleicht sinnvoll eine Kerndichteschätzung durchzuführen? Ich bin neu auf diesem Gebiet, weiß aber, dass ein Histogramm oftmals unzuverlässig ist, weil die Form des Histogramms so stark von der Anzahl der Bins bestimmt wird. Wenn ich eine Kerndichteschätzung inklusive Konfidenzintervallen durchführen könnte, wäre das wahrscheinlich ein genaueres Ergebnis.


 
All logos and trademarks in this site are property of their respective owner. The comments are property of their posters, all the rest © 2001-2019 by Matroids Matheplanet
This web site was made with PHP-Nuke, a web portal system written in PHP. PHP-Nuke is Free Software released under the GNU/GPL license.
Ich distanziere mich von rechtswidrigen oder anstößigen Inhalten, die sich trotz aufmerksamer Prüfung hinter hier verwendeten Links verbergen mögen.
Lesen Sie die Nutzungsbedingungen, die Distanzierung, die Datenschutzerklärung und das Impressum.
[Seitenanfang]