Fehler der Fehler berechnen

Neue Frage »

fredbeaux Auf diesen Beitrag antworten »
Fehler der Fehler berechnen
Meine Frage:
Hallo liebe Community!

Ich habe eine Frage bei zu Fehlerberechnung auf die ich Rahmen einer Belegarbeit gestoßen bin. Und zwar geht es um Kultivierungen von Bakterien in verschiednen Kolben, von denen jeweils mit dreifach Bestimmung die Zellkonzentration bestimmt wird. Also beispielsweise:

-Kolben A Messungen: 5 g/l, 4 g/l, 6 g/l
-Kolben B Messungen: 6 g/l, 5 g/l, 7 g/l

Daraus habe ich den Mittelwert mit Fehler berechnet:

Kolben A: 5 +- 1 g/l
Kolben B: 6 +- 1 g/l

Jetzt würde ich gerne die den Mittelwert und Fehler der Kolben A und B bestimmen. Und gerade beim Fehler bin ich mir unsicher, wie ich da vorgehen soll.


Meine Ideen:
Bis jetzt habe ich den Fehler immer über



berechnet. Kann ich in diese Formel auch einfach die beiden Fehler einsetzen um quasi den Fehler des Fehlers zu berechnen?

Vielen Dank für die Hilfe!
Finn_ Auf diesen Beitrag antworten »

Eigentlich sollte so eine Messreihe mindestens 10 Messungen haben. Es geht dabei ja darum, zufällige Abweichungen herauszurechnen. Das geht umso besser, je mehr Messungen vorliegen. Allerdings ist auch schon bei drei Messungen eine gewisse Aussagekraft da.

Nun gäbe es den Ansatz der Zusammenfassung beider Messreihen zu einer einzigen.

Beim anderen Ansatz liegen nun zwei Mittelwerte und geschätzte Standardabweichungen vor. Man könnte nun folgendes tun: Über die geschätzte Standardabweichung beschafft man sich (unter der Annahme die Messwerte streuen normalverteilt um den wahren Wert) ein Konfidenzintervall, etwa 68%, 95% oder argwöhnische 99%. Das liefert Fehlergrenzen mit denen sich eine Fehlerfortpflanzung rechnen lässt. Für den Mittelwert

gilt


Allerdings gibt es auch eine bessere Abschätzung der Fehlerfortpflanzung, weil wir mehr Information haben als nur die Fehlergrenzen. Nach dem gaußschen Fehlerfortpflanzungsgesetz gilt

wobei die geschätzten Standardabweichungen sind. Beim Mittelwert führt das zu

Anschließend kann man über die Konfidenzintervalle 68%, 95% usw. von angeben.
Finn_ Auf diesen Beitrag antworten »

Am besten du zweifelst an allem. An mir, an deinem Lehrpersonal und an den Lehrbüchern.

Nehmen wir einmal an, der wahre Wert, nennen wir ihn , wäre uns bekannt. Die Messung Nr. ist die Realisierung einer Zufallsgröße , die um diesen Wert herum streut, z.B. normalverteilt mit der tatsächlichen Standardabweichung . Nun führt man Messungen durch, dies entspricht der Zufallsgröße

Wie groß ist der Erwartungswert ? Und wie groß ist die Varianz, also der Erwartungswert des quadratischen Fehlers ?

Nach der Mittelwertsregel für unkorrelierte Zufallsgrößen gilt und

Die tatsächliche Standardabweichung des Mittelwerts beträgt also . Ein Zufallszahlengenerator ermöglicht nun die Simulation unterschiedlicher Abschätzungen dieser tatsächlichen Standardabweichung. Ich hab dazu mal kurz ein Programm geschrieben.

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
from math import sqrt
from numpy import random as rng

# w: wahrer Wert
# s: tatsächliche Standardabweichung
# n: Anzahl der erzeugten Messwerte
def samples(w,s,n):
    return [rng.normal(w,s) for _ in range(n)]

# Arithmetischer Mittelwert
def mean(a):
    return sum(a)/len(a)

# Schätzung des wahren Wertes und der Standardabweichung
def estimate(a):
    mu = mean(a); n = len(a)
    sigma = sqrt(sum((x-mu)**2 for x in a)/(n*(n-1)))
    return {"mu": mu, "sigma": sigma}

def method1(w,s,n):
    return estimate(samples(w,s,2*n))["sigma"]

def method2(w,s,n):
    sigma1 = estimate(samples(w,s,n))["sigma"]
    sigma2 = estimate(samples(w,s,n))["sigma"]
    return 0.5*sqrt(sigma1**2+sigma2**2)

def method3(w,s,n):
    sigma1 = estimate(samples(w,s,n))["sigma"]
    sigma2 = estimate(samples(w,s,n))["sigma"]
    return 0.5*(sigma1+sigma2)

methods = [method1,method2,method3]

# N: Anzahl der Simulationen einer Messreihe
# w: wahrer Wert
# s: tatsächliche Standardabweichung
# n: Anzahl der Messungen
def simulate(N,w,s,n):
    for k in range(len(methods)):
        method = methods[k]
        sigma_mean = mean([method(w,s,n) for _ in range(N)])
        Abweichung = sigma_mean - s/sqrt(2*n)
        print("Verfahren {}: Abweichung = {}".format(k+1,Abweichung))

simulate(N=10000,w=0,s=1.0,n=10)
Finn_ Auf diesen Beitrag antworten »

Die Simulation berücksichtigt natürlich nicht systematische Fehler. Man könnte sich nun noch überlegen was geschieht, wenn es bei jeder Experimentalanordnung einen systematischen Fehler gibt der normalverteilt um 0 streut, oder schlimmer, mit unbekannter Verteilung um einen nichtverschwindenden Wert.
Neue Frage »
Antworten »



Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »