Aufgaben und Lösungen zu - ElementarTeilchenPhysik Rostock

Werbung
Aufgaben und Lösungen zu
“Statistische Methoden der Datenanalyse”
Dipl.-Phys. Oliver Grünberg
AG Elementarteilchenphysik
Im Wintersemester 2013/2014
Universität Rostock, Institut für Physik
Also lautet der Beschluß:
Daß der Mensch was lernen muß.
Nicht allein das A-B-C
Bringt den Menschen in die Höh‘;
Nicht allein im Schreiben, Lesen
Übt sich ein vernüftig Wesen;
Nicht allein in Rechnungssachen
Soll der Mensch sich Mühe machen;
Sondern auch der Weisheit Lehren
Muß man mit Vergnügen hören.
(Wilhelm Busch, ”Max und Moritz”, Vierter Streich)
Inhaltsverzeichnis
Seminar 1
Aufgabenzettel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Lösung 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Lösung 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4
4
5
6
Seminar 2
7
Aufgabenzettel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Lösung 1 und 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Lösung 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Seminar 3
Aufgabenzettel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Lösung 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Lösung 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15
15
16
17
Seminar 4
Aufgabenzettel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Lösung 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Lösung 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19
19
20
23
Seminar 5
Aufgabenzettel
Lösung 1 . . . .
Lösung 2 . . . .
Lösung 3 . . . .
27
27
29
31
34
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Seminar 6
40
Aufgabenzettel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
Lösung 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Seminar 7
46
Aufgabenzettel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Lösung 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
2
Seminar 8
Aufgabenzettel
Lösung 1 . . . .
Lösung 2 . . . .
Lösung 3 . . . .
.
.
.
.
52
52
53
54
56
Seminar 9
Aufgabenzettel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Lösung 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Lösung 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
57
57
58
60
Seminar 10
Aufgabenzettel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Lösung 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Lösung 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
67
67
68
70
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Seminar 11
81
Aufgabenzettel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
Lösung 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
Übungen zur Vorlesung “Statistische Methoden der Datenanalyse”
WS 13/14 — Nr. 1 — zum 24.10.13
Aufgabe 1.1
Schreiben Sie in ROOT ein Programm, dass eine gleichverteilte Zufallsgröße mit 1000 Ereignissen als Histogramm grafisch darstellt, und zeichnen Sie darüber die erwartete Verteilung.
Aufgabe 1.2
Im Jahr 1991 ging ein Rätsel durch die Presse, das ein interessantes Problem statistischer
Inferenz darstellt.
Sie haben in einem Preis-Spiel die Endrunde erreicht und haben nun die Chance auf den SuperHauptgewinn, der hinter einer von 3 Türen (A, B oder C) verborgen ist. Als Statistik-Experte
rechnen Sie sich eine Wahrscheinlichkeit von 31 aus, die richtige Tür zu erraten.
“Um es spannender zu machen”, meint der Showmaster, “öffne ich nach Ihrer ersten Wahl eine
der beiden verbleibenden Türen, und zeige Ihnen, daß dahinter kein Gewinn ist. Danach haben
Sie die Möglichkeit, Ihre Entscheidung zu ändern”.
Sie wählen Tür A.
Er öffnet Tür B.
Tatsächlich wissen Sie, daß unabhängig von Ihrer Wahl immer mindestens eine Niete-Tür bleibt,
die er öffnen kann, denn nur hinter einer ist der Gewinn verborgen, und er weiß, welche es ist.
Wie entscheiden Sie sich nun? Bleiben Sie bei Tür A, oder wählen Sie Tür C? Begründen Sie
Ihre Entscheidung! Berechnen Sie in beiden Fällen die Gewinn-Wahrscheinlichkeit.
Lösung 1.1
void P1(){
TRandom3 z(1); // Zufallsvariable
// Histogramm definieren
TH1D *h1 = new TH1D("h1","Gleichverteilung; TRandom3::Rndm()",20,-0.5,1.5);
h1->SetFillColor(1); h1->SetFillStyle(3004);
// Histogramm fuellen
const int n = 5000;
for (int i=0; i<n; i++) { h1->Fill(z.Rndm()); }
// Funktion definieren
TF1 *f1 = new TF1("f1","[0]",0,1);
f1->SetParameter(0,h1->GetBinWidth(1));
f1->SetLineColor(2); f1->SetLineStyle(9);
f1->SetNpx(1000);
// Zeichnen
TCanvas *P1 = new TCanvas("P1","P1",1200,900);
P1->cd();
h1->DrawNormalized();
f1->Draw("SAME");
}
Gleichverteilung
h1
Entries
5000
Mean
0.5022
RMS
0.2889
0.1
0.08
0.06
0.04
0.02
0
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
1.2
1.4
TRandom3::Rndm()
Lösung 1.2
Ziel der Betrachtung ist es aus der Sicht des Kandidaten abzuschätzen, ob es erfolgversprechender ist seine Wahl zu ändern oder nicht.
Sei G = x das Ereignis, dass hinter Tür x der Gewinn steht, dann ist für den Kandidaten
a-priori die Gewinnwahrscheinlichkeit für die gewählte Tür A: P (G = A) = 1/3. Sei M = x
das Ereignis, dass der Moderator die Tür x öffnet, dann ist aus Sicht des Kandidaten die
Wahrscheinlichkeit P (M = A) = 0 und P (M = B) = P (M = C) = 1/2 weil der Kandidat nicht
weiß hinter welcher Tür der Gewinn steht. Der Moderator hingegen weiß wo der Gewinn steht
und ist bei seiner Auswahl abhängig von der Kandidatenwahl. Der Kandidat hat A gewählt.
Somit gilt P (M = B|G = A) = 1/2, P (M = B|G = C) = 1. Aus dem Bayestheorem folgt:
P (G = A|M = B) = P (M = B|G = A) ·
1/3
P (G = A)
= 1/2 ·
= 1/3
P (M = B)
1/2
und
P (G = C|M = B) = P (M = B|G = C) ·
1/3
P (G = C)
=1·
= 2/3
P (M = B)
1/2
Somit ist es für den Kandidaten erfolgversprechender seine Wahl zu ändern.
Übungen zur Vorlesung “Statistische Methoden der Datenanalyse”
WS 13/14 — Nr. 2 — zum 07.11.13
Aufgabe 1
Ein Pseudozufallsgenerator, wie er in Computern und PCs zur Simulation zufälliger Ereignisse
verwendet wird, erzeugt eine Zufallszahl ξ, die zwischen 0 und 1 gleichverteilt ist, d.h.

1 falls 0 ≤ ξ < 1
f (ξ) =
0 sonst
a) Berechnen Sie die Wahrscheinlichkeitsdichten der folgenden Variablen:
r = ln ξ
1
s = tan 2π(ξ − )
2
t = sin(2πξ)
u = ξ1 · ξ2
b) In ROOT: schreiben Sie ein Programm, das die Verteilungen von r, s, t, u als Histogramm
grafisch darstellt, und zeichnen Sie darüber jeweils die erwartete Verteilung.
Aufgabe 2
Berechnen Sie für die ermittelten Wahrscheinlichkeitsdichten f (r) und f (s):
R
a) das erste Moment bezüglich 0: m01 = µ = hxi = f (x) · x dx (Mittelwert)
R
b) das zweite Moment bezüglich µ: σ 2 = h(x − hxi)2 i = f (x) · (x − hxi)2 dx (Varianz)
Aufgabe 3
In ROOT: Die Funktion TRandom::Exp(τ ) erzeugt exponentialverteilte Zufallszahlen mit der
Wahrscheinlichkeitsdichte f (x) = τ1 · exp( −x
). Erzeugen Sie damit einen Datensatz von n exτ
ponentialverteilten Zufallszahlen (xi , i = 1 . . . n) mit τ = 2 und bestimmen Sie damit:
a) den Mittelwert: µ =
n
1 P
·
xi
n i=1
(a)
b) das zweite Moment m2 =
n
1 P
· (xi − a)2 für a = 0, 0.1, 0.2, . . . , 10.0
n i=1
c) die absoluten Abweichungen bezüglich b: δ(b) =
(a)
n
1 P
·
|xi − b| für b = 0, 0.1, 0.2, . . . , 10.0
n i=1
Stellen Sie die den Datensatz xi und die Werte m2 und δ(b) in seperaten Histogrammen dar.
Bestimmen Sie weiterhin aus dem Histogramm für xi den Median M der Verteilung. Ermitteln
Sie den Wert ã für den das zweite Moment minimal wird und den Wert b̃ für den die absolute
Abweichung minimal wird. Vergleichen sie ã, b̃, µ und M .
Lösung 2.1 + 2.2
a) r = ln(ξ)
r = φ(ξ) = ln(ξ) ist monoton steigend und ξ = φ−1 (r) = er = 0 . . . |1 für r < 0
φ0 (ξ) = 1/ξ → φ0 (φ−1 (r)) = e−r
und

er
−1
g(r) =
f (φ (r))
=
φ0 (φ−1 (r)) 0
falls r < 0
sonst
somit
g(r) = er
für r < 0
r = φ(ξ) = ln(ξ) ⇒ g(r) = exp(r)
0.9
0.8
1/N dN/dr
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
-5
-4.5
-4
-3.5
-3
-2.5
r
-2
-1.5
-1
-0.5
0
2.2
a) Mittelwert: hri
Z0
hri =
rer dr =
−∞
rer |0−∞
Z0
−
er dr = (0 − 0) − [er ]0−∞ = −1 + 0 = −1
−∞
b) Varianz: µ2 = hr − hri2 i
Z0
µ2 =
−∞
0
r2 er dr = r2 er −∞ −
Z0
−∞
rer dr = (0 − 0) − (−1) = 1
b) s = tan(2π(ξ − 1/2))
s = φ(ξ) = tan [2π(ξ − 1/2)] ist nicht eindeutig im Intervall 0 . . . |1.
s nimmt im Intervall ξ = 0 . . . |1 beliebige Werte an.
ξ = φ−1 (s) =
arctan(s)
+ 1/2
2π
TMath::Tan(2*TMath::Pi()*(x-0.5))
30
20
10
0
-10
-20
-30
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
s(ξ1 ) = s(ξ2 ) → Periode von tan() = 1/2
φ0 (ξ) = 2π tan2 (2π(ξ − 1/2)) + 1 → φ0 (s) = 2π(s2 + 1)
Für nicht-injektive Funktionen muss über die Mehrfachstellen summiert werden
g(s) =
X f (ξi )
φ0
ξi
und
g(s) =
1
X
ξi
2π(s2
+ 1)
=
=

P

 φ10
für s < 0

0
sonst
ξi
2
2π(s2
+ 1)
=
1
1
· 2
π s +1
s = tan[2⋅π⋅(ξ -1/2)] ⇒ g(s)=Lorentzkurve(s)
1
0.35
0.3
1/N dN/ds
0.25
0.2
0.15
0.1
0.05
0
-5
-4
-3
-2
-1
0
s
1
2
3
4
5
2.2
a) Mittelwert: hsi
Z∞
hsi =
−∞
∞
Z∞
1
s
1 1
1
1
· 2
ds = s ·
+ · arctan(s)
−
· 2
ds
π s +1
2 π
π s +1
−∞
−∞
→ nicht definiert!
b) Varianz: µ2 = hs − hsi2 i
→ nicht definiert da hsi = nicht definiert
c) t = sin(2πξ)
t = φ(ξ) = sin(2πξ) ist nicht eindeutig im Intervall 0 . . . |1.
ξ = φ−1 (t) =
arcsin(t)
= 0 . . . |1 für −1 ≤ t < 1
2π
φ0 (ξ) = 2π cos(2πξ) → φ0 (t) = 2π cos(arcsin(t))
Für nicht-injektive Funktionen muss über die Mehrfachstellen summiert werden
g(t) =
X f (ξi )
φ0
ξi
und
g(t) =
X
ξi
=

P

 φ10
für t < 0

0
sonst
ξi
2
1
1
1
=
= ·
2π cos(2πξ)
2π cos(2πξ)
π cos(arcsin(t))
t = sin(2⋅π⋅ξ) ⇒ g(t)=1/cos(arcsin(t))
3
1/N dN/dt
2.5
2
1.5
1
0.5
-1
-0.8
-0.6
-0.4
-0.2
0
t
0.2
0.4
0.6
0.8
1
d) u = z1 · z2
u = φ(z1 , z2 ) = z1 · z2 mit u = 0 . . . 1
und

1 für z , z = 0 . . . |1
1 2
f (z1 ), f (z2 ) =
0 sonst
Nutze (triviale) Hilfsgleichung zur Reduzierung von 2 Variablen (z1 , z2 ) auf eine ξ : g(u)
z2 = z2
Die transformierte Zufallsvariable ergibt sich als Randverteilung:
Z1
g(u) =
f (u/z2 , z2 )
· dz2
kJk
v
mit
!
∂(u, z2 ) z
z
2
1 =
= z2
kJk = ∂(z1 , z2 ) 0 1 somit
Z1
g(u) =
1
· dz2 = ln |1| − ln |u| = − ln(u)
z2
u
u = ξ ⋅ξ ⇒ g(u)=-ln(u)
1 2
6
5
1/N dN/du
4
3
2
1
0
0
0.1
0.2
0.3
0.4
0.5
u
0.6
0.7
0.8
0.9
1
Lösung 2.3
void P2(){
// general
gROOT->Reset(); gROOT->SetStyle("Plain");
gStyle->SetOptStat(0); gStyle->SetOptTitle(0);
// Exponentialverteilten Datensatz erzeugen
TRandom3 z(1);
TH1D *h1 = new TH1D("h1","Exponentialverteilung; TRandom::Exp(2)",100,0,10);
const int n=10000; double x[n]={0.0};
for (int i=0; i<n; i++) { x[i]=z.Exp(2); h1->Fill(x[i]); }
// Mittelwert und Median ausrechnen
double Mean=0.0; for (int i=0; i<n; i++) { Mean += 1.0/n*x[i]; }
double sum=0.0; int j=0;
while(sum<0.5*n) {sum += h1->GetBinContent(j); j++;}
double Median = h1->GetBinLowEdge(j);
// Die Momente fuer verschiedene Zentralwerte berechnen
double M[101] = {0.0}; double S[101] = {0.0};
TH1D *h2 = new TH1D("h2","Standardabweichung; TRandom::Exp(2)",100,0,10);
h2->SetLineColor(2);
TH1D *h3 = new TH1D("h3","Betragsabweichung; TRandom::Exp(2)",100,0,10);
h3->SetLineColor(4);
for (int j=0; j<101; j++) {
for (int i=0; i<n; i++) {
M[j] += 1.0/n*TMath::Abs(0.1*j - x[i]);
S[j] += 1.0/n*TMath::Power(0.1*j - x[i],2);
}
h2->SetBinContent(j+1,TMath::Sqrt(S[j]));
h3->SetBinContent(j+1,M[j]);
}
// Ausgabe der Ergebnisse
TF1 *f1 = new TF1("f1","[0]*TMath::Exp(-x/2.0)/2",0,10);
f1->SetParameter(0,h1->GetBinWidth(1));
f1->SetLineStyle(9); f1->SetLineColor(2);
TCanvas *P2 = new TCanvas("P2","P2",1200,900);
P2->cd();
h1->DrawNormalized();
f1->Draw("SAME");
TCanvas *P21 = new TCanvas("P21","P21",1200,900);
P21->cd(); P21->SetObjectStat(0);
h3->Draw();
h2->Draw("SAME");
TLegend *Leg = new TLegend(0.2,0.6,0.5,0.8);
Leg->SetFillColor(0); Leg->SetFillStyle(0); Leg->SetBorderSize(1);
Leg->AddEntry(h2,"Betragsabweichung","l");
Leg->AddEntry(h3,"Standardabweichung","l");
Leg->Draw();
cout
cout
cout
cout
<<
<<
<<
<<
"Mittelwert
"Median bei
"’bestes’ a
"’bestes’ b
bei " << Mean << endl;
" << Median << endl;
bei " << h2->GetBinLowEdge(h2->GetMinimumBin()) << endl;
bei " << h3->GetBinLowEdge(h3->GetMinimumBin()) << endl;
}
0.05
4
3.5
Standardabweichung
0.04
Betragsabweichung
3
2.5
0.03
2
0.02
1.5
1
0.01
0.5
0
0
1
2
3
4
5
6
7
8
9
10
TRandom::Exp(2)
(a) Exponentialverteilung mit τ = 2
0
0
1
3
4
5
6
7
8
9
10
(b) Verlauf der Standardabweichung und der Betragsabweichung
n
1 P
· (xi − a)2
n i=1
n
1 P
b̃ = Median = 1.4 und minimiert δ(b) = ·
|xi − b|
n i=1
(a)
ã = Mittelwert = 2 und minimiert m2 =
2
Übungen zur Vorlesung “Statistische Methoden der Datenanalyse”
WS 13/14 — Nr. 3 — zum 14.11.13
Aufgabe 1
Ein Tuple aus zwei Zufallsvariablen (x, y) kann mit Hilfe einer 2 × 2 Matrix A in ein neues
Tuple (x0 , y 0 ) linear umtransformiert werden:
x0
y0
!
=A·
x
y
!
=
!
a b
·
c d
x
y
!
.
Die Kovarianzmatrix Cov(x, y) transformiert sich dann ebenfalls mit A:
Cov(x0 , y 0 ) = A · Cov(x, y) · AT
Finden sie die Matrix B, die zwei korrelierte Variablen (x, y) entkorreliert, d.h.:
Cov(x, y) =
0
0
ρσx σy
σx2
ρσx σy
σy2
T
Cov(x , y ) = B · Cov(x, y) · B =
!
1 0
0 1
!
Aufgabe 2
Untersuchen Sie den Marsaglia-Effekt in 3 Dimensionen am Zufallsgenerator RANDU.
long RANDU(long iSeed=5)
{
const long iMod = 2147483648;
const long iStart = 65539;
return (iSeed * iStart) % iMod;
}
Lösung 3.1
Der umgekehrte Weg wird beschritten: erzeugen von korrelierten Zufallsvariablen (x0 , y 0 ) aus
unkorrellierten Zufallsvariablen (x, y) mit Hilfe der Matrix A und ermittle dann B = A−1 .
Also:
!
x
=A·
y
!
!
0
x
x
=B·
= A−1 ·
y0
y
x0
y0
und
!
x0
y0
!
.
Für die Kovarianzmatrizen gilt:
Cov(x0 , y 0 ) = A · Cov(x, y) · AT
!
!
σx2
ρσx σy
1 0
=A·
· AT = A · A T
ρσx σy
σy2
0 1
!
!
!
2
2
a
b
a
c
a
+
b
ac
+
bd
A · AT =
·
=
.
c d
b d
ac + bd c2 + d2
(1)
Gegeben: ρ, σx , σy und gesucht: a, b, c, d
→ setze b = 0 für eindeutig bestimmtes Gleichungssystem:
σx2
ρσx σy
ρσx σy
σy2
!
a2
ac
=
ac c2 + d2
!
a 0
A=
=
c d
!
→ a = σx , c = ρ σy , d = σy
σx
0
p
ρ σy σy 1 − ρ2
!
.
Durch Invertierung von A erhält man B:

mit B = A−1
1/σx

ρ
=
− p
σx 1 − ρ2
0
1

 .
p
σy 1 − ρ2
Aus Gleichung 1 folgt:
1 0
0 1
1 0
0 1
!
= A−1 ·
!
=B·
σx2
ρσx σy
ρσx σy
σy2
σx2
ρσx σy
ρσx σy
σy2
!
· (AT )−1
!
· ((B−1 )T )−1 .
p
1 − ρ2
Lösung 3.2
#include
#include
#include
#include
<iostream>
<TCanvas.h>
<TH1D.h>
<TH2D.h>
unsigned RANDU(unsigned iSeed = 5) {
const unsigned iMod = 2147483648;
const unsigned iStart = 65539;
return (iSeed * iStart) % iMod;
}
void P3_2(int n=1e07)
{
unsigned max = 2147483648;
unsigned x=5;
unsigned t[3] = {0};
TH1D *h1 = new TH1D("h1","Marsaglia1D; RANDU(); N/binwidth",100,0,max);
TH2D *h2 = new TH2D("h2","Marsaglia2D; RANDU(); RANDU()",100,0,max,100,0,max);
for (int i=0;
x=RANDU(x);
x=RANDU(x);
x=RANDU(x);
i<n; i++) {
t[0]=x; h1->Fill(t[0]);
t[1]=x; h1->Fill(t[1]);
t[2]=x; h1->Fill(t[2]);
if (t[2]>0 && t[2]<1e06) { h2->Fill(t[0],t[1]); }
if ( (i % (n/10)) == 0) { cout << 1.0*i/n << endl; }
}
TCanvas *c1 = new TCanvas("c1","c1",1200,900);
TCanvas *c2 = new TCanvas("c2","c2",1200,900);
c1->cd(); h1->DrawNormalized("HIST");
c2->cd(); h2->Draw("BOX");
}
Marsaglia1D
0.02
0.018
0.016
N / binwidth
0.014
0.012
0.01
0.008
0.006
0.004
0.002
0
0
200
400
600
800
1000 1200
RANDU()
1400
1600
1800
2000
×106
Abbildung 1: RANDU() ist gleichverteilt in einer Dimension, keine Strukturen sind sichtbar.
Marsaglia2D
×106
2000
1800
1600
RANDU()
1400
1200
1000
800
600
400
200
×10
6
0
0
200
400
600
800
1000 1200
RANDU()
1400
1600
1800
2000
Abbildung 2: Der Marsaglia Effekt: in höheren Dimensionen bilden Tuple gefüllt mit RANDU()
Strukturen. Hier: Projektion eines 3er Tuples auf 2 Dimensionen im Band T3 > 0 && T3 < 1e6
Übungen zur Vorlesung “Statistische Methoden der Datenanalyse”
WS 13/14 — Nr. 4 — zum 21.11.13
Aufgabe 1
Das Volumen einer Kugel in n Dimensionen lässt sich schreiben als
V n = Cn · r n .
In ROOT: nutzen sie die das Hit-or-Miss Verfahren der Monte Carlo Integration zur Bestimmung der Parameter C3 , C6 und C9 . Stellen Sie den ermittelten Wert in Abhängigkeit von
der Zahl der Versuche dar (z.B. 101 , 102 , . . . , 1010 ) und vergleichen Sie das Ergebnis mit dem
theoretischen Wert
Cn =
π n/2
.
Γ(n/2 + 1)
Hierbei ist Γ(x) die Gammafunktion, die in ROOT mit TMath::Gamma(x) aufgerufen werden
kann.
Aufgabe 2
a) Folgende Variablen werden aus gleichverteilten Zufallszahlen ζ1 , ζ2 erzeugt:
p
−2 ln ζ1 · sin 2πζ2
p
y = −2 ln ζ1 · cos 2πζ2
x=
Berechnen Sie die Dichtefunktionen und die Kovarianzmatrix des Paares (x, y).
(Anm.: die Transformation (ζ1 , ζ2 ) 7→ (x, y) heißt Box-Muller-Transformation.)
b) In einem Experiment sollen Myonen (m = 106 MeV/c2 , τ = 2.2 µs) mit einem Impulsspektrum mit der Dichtefunktion f (x = p|µ, σ) aus a) mit (µ = 500 MeV/c, σ = 100 MeV/c) erzeugt
werden. (Anm.: die allgemeine Dichtefunktion für f (x) hat die beiden Parameter µ und σ für
die Lage und die Breite und kann durch die Transformation x → (x − µ)/σ gewonnen werden.)
Der Flugweg der Myonen im Laborsystem beträgt r = βγct = mp ct.
In ROOT: simulieren Sie die Verteilung f (r). Benutzen Sie die Box-Muller-Transformation um
das Impulsspektrum zu simulieren. Wie groß ist der Anteil an Myonen der weiter als 5000 m
fliegt?
Lösung 4.1
#include
#include
#include
#include
#include
#include
#include
#include
<iostream>
<TCanvas.h>
<TH1D.h>
<TRandom3.h>
<TMath.h>
<TF1.h>
<TFile.h>
<TSystem.h>
void P4_1()
{
long n=1;
int tr=10; // bis zu welcher groessenordnung wird simuliert (max=10)
double norm3=0.0, norm6=0.0, norm9=0.0;
TRandom3 X(1);
TH1D *his3 = new TH1D("his3","his3",10,0.5,10.5);
TH1D *his6 = (TH1D*) his3->Clone("his6");
TH1D *his9 = (TH1D*) his3->Clone("his9");
for (int j=0; j<tr; j++) {
n=n*10; // Zahl der Versuche wird inkrementiert
long count3=0, count6=0, count9=0;
for (long i=0; i<n; i++) {
double l3 = TMath::Power(X.Rndm(),2) + TMath::Power(X.Rndm(),2)
+ TMath::Power(X.Rndm(),2);
double l6 = l3 + TMath::Power(X.Rndm(),2) + TMath::Power(X.Rndm(),2)
+ TMath::Power(X.Rndm(),2);
double l9 = l6 + TMath::Power(X.Rndm(),2) + TMath::Power(X.Rndm(),2)
+ TMath::Power(X.Rndm(),2);
if ( l3<1.0 ) {count3++;}
if ( l6<1.0 ) {count6++;}
if ( l9<1.0 ) {count9++;}
// die Zahl der Treffer wird normiert auf das Kugelvolumen
// im N-dimensionalen Raum
norm3 = TMath::Power(2.0,3)*1.0*count3/n;
norm6 = TMath::Power(2.0,6)*1.0*count6/n;
norm9 = TMath::Power(2.0,9)*1.0*count9/n;
}
his3->SetBinContent(j+1,norm3);
his6->SetBinContent(j+1,norm6);
his9->SetBinContent(j+1,norm9);
}
double pi = TMath::Pi();
// Theoretisches Ergebnis als konstante Funktion
TF1 *res3
= new TF1("res3","TMath::Power(pi,3.0/2)/TMath::Gamma(3.0/2+1)",0.5,10.5);
TF1 *res6
= new TF1("res6","TMath::Power(pi,6.0/2)/TMath::Gamma(6.0/2+1)",0.5,10.5);
TF1 *res9
= new TF1("res9","TMath::Power(pi,9.0/2)/TMath::Gamma(9.0/2+1)",0.5,10.5);
//Abspeichern der Histogramme und Funktionen in ein .root file
TFile *F = new TFile("result.root","RECREATE");
F->cd();
his3->Write(); res3->Write();
his6->Write(); res6->Write();
his9->Write(); res9->Write();
F->Close();
gSystem->Exit(1);
}
4.30
4.25
4.20
π3/2 ≈ 4.189
Γ(3/2+1)
C3 =
4.15
4.10
4.05
4.00
3.95
1
2
3
4
5
6
7
8
9
10
log10(N)
Abbildung 3: Approximation von C3
7
6.5
6
5.5
5
C6 =
4.5
4
1
2
3
4
π6/2 ≈ 5.168
Γ(6/2+1)
5
6
7
8
9
10
log10(N)
Abbildung 4: Approximation von C6
6
5
4
3
C9 =
2
π9/2 ≈ 3.296
Γ(9/2+1)
1
0
-1
1
2
3
4
5
6
7
8
9
log10(N)
Abbildung 5: Approximation von C9
10
Lösung 4.2
Gegeben sind die standardgleichverteilten Zufallsvariablen ξ1 , ξ2 und
p
−2 ln ξ1 · sin(2πξ2 ) ,
p
y = −2 ln ξ1 · cos(2πξ2 ) .
x=
(2)
(3)
y = -2 ln(ξ1) × cos(2πξ2)
4
Cov(x,y) = -1.88× 10-3
3
2
1
0
-1
-2
-3
-4
-4
-3
-2
-1
0
1
2
3
4
x = -2 ln(ξ1) × sin(2πξ2)
Abbildung 6: Verteilung der Wertepaare (x, y)
Für die neue Dichte g(x, y) ergibt sich:
∂(x, y) −1
1
g(x, y) = f (ξ1 , ξ2 ) ·
= f (ξ1 , ξ2 ) · |J|
∂(ξ1 , ξ2 ) mit der Jakobimatrix:
|J|−1
!
∂x/∂ξ ∂x/∂ξ −1 2π
2π
1
2 =
(sin2 (2πξ2 ) + cos2 (2πξ2 )) =
=
∂y/∂ξ1 ∂y/∂ξ2 ξ1
ξ1
einsetzen ergibt:
g(x, y) = f (ξ1 , ξ2 ) ·
ξ1
ξ1
=
2π
2π

1 falls ξ , ξ ∈ (0, 1)
1 2
mit f (ξ1 , ξ2 ) =
0 sonst
Umformen der Gleichungen für x und y nach ξ1 ,
x2 + y 2 = −2 ln(ξ1 ) · (sin2 + cos2 ) ,
ξ1 = exp(−(x2 + y 2 )/2) .
Somit ergibt sich für die neue Verteilung
1
1
1
2
2
2
2
· exp(−(x + y )/2) = √ · exp(−x /2) √ · exp(−y /2)
g(x, y) =
2π
2π
2π
Demnach faktorisiert g(x, y) = g1 (x) · g2 (y) und die Variablen sind unabhängig.
g(x, y) beschreibt die Dichtefunktion der zweidimensionalen Standardnormalverteilung.
Berechnung der Kovarianz
Die Kovarianz von (x, y) berechnet sich aus der allgemeinen Formel
Z∞ Z∞

Z∞
x · y · g(x, y) dx dy − 
Cov(x, y) =
−∞ −∞
 
Z∞

x · Gy (x) dx · 
−∞
y · Gx (y) dy  ,
−∞
mit der Randverteilung
Z∞
Gx (y) =
Z∞
g(x, y) dx und Gy (x) =
−∞
g(x, y) dy .
−∞
da sich g(x, y) faktorisieren lässt, d.h. g(x, y) = g1 (x) · g2 (y), und g1 (x) und g2 (y) normiert sind,
R∞
d.h.
g1 (x)dx = 1 etc., folgt für die Randverteilungen
−∞
Z∞
g1 (x) · g2 (y) dx = g2 (y) und analog Gy (x) = g1 (x) .
Gx (y) =
−∞
Damit ergibt sich für die Kovarianz
Z∞ Z∞

Z∞
x · y · g1 (x) · g2 (y) dx dy − 
Cov(x, y) =
−∞ −∞
Z∞
x · g1 (x) dx ·
−∞
−∞

Z∞
y · g2 (y) dy − 
−∞
Z∞
x · g1 (x) dx · 
−∞
Z∞
Cov(x, y) =
 

y · g2 (y) dy  ,
−∞
 
Z∞
x · g1 (x) dx · 

y · g2 (y) dy  = 0 .
−∞
Somit sind alle unbhängigen zweidimensionalen Zufallsvariablen auch immer unkorreliert.
Fluglängenspektrum der Myonen
Der Flugweg der Myonen im Laborsystem beträgt r = βγct =
Die Dichtefunktion für die Fluglänge ergibt sich aus
g(p)
· c · e(t)
m
relative Haeufigkeit / 0.1 µs
relative Haeufigkeit / 10 MeV
f (r) =
0.04
0.035
0.03
0.025
0.02
0.015
0.01
0.005
0
0
p
ct.
m
0.045
0.04
0.035
0.03
0.025
0.02
0.015
0.01
0.005
0
0
100 200 300 400 500 600 700 800 900 1000
1
2
3
4
p / MeV
6
7
9
×10-6
10
(b) Simuliertes Zerfallszeitspektrum der Myonen e(t)
0.06
0.05
0.04
0.03
0.02
0.01
0
0
8
t/s
(a) Simuliertes Impulsspektrum der Myonen g(p)
relative Haeufigkeit / 200 m
5
18%
2000
4000
6000
8000
10000
12000
r/m
Abbildung 7: Simuliertes Fluglängenspektrum der Myonen f (r)]
Etwa 18% aller so erzeugten Myonen würde weiter fliegen weiter als 5 km.
void P4_2b() {
TRandom3 X(1);
const int n=1e5;
double c=TMath::C();
double pi=TMath::Pi();
double
double
double
double
tau=2.2e-6; // Zeit in s
pmean=500; // Masse und Impulse in MeV
psig=100;
m=106;
double p[n]={0.0}; // Impuls in MeV
double t[n]={0.0}; // Zeit in s
double r[n]={0.0}; // Weg in m
TH1D *hp = new TH1D("hp","hp; p / MeV; relative Haeufigkeit / 10 MeV",100,0,1000);
TH1D *ht = new TH1D("ht","ht; t / s; relative Haeufigkeit / 0.1 #mus",100,0,10e-6);
TH1D *hr = new TH1D("hr","hr; r / m; relative Haeufigkeit / 200 m",60,0,12000);
hp->GetXaxis()->CenterTitle(1); hp->GetYaxis()->CenterTitle(1);
ht->GetXaxis()->CenterTitle(1); ht->GetYaxis()->CenterTitle(1);
hr->GetXaxis()->CenterTitle(1); hr->GetYaxis()->CenterTitle(1);
for (int i=0; i<n; i++) {
double p1 = TMath::Sqrt(-2*TMath::Log(X.Rndm()));
double p2 = TMath::Sin(2*pi*X.Rndm());
p[i]=p1*p2*psig+pmean; hp->Fill(p[i]);
t[i]=X.Exp(tau); ht->Fill(t[i]);
r[i]=p[i]*t[i]/m*c; hr->Fill(r[i]);
}
hp->DrawNormalized();
ht->DrawNormalized();
hr->DrawNormalized();
}
Übungen zur Vorlesung “Statistische Methoden der Datenanalyse”
WS 13/14 — Nr. 5 — zum 28.11.13
Aufgabe 1
In ROOT: Erzeugen Sie aus den unabhängigen Zufallsvariablen x und y der Box-Muller Transformation
p
−2 ln ζ1 · sin 2πζ2 ,
p
y = −2 ln ζ1 · cos 2πζ2 ,
x=
und einer lineare Transformation der Form
x0
y0
!
=A·
x
y
!
die allgemeine zweidimensionale Normalverteilung für die Parameter
a) (µx , σx ) = (1, 2), (µy , σy ) = (2, 3) und ρ = 0.3
b) (µx , σx ) = (0, 1), (µy , σy ) = (1, 2) und ρ = 0.8
c) (µx , σx ) = (2, 1), (µy , σy ) = (1, 3) und ρ = −0.5
d) (µx , σx ) = (−1, 2), (µy , σy ) = (2, 1) und ρ = −0.1
Aufgabe 2
In ROOT: testen Sie die Gültigkeit des zentralen Grenzwertsatzes indem Sie 12 standardgleichverteilte Zufallsvariablen addieren und mit der erwarteten Normalverteilung vergleichen.
Aufgabe 3
a) Der Impuls eines geladenen Teilchens wird in der Kern- und Elementarteilchenphysik über die
Krümmung κ der Spur in einem homogenen Magnetfeld gemessen. Dabei ist der Messfehler auf
die Krümmung (durch die begrenzte Ortsauflösung des Detektors und Abweichungen der Spur
durch Vielfachstreuung) in guter Näherung normalverteilt. Das Vorzeichen von κ bestimmt die
Ladung Q des Teilchens.
Welche Dichtefunktion hat r =
1
κ
und der gemessene Impuls p = B · e · |r|?
b) In ROOT: stellen Sie die Dichtefunktionen von r und p (in GeV/c) aus Aufgabe (a) graphisch
dar, wenn µκ = 0.01, 0.02, 0.03 . . . 0.10 m−1 und die Standardabweichung der Messung (Fehler)
σ(κ) = 0.04 m−1 ist (10 Kurven). Das Magnetfeld hat einen Wert von B = 1.0 T (der Fehler
auf B ist vernachlässigbar klein).
Welchen Messfehler auf p würde man mit linearer Fehlerfortpflanzung erhalten? Welchen Werten
von p und y entspricht κ + σ, κ − σ? Was würden Sie in einem solchen Fall als Fehler angeben?
Lösung 5.1
double gauss(double *x, double *par)
{
double X=(x[0]-par[1])/par[2];
double Y=(x[1]-par[3])/par[4];
return 1.0/(1-par[0]*par[0])*TMath::Exp(-0.5*(X*X-2*par[0]*X*Y+Y*Y));
}
void P5_1(){
// Variablen und TGraph
TRandom3 rnr(1);
const int n=20000;
double pi = TMath::Pi();
double x[n]={0.0}, X[4][n]={0.0};
double y[n]={0.0}, Y[4][n]={0.0};
double Xmu[4]={1.0,0.0,2.0,-1.0};
double Xsig[4]={2.0,1.0,1.0,2.0};
double Ymu[4]={2.0,1.0,1.0,2.0};
double Ysig[4]={3.0,2.0,3.0,1.0};
double rho[4]={0.3,0.8,-0.5,-0.1};
TGraph *g = new TGraph(n);
TGraph *G[4];
// Erzeugung der unkorrelierten Variablen
for (int i=0; i<n; i++)
{
double x1 = TMath::Sqrt(-2*TMath::Log(rnr.Rndm()));
double x2 = TMath::Sin(2*pi*rnr.Rndm());
double y1 = TMath::Sqrt(-2*TMath::Log(rnr.Rndm()));
double y2 = TMath::Cos(2*pi*rnr.Rndm());
x[i]=x1*x2; y[i]=y1*y2;
g->SetPoint(i,x[i],y[i]);
}
// Erzeugung der korrelierten Variablen
for (int j=0; j<4; j++)
{
G[j] = new TGraph(n);
for (int i=0;
{
X[j][i] =
Y[j][i] =
+
i<n; i++)
x[i]*Xsig[j]+Xmu[j];
x[i]*rho[j]*Ysig[j]
y[i]*Ysig[j]*TMath::Power(1-rho[j]*rho[j],0.5) + Ymu[j];
G[j]->SetPoint(i,X[j][i],Y[j][i]);
}
}
// erwartete 2D Normalverteilungen zum Vergleich
TF2 *g20 = new TF2("g20",gauss,-10.0,10.0,-10.0,10.0,5);
g20->SetParameters(rho[0],Xmu[0],Xsig[0],Ymu[0],Ysig[0]);
g20->SetNpx(500); g20->SetNpy(500);
g20->SetLineWidth(2); g20->SetContour(7);
(Rest analog)
// Zeichnen
TCanvas *can0 = new TCanvas("can0","can0",1200,900);
can0->cd();
G[0]->SetMarkerStyle(6);
G[0]->Draw("AP");
g20->Draw("SAME CONT1");
(Rest analog)
15
8
10
6
4
2
y'
y'
5
0
0
-2
-5
-4
-10
-6
-8
-6
-4
-2
0
2
4
6
8
-5
-4
-3
-2
-1
x'
0
1
2
3
4
x'
(a) (µx , σx ) = (1, 2), (µy , σy ) = (2, 3), ρ = 0.3
(b) (µx , σx ) = (0, 1), (µy , σy ) = (1, 2), ρ = 0.8
6
10
5
4
3
2
y'
y'
5
0
1
0
-5
-1
-10
-2
-3
-2
-1
0
1
2
3
4
5
6
-3
-10
-8
-6
-4
-2
x'
0
2
4
6
x'
(a) (µx , σx ) = (2, 1), (µy , σy ) = (1, 3), ρ = −0.5
(b) (µx , σx ) = (−1, 2), (µy , σy ) = (2, 1), ρ = −0.1
Lösung 5.2
Bei der Addition der standardgleichverteilten Zufallsvariablen Y =
P
Xi mit µ(Xi ) = 0.5 und
i
σ(Xi )2 = 1/12 gilt zu beachten:
µ(Y ) =
X
µ(Xi ) und σ(Y )2 =
i
X
σ(Xi )2
i
Das bedeutet, dass bei 12 standardgleichverteilten Zufallsvariablen folgende Parameter für die
Normalverteilung zu erwarten sind
µ = 12 · 0.5 = 6 und σ =
p
12 · 1/12 = 1 .
Kleiner Trick: sechs der 12 standardgleichverteilten Zufallsvariablen werden subtrahiert, dadurch wird µ = 6 · 0.5 − 6 · 0.5 = 0.
void P5_2()
{
const int n=10000;
TRandom3 X(1);
double x[4]={0.0};
TH1D *h2 = new TH1D("h2","h2; Y",100,-4,4);
h2->SetLineWidth(1); h2->GetXaxis()->CenterTitle(1);
h2->SetFillStyle(3004); h2->SetFillColor(1);
TH1D *h4 = (TH1D*) h2->Clone("h4");
TH1D *h8 = (TH1D*) h2->Clone("h8");
TH1D *h12 = (TH1D*) h2->Clone("h12");
for (int i=0; i<n; i++)
{
x[0]=X.Rndm()-X.Rndm();
x[1]=x[0]+X.Rndm()-X.Rndm();
x[2]=x[1]+X.Rndm()-X.Rndm()+X.Rndm()-X.Rndm();
x[3]=x[2]+X.Rndm()-X.Rndm()+X.Rndm()-X.Rndm();
h2->Fill(x[0]);
h4->Fill(x[1]);
h8->Fill(x[2]);
h12->Fill(x[3]);
}
TF1 *g = new TF1("g","[0]*TMath::Gaus(x,0,[1],1)",-5,5);
g->SetLineColor(2); g->SetLineStyle(9);
g->SetLineWidth(1); g->SetNpx(500);
TCanvas *can = new TCanvas("can","can",1600,1200);
can->Divide(2,2);
can->cd(1);
g->SetParameters(n*h2->GetBinWidth(1),TMath::Sqrt(2.0/12));
h2->Draw("HIST"); g->DrawClone("SAME");
can->cd(2);
g->SetParameters(n*h4->GetBinWidth(1),TMath::Sqrt(4.0/12));
h4->Draw("HIST"); g->DrawClone("SAME");
can->cd(3);
g->SetParameters(n*h8->GetBinWidth(1),TMath::Sqrt(8.0/12));
h8->Draw("HIST"); g->DrawClone("SAME");
can->cd(4);
g->SetParameters(n*h12->GetBinWidth(1),TMath::Sqrt(12.0/12));
h12->Draw("HIST"); g->DrawClone("SAME");
}
h2
800
Entries
700
600
500
h4
10000
Mean
-0.00037427044
RMS
0.4072372
Underflow
0
Overflow
0
Integral
Entries
500
10000
Mean
-0.00085222835
RMS
0.57344557
Underflow
400
0
Overflow
0
Integral
10000
10000
300
400
300
200
200
100
100
0
-4
-3
-2
-1
0
1
2
3
0
-4
4
-3
-2
-1
Y
0
1
2
3
4
Y
h8
400
Entries
350
300
250
10000
Mean
0.0064851647
RMS
0.80482577
Underflow
0
Overflow
0
Integral
10000
h12
350
Entries
300
10000
Mean
0.0042155244
RMS
0.99033831
Underflow
250
0
Overflow
Integral
200
0
10000
200
150
150
100
100
50
50
0
-4
-3
-2
-1
0
Y
1
2
3
4
0
-4
-3
-2
-1
0
Y
1
2
3
4
Lösung 5.3
a) Die Umrechnung von κ = |κ|/m nach p erfolgt durch die Konstante
p = B · e/κ = 1T · e/κ = 1 eV ·
s
0.39
s
s
/|κ|
=
·
m/|κ|
=
1
eV
·
eV /|κ| ,
2
9
m
m
0.3
m
p = 0.3 GeV/c/|κ|
Die Dichtefunktion des Impuls ergibt sich aus
1
1 κ − µκ
f (κ)dκ = √
dκ
· exp −
2
σκ
2πσκ
dκ 0.3
f (p)dp = f (κ)dκ → f (p) = f (κ) · = f (0.3/p) · 2
dp
p
1 0.3/p − µκ
0.3
· exp −
f (p) = √
2
σκ
2πσκ · p2
0.45
µκ = 0.01
µκ = 0.04
µκ = 0.07
µκ = 0.1
0.4
0.35
0.3
f(p)
0.25
0.2
0.15
0.1
0.05
0
-0.05
-20
-15
-10
-5
0
5
10
p [GeV/c]
Abbildung 8: Berechnete Wahrscheinlichkeitsdichte des Impulses
15
20
void P5_3b(){
// Variablen
TRandom3 rnr(1);
const int n=200000;
double pi = TMath::Pi();
double k(0.0),p(0.0);
double Kmu[10]={0.01,0.02,0.03,0.04,0.05,0.06,0.07,0.08,0.09,0.10};
double Ksig=0.04;
TH1D stylek("hk","hk",200,-0.3,0.3);
TH1D *hk[10];
TH1D stylep("hp","hp; p [GeV/c]; f(p) / 1GeV/c",200,-20,20);
TH1D *hp[10];
// Zufallsverteilung
for (int j=0; j<10; j++)
{
hk[j]= (TH1D*)stylek.Clone(Form("hk%d",j));
hp[j]= (TH1D*)stylep.Clone(Form("hp%d",j));
for (int i=0; i<n; i++)
{
k=rnr.Gaus(Kmu[j],Ksig);
hk[j]->Fill(k);
p=0.3/k;
hp[j]->Fill(p);
}
}
// Zeichnen
TCanvas *can0 = new TCanvas("can0","can0",1200,900);
can0->cd();
TLegend *leg = new TLegend(0.2,0.2,0.5,0.5);
leg->SetFillColor(0); leg->SetFillStyle(0); leg->SetBorderSize(0);
hp[0]->SetLineWidth(2);
hp[0]->Draw("");
for (int j=3; j>0; j--)
{
hp[3*j]->SetLineColor(j+1);
hp[3*j]->SetLineWidth(2);
hp[3*j]->Draw("SAME");
leg->AddEntry(hp[3*j],Form("#mu_{#kappa} = %g",Kmu[3*j]),"l");
}
leg->AddEntry(hp[0],Form("#mu_{#kappa} = %g",Kmu[0]),"l");
leg->Draw();
18000
16000
f(p) / 1GeV/c
14000
12000
10000
µκ = 0.1
µκ = 0.07
µκ = 0.04
µκ = 0.01
8000
6000
4000
2000
0
-20
-15
-10
-5
0
5
10
15
p [GeV/c]
Abbildung 9: Ausgewürfelte Wahrscheinlichkeitsdichte des Impulses
20
Fehlerrechnung
Der Fehlerwert ergibt sich aus der Formel für die Taylorreihe entwickelt um den Mittelwert x̄:
y = f (x)x=x̄ =
∞
X
f (k) (x)
k=0
y = f (x)x=x̄ = f (x̄) +
k!
(x − x̄)k
f 0 (x̄)
f 00 (x̄)
(x − x̄) +
(x − x̄)2 + . . .
1!
2!
Die absolute Abweichung wird betrachtet
∞
X
f (k) (x)
(x − x̄)k δy = |f (x)x=x̄ − f (x̄)| = k!
k=1
und nutzen δx = |x−x̄|. Damit sich verschiedene Summanden (Unsicherheiten) nicht gegenseitig
neutralisieren können, wird von jedem Summanden der Betrag genommen. Nach der CauchyP
P
Schwarz-Ungleichung ( |xi | ≥ | xi |) ist diese Summe der Einzelbeträge immer größer gleich
dem Betrag der Summe
∞ (k)
∞ (k)
X
X f (x)
f (x)
k
k
(x − x̄) k! (x − x̄) ≥ k!
k=1
k=1
00 0 f (x̄) · δx + f (x̄) · δx2 + . . .
δy = 2! 1! 0.3
Gegeben ist der funktionale Zusammenhange p = f (κ) =
. Daraus folgt p̄ = f (κ̄).
κ
Die Fehlerfortpflanzung erster (linear) und zweiter (parabolisch) Ordnung wird überprüft.
Lineare Fehlerfortpflanzung liefert
δp(1) =
0.3
· δκ
κ2
Fehlerfortpflanzung zweiter Ordnung liefert
0.3
0.6
· δκ + 3 · δκ2
2
κ
κ
Das wahre Fehlerintervall von p aus der Messung von κ lässt sich numerisch bestimmen
δp(2) =
p = p̄ ± σp = f (κ̄) ± f (κ̄ ± σκ )
45
40
p (GeV/c)
35
σκ=0.04
30
25
(2)
δp
20
(1)
15
10
δp
= 12.48
= 4.8
(0.05,6)
5
σp=+24.00
-2.67
0
0
0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18 0.2 0.22
k (m-1)
Abbildung 10: Verschiedene Fehler von p für κ̄ = 0.05/ m und σκ = 0.04/ m
12
p (GeV/c)
10
σκ=0.04
8
(2)
δp
(1)
δp
6
= 4.41
= 2.13
(0.075,4)
σp=+4.57
-1.39
4
2
0
0
0.05
0.1
0.15
0.2
0.25
k (m-1)
Abbildung 11: Verschiedene Fehler von p für κ̄ = 0.075/ m und σκ = 0.04/ m
7
σκ=0.04
p (GeV/c)
6
(2)
δp
5
(1)
δp
= 2.16
= 1.2
4
(0.1,3)
3
σp=+2.00
-0.86
2
1
0
0
0.05
0.1
0.15
0.2
0.25
0.3
0.35
-1
k (m )
Abbildung 12: Verschiedene Fehler von p für κ̄ = 0.1/ m und σκ = 0.04/ m
Übungen zur Vorlesung “Statistische Methoden der Datenanalyse”
WS 13/14 — Nr. 6 — zum 05.12.13
Aufgabe 1
Zur Poissonverteilung:
Die Zufallsvariablen a, b, c seien Poissonverteilung mit Mittelwerten α, β, γ. Daraus werden zwei
neue Zufallszahlen
n=a+b ,
m=a+c
errechnet. Wie sind P (m, n) verteilt? Wie groß ist die Kovarianz Cov(m, n)?
Lösung 1
Die Wahrscheinlichkeitsfunktion einer diskret-poissonverteilten Zufallsvariablen X lautet:
TMath::PoissonI(k,2)
P (X = k|µ) =
µk −µ
·e
k!
µ ∈ R, k ∈ N
0.25
0.2
0.15
0.1
0.05
0
0
1
2
3
4
5
6
7
8
9
10
k
Abbildung 13: Diskrete Poissonverteilung mit dem Parameter µ = 2
a) Die Wahrscheinlichkeitsfunktion der Summe zweier Zufallsvariablen n = a + b ergibt sich
aus ihrer Faltung
P (n) = P (a + b) = P (a) ∗ P (b) =
a=n
X
P (n − a) · P (a)
a=0
a
a=n a=n
X
X
αn−a
β
β a n!
αn−a
−α
−β
−(α+β)
P (n) =
·e
·e
·
·
·
=e
(n − a)!
(a)!
(n − a)! (a)! n!
a=0
a=0
a=n
a=n e−(α+β) X
n!
e−(α+β) X n
n−a
a
P (n) =
·
·α
·β =
·
· αn−a · β a
n!
a!
·
(n
−
a)!
n!
a
a=0
a=0
Aus der Definition
n
(α + β) =
a=n X
n
a=0
a
· αn−a · β a
folgt
P (n) =
(α + β)n −(α+β)
e
= P (X = n|α + β) .
a!
Damit ist die Faltung zweier Poissonverteilungen wieder eine Poissonverteilung mit dem Mittelwert gleich der Summe der Mittelwerte der ursprünglichen Poissonverteilungen.
Eine Faltung diskreter Zufallsvariablen lässt sich interpretieren als die Summe alle möglichen
Produktwahrscheinlichkeiten entlang einer Kurve, die durch eine Verknüfungsregel, hier n =
a + b, gegeben ist.
7
6
P(n-a)×P(a)
5
4
b
n=
3
a+
2
b
1
0
0
1
2
3
a
4
5
6
7
Abbildung 14: Grafische Darstellung einer Faltung, es wird summiert über die Produktwahrscheinlichkeiten deren Position dargestellt wird durch die Knotenpunkte.
b) Sei hni = α + β = r, hmi = α + γ = s, und α + β + γ = r + s − α. Die Wahrscheinlichkeitsfunktion P (m, n), d.h. in zwei Dimensionen, ergibt sich wieder aus einer Faltung
Definition
P (m, n) = P (a + b, a + c) = P (a + b) ∗ P (a + c)
Einsetzen
min(m,n) P (m, n) =
X
a=0
αa −α
e
a!
n−a
m−a
β
γ
−β
−γ
·
e
·
e
(n − a)!
(m − a)!
Rausziehen von Konstanten aus der Summe
−(α+β+γ)
P (m, n) = e
n
m
·β ·γ ·
min(m,n) X
a=0
αa
a!
β −a
γ −a
·
·
(n − a)!
(m − a)!
Sortieren des Summanden
−(α+β+γ)
P (m, n) = e
n
m
·β ·γ ·
min(m,n) X
a=0
α
β·γ
a ·
1
(n − a)! · (m − a)! · a!
Umformen der zweiten Klammer in der Summe zu Binomialkoeff.
−(α+β+γ)
P (m, n) = e
n
m
min(m,n) ·β ·γ ·
X
a=0
α
β·γ
a n m
a!
·
a
a n! · m!
Rausziehen von Konstanten aus der Summe
P (m, n) = e
−(α+β+γ)
βn γm
·
·
·
n! m!
min(m,n) X
a=0
α
β·γ
a n m
·
· a!
a
a
Sortieren nach Termen mit α, β, γ
P (m, n) = e−β ·
β n −γ
·e
n!
n
m
m min(m,n)
X
γ
a
a
·
·
·
· a! · αa e−α
a
a
m!
β
γ
a=0
Ersetzen der Ausdrücke durch Poissonverteilungen P (k|µ)
n
m
min(m,n)
X
a
a
·
· (a!)2 · P (a|α)
P (m, n) = P (n|β) · P (m|γ) ·
a
a
β
γ
a=0
Somit faktorisiert die Verteilung P (m, n) nicht in P (n) und P (m), n und m sind also abhängig
und korreliert.
c) Für die Kovarianz von n und m ergibt sich
Cov(m, n) = hn · mi − hni · hmi
Cov(m, n) = h(a + b) · (a + c)i − ha + bi · ha + ci
Cov(m, n) = ha2 + ab + ac + bci − (hai + hbi) · h(ai + hci)
Cov(m, n) = ha2 i + habi + haci + hbci − hai2 − hai · hbi − hai · hci − hbi · hci
Cov(m, n) = ha2 i − hai2 + habi − hai · hbi + haci − hai · hci + hbci − hbi · hci
| {z }
|
{z
} |
{z
} |
{z
}
Cov(a)=σ(a)2 =α
Cov(a,b)=0
Cov(a,c)=0
Cov(b,c)=0
Cov(m, n) = α
Der Korrelationskoeffizient ist dann
ρ=
(α,β,γ )=(0,3,5)
18
16
α
Cov(m, n)
=√
√
σ(n) · σ(m)
α+β α+γ
ρ=-0.0144923
ρ=0.339725
(α,β,γ )=(2,3,5)
20
14
15
10
n
n
12
10
8
6
5
4
2
0
0
0
2
4
6
8
10
12
0
5
10
m
35
40
(α,β,γ )=(9,3,5)
ρ=0.692733
30
25
15
20
m
(α,β,γ )=(12,3,5)
35
ρ=0.744144
30
25
n
n
20
15
20
15
10
10
5
5
0
0
0
5
10
15
m
20
25
0
5
10
15
20
25
m
Abbildung 15: Korrelierte Poissonverteilung nach Aufgabe 1.
30
void P6_1c() {
TRandom3 X(1);
const int n=2000;
double a[4]={0,2,9,12};
double b[4]={3,3,3,3};
double c[4]={5,5,5,5};
int A=0, B=0, C=0, M=0, N=0;
TH2D *h[4];
for (int j=0; j<4; j++) {
h[j] = new TH2D(Form("h[%d]",j),Form("h[%d]; m; n",j),
51,-0.5,50.5,51,-0.5,50.5);
for (int i=0; i<n; i++) {
A=X.Poisson(a[j]); B=X.Poisson(b[j]); C=X.Poisson(c[j]);
M=A+B; N=A+C;
h[j]->Fill(M,N);
}
}
TCanvas *can = new TCanvas("can","can",1200,900);
can->Divide(2,2);
for (int i=0; i<4; i++) { h[i]->Draw("COL"); }
}
Übungen zur Vorlesung “Statistische Methoden der Datenanalyse”
WS 13/14 — Nr. 7 — zum 12.12.13
Aufgabe 1
Beispiel aus der Vorlesung: Von ARGUS wurde folgende Verteilung der invarianten Masse
gemessen (ARGUS Collaboration, H.Albrecht et al., Z.Phys. C66, 63 (1995),
http://inspirehep.net/record/374909)
Alle D+ Mesonen liegen im mittleren Streifen. Die wahre Dichte des Untergrundes ist linear.
Seitenbandsubtraktion: geben Sie eine Meßvorschrift an, wie man den mittleren Impuls eines
D+ Mesons aus der Stichprobe in Aufgabe 7.1 erwartungstreu schätzen kann. Was ist der Fehler
auf diesen Schätzwert?
Lösung 1
Schätzwert für den mittleren Impuls der Signalverteilung
Im Allgemeinen setzt sich eine beobachtete Ereigniszahl N aus der Anzahl an Signalereignissen
S und der Anzahl an Untergrundereignissen zusammen, d.h.
N =S+B
Im linken (a) und rechten (b) Seitenband befindet sich nur Untergrund, also
Na = Ba = 26 807 , Sa = 0 ,
Nb = Bb = 20 139 , Sb = 0
Im Signalbereich (x) sind sowohl Signal- als auch Untergrundereignisse vorhanden
Nx = Sx + Bx = 28 729
Da der Untergrund sich linear verhält und die drei benachbarten Intervalle gleichbreit sind, ist
der Erwartungswert von Bx das arithmetisches Mittel aus Ba und Bb
Bx =
26 807 + 20 139
Ba + Bb
=
= 23 473
2
2
Damit erwartet man für Sx
Sx = Nx − Bx = 28 729 − 23 473 = 5 256
Der mittlere Impuls p̄ aus dem Signalbereich (x) des Datensatzes lässt sich schreiben als
1 X
1
p̄ =
pi =
Nx N
Nx
x
!
X
Sx
pi +
X
pi
Bx
Sei p̄S der gesuchte mittlere Impuls der Signalereignisse und p̄B der mittlere Impuls des Untergrunds, dann ergibt sich
p̄ =
1
Sx
Bx
(Sx · p̄S + Bx · p̄B ) =
· p̄S +
· p̄B
Nx
Nx
Nx
Den mittleren Impuls der Untergrundkomponente p̄B wird abgeschätzt aus den Daten im Seitenband indem angenommen wird, dass die Impulsverteilung der Untegrundereignisse im Signalund Seitenband gleich ist
p̄B =
X
1 X
1
!
·
pi =
·
pi
Bx B
Ba + Bb B +B
x
a
b
Daraus ergibt sich als Messvorschrift für p̄S
p̄S =
1
1
(Nx · p̄ − Bx · p̄B ) =
(Nx · p̄ − Bx · p̄B )
Sx
Nx − Bx
Fehler des Schätzwertes p̄S
Für die Abschätzung des Fehlers auf p̄S ist es sinnvoll die Messvorschrift so zu formulieren, dass
die eingehenden Größen unabhängig voneinander sind
Nx
X
1
1
(Nx · p̄ − Bx · p̄B ) =
p̄S =
Nx − Bx
Nx − Bx
BX
a +Bb
Bx
pi
·pi −
·
Ba + Bb
!
Nutze: Na = Ba , Nb = Bb , Bx = (Na + Nb )/2
NaP
+Nb
Nx
P
pi
2 · pi −
2 · Px − Pa − P b
p̄S =
=
2 · Nx − Na − Nb
2 · Nx − Na − Nb
Dami hängt p̄S ab von den Ereigniszahlen Nx , Na , Nb und den Summen der gemessenen Impulse
P
Px = x pi , Pa , Pb . Die lineare Fehlerfortpflanzung liefert
2
σ (p̄S ) =
∂ p̄S
∂Nx
2
2
· σ (Nx ) +
∂ p̄S
∂Na
2
2
· σ (Na ) +
∂ p̄S
∂Nb
2
x,a,b 2
· σ (Nb ) +
X
j
∂ p̄S
∂Pj
2
· σ 2 (Pj )
Die Ableitungen sind
∂ p̄S
∂Na
∂ p̄S
∂Nx
2
2
=
=
∂ p̄S
∂Nb
−2 · (2 · Px − Pa − Pb )
(2 · Nx − Na − Nb )2
2
=
∂ p̄S
∂Pa
∂ p̄S
∂Px
2
=
−(2 · Px − Pa − Pb )
(2 · Nx − Na − Nb )2
2
=
=
2
∂ p̄S
∂Pb
2 · p̄S
2 · Nx − Na − Nb
2
=
2
2 · Nx − Na − Nb
2
=
2
p̄S
2 · Nx − Na − Nb
2
2
1
2 · Nx − Na − Nb
2
Für die Varianz der Zählgrößen ergibt sich nach der Poissonverteilung i.A. σ 2 (N ) = N .
Die Varianz der Einzelmessungen ergibt sich aus
2
1 X
1 X 2
1 X
1 X 2 2
σ (P ) =
·
(p̄ − pi ) =
·
pi −
·
pi =
·
pi − p̄2
N
N
N
N
2
Das Ergebnis “vereinfacht” sich demnach zu
2
σ (p̄S ) =
p̄S
2 · Nx − Na − Nb
+4 · Nx ·
· (4 · Nx + Na + Nb )
1
2 · Nx − Na − Nb
2
1
2 · Nx − Na − Nb
2
1
2 · Nx − Na − Nb
2
+Na ·
+Nb ·
2
· σ 2 (Px )
· σ 2 (Pa )
· σ 2 (Pb )
Beispiel
Anwendung der Formeln auf den folgenden, selbst erstellten Datensatz
void P7_1a() {
// Tuple anlegen
TTree *tpl = new TTree ("tpl","tpl");
double mD=0.0;
double pD1=0.0;
double pD2=0.0;
int tru=0;
tpl->Branch("mD",&mD,"mD/D");
tpl->Branch("pD1",&pD1,"pD1/D");
tpl->Branch("pD2",&pD2,"pD2/D");
tpl->Branch("tru",&tru,"tru/I");
// Zahl der Untergrund- und Signalereignisse
int NB=75000, NS=5000;
// Dichtefunktionen zum Auswuerfeln der Verteilungen
TF1 *fm = new TF1("fm","-33340.0*x+100000.0",1.720,2.020);
fm->SetNpx(10000);
TF1 *fp1 = new TF1("fp1","TMath::Gaus(x,3.5,1.0,1)",0.0,10.0);
fp1->SetNpx(10000);
TF1 *fp2 = new TF1("fp2","TMath::Landau(x,2.0,0.5,1)",0.0,10.0);
fp2->SetNpx(10000);
TF1 *fmS = new TF1("fmS","TMath::Gaus(x,1.87,0.013,1)",1.720,2.020);
fmS->SetNpx(10000);
TF1 *fpS = new TF1("fpS","TMath::Gaus(x,4.0,0.1,1)",0.0,10.0);
fpS->SetNpx(10000);
// Untergrund auswuerfeln
for (int i=0; i<NB; i++) {
mD = fm->GetRandom(1.720,2.020);
pD1 = fp1->GetRandom(0.0,7.0);
pD2 = pD1
tru = 0;
tpl->Fill();
}
// Signal auswuerfeln
for (int i=0; i<NS; i++) {
mD = fmS->GetRandom(1.720,2.020);
pD1 = fpS->GetRandom(0.0,7.0);
pD2 = pD1;
tru = 1;
tpl->Fill();
}
// Abspeichern des Tuple
TFile *file = new TFile("result.root","recreate");
file->cd(); tpl->Write(); file->Close();
}
Events / 50/MeV/c2
2500
2000
1500
1000
Seitenband a
Signalband x
Seitenband b
500
0
1.75
1.8
1.85
1.9
1.95
2
2
m (GeV/c )
Abbildung 16: Massenverteilung von Signal und Untergrund
In den folgenden zwei Bildern sind die generierten Impulsverteilungen dargestellt. Der Datenpunkt mit dem horizontalen Fehlerbalken zeigt das Ergebnis der o.g. Rechnungen.
1600
pS ± σ(pS)
Events / 50/MeV/c
Signalband x
1400
1200
Seitenband a+b
1000
800
600
400
200
0
0
1
2
3
4
5
6
7
p (GeV/c)
Abbildung 17: Impulsspektrum mit Normalverteilungen für Signal und Untergrund
pS ± σ(pS)
Events / 50/MeV/c
1200
Signalband x
1000
Seitenband a+b
800
600
400
200
0
1
2
3
4
5
6
7
p (GeV/c)
Abbildung 18: Impulsspektrum mit einer Normalverteilungen für Signal und einer Landauverteilung für Untergrund
Übungen zur Vorlesung “Statistische Methoden der Datenanalyse”
WS 13/14 — Nr. 8 — zum 19.12.13
Aufgabe 1
Zur Verteilung von Aufgabe 7.1: Schätzen Sie den Anteil der D± Mesonen in der Stichprobe
erwartungstreu. Was ist der Fehler (Wurzel aus der geschätzten Varianz) Ihres Resultats?
Aufgabe 2
In ROOT: Machen Sie mindestens 2000 Stichproben von Umfang 10 von einer Menge standardnormalverteilter Zufallszahlen und bestimmen Sie daraus den Mittelwert x̄ und dessen
geschätzten Fehler s10 . Ermitteln Sie, wie häufig der wahre Mittelwert im Intervall (x̄ − s10 , x̄ +
s10 ) liegt.
Aufgabe 3
Welche Überdeckungswahrscheinlichkeit erwarten Sie in Aufgabe 8.2? Vergleichen Sie mit dem
simulierten Ergebnis aus Aufgabe 8.2.
Lösung 1
Gegeben ist eine gemessene Ereigniszahl, die sich aus Signal und Untergrund zusammen setzt.
Nx = Sx + Bx , und eine reine Untergrundzahl Na,b = Na + Nb . Aus dem linearen Untergrundverlauf und den drei gleichbreiten Massenbändern ergibt sich ein Skalierungsfaktor f und die
interpolierte Untergrundzahl Bx = f · Na,b . Den Fehler auf die gemessenen Ereigniszahlen kann
√
durch die Poissonverteilung geschätzt werden δ(n) = σ(n) = n.
Der Fehler auf Bx = f · Na,b hängt nur von Na,b ab und die Fehlerfortpflanzung liefert
δBx2
=
∂Bx
∂Na,b
2
2
· δNa,b
→ δBx = f · δNa,b .
δBx = f ·
p
Na,b .
Der Fehler auf Sx = Nx − Bx hängt von Nx und Bx ab und die Fehlerfortpflanzung liefert
δSx2
=
∂Sx
∂Nx
2
·
δNx2
+
δSx =
∂Sx
∂Bx
2
· δBx2 → δSx2 = δNx2 + δBx2 .
p
Nx + f 2 · Na,b .
Tabelle 1: Abschätzung der Signal- und Untergrundanzahl
hni
√
Gemessene Ereigniszahl
Nx ± Nx
p
Gemessener Untergrund
Na,b ± Na,b
Skalierungsfaktor
f
p
Geschätzter Untergrund
Bx = f · Na,b ± f · Na,b
p
Geschätztes Signal
Sx = (Nx − Bx ) ± Nx + f 2 · Na,b
Größe
Resultat
28 729 ± 169
46 946 ± 217
0.5
23 473 ± 109
5 256 ± 170
Lösung 2
Folgende Formeln werden benutzt:
P
Schätzung der Mittelwertes: m =
xi
N
P 2
x2i
( x2i )
Schätzung der Varianz: s =
−
N − 1 N · (N − 1)
2
P
s
Schätzung der Standardabweichung des Mittelwertes: s10 = √
N
Aufzutragende Größe: t =
m
s10
void P8_2() {
TRandom X(1);
const int n=200000; // Umfang der Grundgesamtheit
const int k=10;
// Stichprobenumfang
double x[n]={0.0};
double m[n/k]={0.0};
double s[n/k]={0.0};
int count1=0, count2=0;
TH1D *hm = new TH1D("hm","hm; t = #frac{#bar{x}}{s/#sqrt{N}}",100,-5.0,5.0);
TH1D *hr = new TH1D("hr","hr; ; #chi",100,-5.0,5.0);
// Auswuerfeln der Grundgesamtheit
for (int i=0; i<n; i++) { x[i]=X.Gaus(0,1); hx->Fill(x[i]); }
// Vermessung der Stichproben
for (int j=0; j<(int)n/k; j++) {
for (int i=j*k; i<(j+1)*k; i++) {
m[j]+=1.0*x[i]/k; // Mittelwert
s[j]+=1.0*x[i]*x[i]/(k-1);
}
s[j]=TMath::Sqrt(s[j]-m[j]*m[j]*k/(k-1)); // Standardabweichung
count1++; if (TMath::Abs(m[j]-0)<s[j]/TMath::Sqrt(k)) {count2++;}
hm->Fill(m[j]/s[j]*TMath::Sqrt(k));
}
TF1 *f = new TF1("f","[0]*TMath::Student(x,9)",-5.0,5.0);
f->SetParameter(0,n/k*hm->GetBinWidth(1));
f->SetNpx(1000); f->SetLineColor(2); f->SetLineStyle(7);
// Histogramm der Abweichung der Messung vom Sollwert
for (int i=1; i<100; i++) {
double ist = hm->GetBinContent(i);
double soll = f->Eval(hm->GetBinCenter(i));
hr->SetBinContent(i, (ist-soll)/TMath::Sqrt(soll) );
}
[... Zeichnen des Histogramms und der Funktion ...]
}
χ
3
2
1
0
-1
-2
-3
-5
-4
-3
-2
-1
0
800
1
2
3
4
5
Residuum
Daten
700
600
TMath::Student(x,9)
500
65.66 %
400
300
65.52(57)%
200
100
0
-5
-4
-3
-2
-1
0
t= x
s/ N
1
2
Abbildung 19: Bild zur Lösung 8.2
3
4
5
Lösung 3
Die allgemeine studentische t-Verteilung ist
Γ( n+1 )
1
fn (t) = √ 2 n ·
nπ Γ( 2 ) 1 + t2 n+1
2
n
Die erwartete Überdeckungswahrscheinlichkeit ergibt sich aus dem Integral über die normierte
Studentsche t-Vverteilung mit ndf = 9.
Z
1
f9 (t) = 65.66%
−1
(Siehe Abb. 19)
Übungen zur Vorlesung “Statistische Methoden der Datenanalyse”
WS 13/14 — Nr. 9 — zum 16.01.14
Aufgabe 1
Gegeben ist ein Tuple von Zahlen ~x = (x1 , x2 , . . . , xn ) zur Messung eines Parameters a = hxi
und die Kovarianzmatrix der Messwerte C = Cij .
Nutzen Sie die Methode der χ2 -Minimierung um den Parameter a aus ~x und C zu schätzen.
Aufgabe 2
Gegeben sind eine Menge von Wertepaaren (xi , yi ) zwischen denen ein linearer Zusammenhang
vermutet wird; y = m · x + n. Die Werte yi sind Messwerte mit dem Fehler δyi .
a) Geben Sie mit Hilfe der χ2 -Minimierung eine Formel an zur Schätzung der Parameter m, n
und der Kovarianzmatrix C aus den Daten (xi , yi , δyi ).
b) In ROOT: Geben Sie sich Steigung und Achsenabschnitt vor, y = f (x) = 2x + 4, und
erzeugen Sie 21 “Messwerte” zu xi = 0, 0.5, 1.0, . . . , 10.0 indem sie zum Erwartungswert f (xi )
eine normalverteilte Zufallszahl addieren; yi = f (xi ) + δyi · G(0, 1) mit δyi = 0.1 · f (xi ).
c) In ROOT: Nutzen Sie die Lösung aus Aufgabe a) um m, n und C zu schätzen.
d) In ROOT: Stellen sie in einem 2-dimensionalen Histogramm das berechnete χ2 dar für gegebene Werte von m und n (z.B. mit der Zeichenoption Draw(’’COLZ’’) oder Draw(’’SURF’’)).
Vergleichen Sie das grafisch bestimmte Minimum der Fläche mit dem gefundene Minumum aus
Aufgabe c).
Lösung 1
Ziel ist es den Parameter a so zu schätzen, dass der Wert χ2 (a) minimiert wird. Die Formel für
1
das χ2 (a) hier lautet mit ~a = (a, a, . . . , a) und G = C−1 = det(C)
· adj(C) (Gewichtsmatrix)
N X
N
X
χ (a) = (~x − ~a) · G · (~x − ~a) =
(xi − a) · Gij · (xj − a) .
2
T
i=1 j=1
T
x1 − a




x
−
a
2

χ2 (a) = 
.
 . 
.


xn − a


Cov(x1 , x1 ) Cov(x1 , x2 )

 Cov(x2 , x1 ) Cov(x2 , x2 )
·
..
..

.
.

Cov(xn , x1 ) Cov(xn , x2 )
−1 

· · · Cov(x1 , xn )
x1 − a



 x2 − a 
· · · Cov(x2 , xn ) 
 · . 
..

 . 
···
.

 . 
· · · Cov(xn , xn )
xn − a
Dabei ist i.A. Cov(x, y) = Cov(y, x) = ρxy · σx · σy und Cov(x, x) = σx2 .
Das Minimum wird ermittelt indem die Ableitung nach a mit 0 gleich gesetzt wird
N
N
N
N
XX
∂(xj − a)
∂χ2 (a) X X ∂(xi − a)
=
· Gij · (xj − a) +
(xi − a) · Gij ·
=0
∂a
∂a
∂a
i=1 j=1
i=1 j=1
−
N X
N
X
Gij · (xj − a) =
N X
N
X
i=1 j=1
a·
N X
N
X
i=1 j=1
Gij −
(xi − a) · Gij
i=1 j=1
N X
N
X
Gij · xj = −a ·
j=1 j=1
N X
N
X
Gij +
i=1 j=1
N X
N
X
Gij · xi
i=1 j=1
Die Summen über Gij · xj und Gij · xi sind identisch, nur anders angeordnet, d.h.
2a ·
N X
N
X
Gij = 2
N X
N
X
i=1 j=1
i=1 j=1
N P
N
P
a=
xi · Gij
i=1 j=1
N P
N
P
i=1 j=1
Gij
xi · Gij
Im noch übersichtlichen Fall n = 3 ist das konkret
T
x1 − a


χ2 (a) = x2 − a
x3 − a

−1 

σ12
ρ12 σ1 σ2 ρ13 σ1 σ3
x1 − a




· ρ12 σ1 σ2
σ22
ρ23 σ2 σ3  · x2 − a
ρ13 σ1 σ3 ρ23 σ2 σ3
σ32
x3 − a

Falls alle xi unkorreliert sind ergibt sich
−1 


T  2
x1 − a
x1 − a
σ1 0 0




 
χ2 (a) = x2 − a ·  0 σ22 0  · x2 − a
x3 − a
0 0 σ32
x3 − a
1
· adj(C). Die Matrixelemente Gij sind die Minoren von C,
det(C)
mal die Determinante der Untermatrize (streiche i-te Zeile und j-te Spalte).
Matrixinversion G = C−1 =
d.h. (−1)i+j
 

 2 2
T
x1 − a
0
0
x1 − a
σ2 σ3
1
 




χ2 (a) = x2 − a · 2 2 2 ·  0
0  ·  x 2 − a
σ12 σ32
σ1 σ2 σ3
0
0
σ12 σ22
x3 − a
x3 − a

T
x1 − a


χ2 (a) = x2 − a
x3 − a

2
χ (a) =
x1 − a
σ1
N P
N
P
â =
2
+
x2 − a
σ2
3
P
xi · Gij
i=1 j=1
 

x1 − a
1/σ12
0
0
 


· 0
0  · x2 − a
1/σ22
0
0
1/σ32
x3 − a

2
+
xi · Gii
! i=1
=
N P
N
P
Gij
3
P
=
Gii
x3 − a
σ3
2
=
2
3 X
xi − a
i=1
σi
x1 /σ12 + x2 /σ22 + x3 /σ32
1/σ12 + 1/σ22 + 1/σ32
i=1
i=1 j=1
60
50
xi
40
30
20
a = 39.74
10
a = 42
0
1
2
3
4
5
6
7
8
9
10
i
Abbildung 20: Bsp. mit 10 normalverteilen Werten mit µ = 42 und σ = 5. Die χ2 -Minimierung
√
schätzt â = 39.74. Durch die Schätzung δxi = xi gehen größere xi mit kleinerem Gewicht ein
und â ist systematisch zu klein.
Lösung 2
a) Die χ2 Minimierungsfunktion wird für den Kurvenfit konstruiert
2
χ (m, n) =
X yi − f (xi ) 2
δyi
i
=
X yi − (m · xi + n) 2
δyi
i
Für die Schätzung der Parameter m und n wird das Minimum von χ2 (m, n) gesucht
I:
X xi yi − (m · xi + n)
∂χ2 (m, n)
= −2 ·
·
=0
∂m
δyi
δyi
i
II :
X 1 yi − (m · xi + n)
∂χ2 (m, n)
= −2 ·
·
=0
∂n
δyi
δyi
i
Durch Vereinfachungen und Nutzung der Schreibweises wi =
sich folgendes Gleichungssystem
I:
X
w i xi y i − m
i
II :
X
wi x2i − n
i
X
wi yi − m
i
X
1
δyi2
und [w x] =
P
wi xi ergibt
wi xi = [w x y] − m[w x2 ] − n[w x] = 0
i
X
wi xi − n
X
i
wi = [w y] − m[w x] − n[w] = 0
i
Aus Gleichung I folgt
n=
[w x y] − m[w x2 ]
[w x]
Einsetzen in Gleichung II
[w y] − n[w]
[w y]
[w]
m=
=
−
[x]
[w x] [w x]
m·
[w x]2 − [w][w x2 ]
[w x]2
m̂ =
=
[w x y] − m[w x2 ]
[w x]
[w y][w x] − [w][w x y]
[w x]2
[w][w x y] − [w x][w y]
[w][w x2 ] − [w x]2
[w x y] [w x2 ] [w x][w y] − [w][w x y]
[w x y] [w x][w x2 ][w y] − [w][w x2 ][w x y]
n̂ =
−
·
=
−
[w x]
[w x]
[w x]2 − [w][w x2 ]
[w x]
[w x] · ([w x]2 − [w][w x2 ])
n̂ =
[w x]2 [w x y] − [w x][w x2 ][w y]
[w x] · ([w x]2 − [w][w x2 ])
n̂ =
[w x2 ][w y] − [w x][w x y]
[w][w x2 ] − [w x]2
P
x y]
folgt hxi[w] = [w x]
Aus den gewichteten Mittelwerten hxi = wwii xi = [w[w]x] und hx yi = [w[w]
und hx yi[w] = [w x y] und die Schätzformeln für m̂ und n̂ lassen sich weiter vereinfachen:
m̂ =
[w][w x y] − [w x][w y]
hx yi − hxihyi
Cov(x, y)
=
=
2
2
2
2
[w][w x ] − [w x]
hx i − hxi
σ(x)2
m̂ = ρ(x, y) ·
n̂ =
σ(y)
σ(x)
[w x2 ][w y] − [w x][w x y]
hx2 ihyi − hxihx yi
(σ(x)2 − hxi2 )hyi − hxi(Cov(x, y) + hxihyi)
=
=
[w][w x2 ] − [w x]2
σ(x)2
σ(x)2
n̂ = hyi − hxi
Cov(x, y)
= hyi − m hxi
σ(x)2
→
hyi = m̂ hxi + n̂
Methode 1: direktes Ausrechnen der Kovarianz und der Fehler durch Fehlerfortpflanzung
2
δm̂
=
X ∂ m̂ 2
i
=
X
i
=
∂yi
·
X ∂ [w][w x y] − [w x][w y] 2 1
=
·
2 ] − [w x]2
∂y
[w][w
x
wi
i
i
δyi2
[w] wi xi − [w x] wi
[w][w x2 ] − [w x]2
2
X [w]2 wi x2 − 2 [w] [w x] wi xi + [w x]2 wi
i
([w][w x2 ] − [w x]2 )2
i
=
δn̂2
=
X ∂ n̂ 2
i
∂yi
·
δyi2
X [w x2 ] wi − [w x] wi xi 2
i
=
[w] xi − [w x]
[w][w x2 ] − [w x]2
2
· wi
[w]2 [w x2 ] − 2 [w] [w x] [w x] + [w x]2 [w]
([w][w x2 ] − [w x]2 )2
[w]2 [w x2 ] − [w x]2 [w]
[w] ([w] [w x2 ] − [w x]2 )
=
([w][w x2 ] − [w x]2 )2
([w][w x2 ] − [w x]2 )2
2
δm̂
=
=
X
1
·
=
wi
i
[w][w x2 ] − [w x]2
[w]
− [wx]2
[w][wx2 ]
X ∂ [w x2 ][w y] − [w x][w x y] 2 1
=
·
∂yi
[w][w x2 ] − [w x]2
wi
i
·
X [w x2 ]2 wi − 2 [w x][w x2 ] wi xi + [w x]2 wi x2
1
i
=
2 ] − [w x]2 )2
wi
([w][w
x
i
[w x2 ]2 [w] − 2 [w x][w x2 ] [w x] + [w x]2 [w x2 ]
[w x2 ] ([w x2 ] [w] − [w x]2 )
=
=
([w][w x2 ] − [w x]2 )2
([w][w x2 ] − [w x]2 )2
δn̂2
[wx2 ]
=
[w][wx2 ] − [wx]2
Cov(m̂, n̂) =
i
=
X
∂ n̂
·
· δyi2 =
∂yi ∂yi
i
X ∂ m̂
[w] wi xi − [w x] wi
[w][w x2 ] − [w x]2
[w x2 ] wi − [w x] wi xi
[w][w x2 ] − [w x]2
·
1
wi
X [w][w x2 ] wi xi − [w x][w x2 ] wi − [w] [w x] wi x2 + [w x]2 wi xi i
([w][w x2 ]
i
=
−
[w x]2 )2
[w] [w x] [w x2 ] − [w] [w x] [w x2 ] − [w] [w x] [w x2 ] + [w x] [w x]2
([w][w x2 ] − [w x]2 )2
=
−[w x] ([w] [w x2 ] − [w x]2 )
([w][w x2 ] − [w x]2 )2
Cov(m̂, n̂) = −
Corr(m̂, n̂) =
[wx]
[w][wx2 ] − [wx]2
Cov(m̂, n̂)
[wx]
=−
δm̂ δn̂
[w] [wx2 ]
Methode 2: Fit bei linearem Zusammenhang
Ansatz: Es wird angenommen, daß es gibt
ˆ fehlerbehaftete Messwerte xi ± δxi , i = 1 . . . N mit der Kovarianzmatrix C = Cij = G−1
ˆ unbekannte Parameter pj , j = 1 . . . M , die auf alle Messwerte Einfluss haben
ˆ bekannte Konstanten Aij , welche die pj mit den xi verknüpfen (Messparameter)
ˆ bekannte Verschiebungskonstanten ai für jedes xi
Für die wahren Werte lässt sich folgender Zusammenhang formulieren:
x̃ = A · p̃ + a
Ziel ist es nun aus den Messdaten (xi , δxi ) die Schätzwerte der Parameter p̂ so zu ermitteln,
dass für die ausgeglichenen Messwerte x̂ = A · p̂ + a gilt:
χ2 (p̂) = (x̂ − x)T · G · (x̂ − x) → min
Lösung:
−1
p̂ = AT G A
(AT G) (x − a)
−1
C(p̂) = AT G A
In der Aufgabe entsprechen die xi den Messparametern in A, yi ± δi den fehlerbehafteten
Messgrößen, p = (m, n) und a = 0. Somit ist
 


y1
x1 1
 


 y2 
 x 1
 .  =  .2  ·
.
.


.
.
yn y
xn 1 A

m
n
!
und C = G−1
p
δ12 0

 0 δ22
=
 .. ..
. .
0 0
...
...
...

0

0
.. 

.
. . . δn2
G ergibt sich hier einfach durch Invertieren aller von Null verschiedenen Matrixelemente

w1 0

 0 w2
G=
..
 ..
.
 .
0 0
...
...
..
.
0
0
..
.






. . . wn
Die Lösung ist dann
p̂ =

!
−1
= AT G A
(AT G) y
 
−1
x1 w1 w1
y
! 
!  1

 x2 w2 w2 
y2 
. . . xn
x1 w1 x2 w2 . . . xn wn 




·
.. 
 ..
 .. 
... 1
w
w
.
.
.
w
. 
1
2
n
 .
.
yn
xn wn wn

! 
 x1 x2
m̂
=
 1 1
n̂

!
m̂
=
n̂
m̂
n̂
[wx2 ] [wx]
[wx] [w]
!−1
[wxy]
[wy]
!
1
=
2
[wx ] [w] − [wx]2
!
m̂
1
=
2
[wx ] [w] − [wx]2
n̂
!
!
[w]
−[wx]
[wxy]
−[wx] [wx2 ]
[wy]
[w][wxy] − [wx][wy]
[wx2 ][wy] − [wx][wxy]
!
Die Lösung für C(p̂) steckt schon in der Formel für p̂ drin
−1
C(p̂) = AT G A
=
δ 2 m̂
Cov(m̂, n̂)
Cov(m̂, n̂)
δ 2 n̂
!
δ 2 m̂
Cov(m̂, n̂)
Cov(m̂, n̂)
δ 2 n̂
1
=
[wx2 ] [w] − [wx]2
!
!
[w]
−[wx]
−[wx] [wx2 ]
void P9_2()
{
TRandom3 X(1);
const int n=21;
double x[n]={0.0}, xe[n]={0.0}, fx[n]={0.0};
double y[n]={0.0}, ye[n]={0.0};
double de=0.0;
TF1 *f = new TF1("f","2*x+4",0,10);
for (int i=0; i<n; i++) {
x[i]=i*0.5;
fx[i]=f->Eval(x[i]);
de=0.1*fx[i]*X.Gaus(0,1);
y[i]=fx[i]+de;
ye[i]=TMath::Abs(de);
}
double Sumx=0.0, Sumy=0.0, Sumw=0.0;
double Sumwx=0.0, Sumwy=0.0, Sumwxy=0.0, Sumwx2=0.0;
for (int i=0; i<n; i++) {
Sumx += x[i];
Sumy += y[i];
Sumw += 1.0/(ye[i]*ye[i]);
Sumwx += x[i]/(ye[i]*ye[i]);
Sumwy += y[i]/(ye[i]*ye[i]);
Sumwx2 += x[i]*x[i]/(ye[i]*ye[i]);
Sumwxy += x[i]*y[i]/(ye[i]*ye[i]);
}
double
double
double
double
double
double
mEST = (Sumwxy*Sumw - Sumwx*Sumwy)/(Sumwx2*Sumw - Sumwx*Sumwx);
mErrEST = TMath::Sqrt(Sumw/(Sumwx2*Sumw - Sumwx*Sumwx));
nEST = (Sumwx2*Sumwy - Sumwx*Sumwxy)/(Sumwx2*Sumw - Sumwx*Sumwx);
nErrEST = TMath::Sqrt(Sumwx2/(Sumwx2*Sumw - Sumwx*Sumwx));
Cov = -1.0*Sumwx/(Sumwx2*Sumw - Sumwx*Sumwx);
Corr = 1.0*Cov/(mErrEST*nErrEST);
TH1D *h = new TH1D("h","h; x_{i}; y_{i}",100,-0.5,10.5);
TGraphErrors *g = new TGraphErrors(n,x,y,xe,ye);
TF1 *fEST = new TF1("fEST","[0]*x+[1]",0,10);
fEST->SetParameters(mEST,nEST);
[... Zeichnen der Daten und Funktionen ...]
m = 1.97 ± 0.03
25
n = 3.96 ± 0.08
20
Corr(m,n) = -0.54
y
i
30
15
10
5
0
0
2
4
xi
6
8
10
Abbildung 21: Lösung zu Aufgabe 9.2 b) + c). Die blaue Gerade nutzt die geschätzten Parameter, die rote Gerade ist die vorgegebene. Da der Fehler δyi proportional zu yi und damit
auch xi ist, weicht die geschätzte Kurve für größere Werte von (xi , yi ) stärker ab vom wahren
Verlauf.
Lösung 2d)
Zusatz zu P9 2()
TH2D *h = new TH2D("h","#chi^{2}(m,n); m; n",81,-8.125,12.125,81,-6.125,14.125);
double sum=0.0, a=0.0, v=0.0, arg=0.0;
for (int i=0; i<81; i++){ a=-8.0+i*0.25;
for (int j=0; j<81; j++){ sum=0.0; v=-6.0+j*0.25;
for (int k=0; k<n; k++) {
arg=1.0*(y[k]-(a*x[k]+v))/ye[k];
sum+= arg*arg;
}
h->SetBinContent(h->FindBin(a,v),TMath::Log(sum));
}
}
14
12
TMath::Log[χ2(m,n)]
12
11
10
10
n
8
6
9
4
8
2
7
0
6
-2
5
-4
4
-6
-8
-6
-4
-2
0
2
m
4
6
8
10
12
Abbildung 22: Lösung zu Aufgabe 9.2 d). Das Kreuz in der Mitte markiert den Schätzwert
(m̂, n̂).
Übungen zur Vorlesung “Statistische Methoden der Datenanalyse”
WS 13/14 — Nr. 10 — zum 23.01.14
Aufgabe 1
Die Winkel eines ebenen Dreiecks werden zu α = (23 ± 1)◦ , β = (67 ± 1)◦ und γ = (91 ± 1)◦
gemessen. Damit hat man drei Messungen für zwei freie Parameter. Verbessern Sie die Messung
durch einen Fit (Ausgleichsrechnung).
Aufgabe 2
In ROOT: Simulieren Sie die Datennahme in einem Flugzeitdetektor indem Sie 10 000 “Messwerte” von exponentialverteilten Lebensdauern (ti ) von Pionen mit τ = 26 ns erzeugen. Aufgrund der begrenzten Größe des Detektors ist der Messbereich begrenzt auf 5 ns < ti < 100 ns.
Bestimmen Sie τ aus den Daten mit
ˆ a) einem ungebinten Maximum-Likelihood Fit
ˆ b) einem Poissonfit an die Verteilung der ti .
Lösung 1
Ansatz: Formulieren des Problems in das Schema des “Fit bei linearem Zusammenhang”
 


x1
1
0
 


1 ·
 x2  =  0
x3 x
−1 −1 A
α
β
α
β
!
 
0
α
 
+ 0
β p
c a
!


δ12 0 0


und C =  0 δ22 0  = G−1
0 0 δ32
!
= (AT GA)−1 (AT G)(x − a)


−1
! w1 0 0
1
0
 1 0 −1 


=
1  ·
 0 w2 0   0
0 1 −1
0 0 w3
−1 −1




! w1 0 0
x1
1 0 −1 


 0 w 2 0   x2 
0 1 −1
0 0 w3
x3 − c

−1


! w1
!
0
x1
α
1 0 −1 
 1 0 −1 


=
w 2 
 0
 x2 
β
0 1 −1
0 1 −1
−w3 −w3
x3 − c
! "
!#−1
!
α
w1 + w3
w3
x1 − x3 + c
=
β
w3
w2 + w3
x2 − x3 + c
!
!
!
w1 + w3
−w3
x1 − x3 + c
α
1
=
w1 w2 + w1 w3 + w2 w3
−w3
w2 + w3
x2 − x3 + c
β
!
!
w1 (x1 − x3 + c) + w3 (x1 − x2 )
α
1
=
w1 w2 + w1 w3 + w2 w3 w2 (x2 − x3 + c) + w3 (x2 − x1 )
β
!

α=
w1 (x1 − x3 + c) + w3 (x1 − x2 )
1 · (23 − 91 + 180)◦ + 1 · (23 − 67)◦
◦
=
= 22 23
w1 w2 + w1 w3 + w2 w3
1·1+1·1+1·1
β=
w2 (x2 − x3 + c) + w3 (x2 − x1 )
1 · (67 − 91 + 180)◦ + 1 · (67 − 23)◦
◦
=
= 66 23
w1 w2 + w1 w3 + w2 w3
1·1+1·1+1·1
=⇒ γ = 180◦ − α − β = 90 23
◦
C(α, β) = (AT GA)−1
C(α, β) =
δα2
ραβ δα δβ
ραβ δα δβ
δβ2
ραβ =
!
1
=
w1 w2 + w1 w3 + w2 w3
δα2 =
2 ◦◦
w1 + w3
=
w1 w2 + w1 w3 + w2 w3
3
δβ2 =
w2 + w3
2 ◦◦
=
w1 w2 + w1 w3 + w2 w3
3
w1 + w3
−w3
−w3
w2 + w3
1
1
−w3
1 ◦◦
·
·
=
−
= −50 %
w1 w2 + w1 w3 + w2 w3 (2/3)◦◦
3
2/3◦◦
Fehlerfortpflanzung auf γ = 180◦ − α − β:
δγ2
=
∂γ
∂α
2
δα2
+
∂γ
∂α
2
δα2
∂γ ∂β + 2 ραβ δα δβ
∂α
∂β
δγ2 = δα2 + δβ2 + 2ραβ δα δβ
δγ2 = 2/3◦◦ + 2/3◦◦ + 2 · (−0.5) · 2/3◦◦ = 2/3◦◦
Damit lautet das neue Resultat:
p
2/3)◦
p
β = (90 32 ± 2/3)◦
p
γ = (66 23 ± 2/3)◦
α = (22 32 ±
!
Lösung 2
a) Der ungebinte Maximum-Likelihood Fit mit Einschränkung der Messvariable
1. Die zu benutzende Wahrscheinlichkeitsdichte ist
f (t|τ ) = c · exp(−t/τ ) mit dem Normierungsparameter c
2. Die Normierung auf t ∈ (a, b) fordert
Rb
f (t|τ ) = 1, d.h.
a
Zb
c·
exp(−t/τ ) = 1
a
c
−1
Z
=
b
exp(−t/τ ) = [−τ · exp(−t/τ )]ba = τ · [exp(−a/τ ) − exp(−b/τ )]
a
f (t|τ ) =
1
exp(−t/τ )
·
.
τ exp(−a/τ ) − exp(−b/τ )
3. Die Likelihood einer gemessenen Flugzeit ti beträgt
li (τ |ti ) =
1
exp(−ti /τ )
·
.
τ exp(−a/τ ) − exp(−b/τ )
Daraus wird eine Likelihood und Log-Likelihood erzeugt für die Menge aller gemessenen Flugzeiten t = (t1 , t2 , . . . , tN )
l(τ |t) =
Y
li (τ |ti ) =
i
L(τ |t) = ln l(τ |t) =
i
X
ln li (τ |ti ) =
i
L(τ |t) =
X
Y1
τ
·
exp(−ti /τ )
exp(−a/τ ) − exp(−b/τ )
X
i
ln
1
exp(−ti /τ )
·
τ exp(−a/τ ) − exp(−b/τ )
(ln exp(−ti /τ ) − ln τ − ln [exp(−a/τ ) − exp(−b/τ )])
i
X ti
L(τ |t) =
− − ln τ − ln [exp(−a/τ ) − exp(−b/τ )]
τ
i
Log-Likelihood: L(τ |t) = −
Score-Funktion: S(τ |t) =
[t]
− N ln τ − N ln [exp(−a/τ ) − exp(−b/τ )]
τ
∂L(τ |t)
[t] N
N a exp(−a/τ ) − b exp(−b/τ )
= 2−
− 2·
∂τ
τ
τ
τ
exp(−a/τ ) − exp(−b/τ )
Der Schätzwert τ̂ ergibt sich aus
L(τ̂ ) = max{L(τ )}
Das führt zu einem Extremalwertproblem
∂L(τ ) = S(τ = τ̂ |t) = 0
∂τ τ =τ̂
S(τ = τ̂ |t) =
N a exp(−a/τ ) − b exp(−b/τ )
[t] N
− 2·
= 0,
−
2
τ̂
τ̂
τ̂
exp(−a/τ̂ ) − exp(−b/τ̂ )
und einer transzendenten Gleichung für τ̂
τ̂ +
a exp(−a/τ ) − b exp(−b/τ ) [t]
−
= f (τ̂ |N, [t]) = 0 .
exp(−a/τ̂ ) − exp(−b/τ̂ )
N
Diese lässt sich numerisch lösen, z.B. durch das Newton Verfahren zum Auffinden der Nullstelle
von f (τ̂ )
τ̂n+1 = τ̂n −
f (τ̂n )
,
f 0 (τ̂n )
oder grafisch
200
τ = (25.83 ± 0.32) ns
150
Log-Likelihood
L(τ)
100
L(τ)(2)
τ=25.83 ns
Score
50
0
-50
-100
-150
16
18
20
22
24
26
τ(ns)
28
30
32
34
36
(a) Log-Likelihood aus Aufgabe 10.2.
-200
16
18
20
22
24
26
28
30
32
34
36
τ(ns)
(b) Score-Funktion aus Aufgabe 10.2.
Abbildung 23: Resultate des ungebinten Fits
Eine Fehlerabschätzung der Schätzwertes τ̂ is möglich durch eine Taylorentwicklung von L(τ )
um τ̂ bis zur zweiten Ordnung, wobei die erste Ableitung, ausgewertet bei τ = τ̂ , verschwindet.
L(τ ) = L(τ̂ ) + L00 (τ̂ ) ·
(τ − τ̂ )2
+ O((τ − τ̂ )3 )
2
Für N → ∞ gilt L(τ ) → L(τ )(2) mit
(τ − τ̂ )2
2
2
und die Likelihood l(2) (τ ) = exp(L(2) (τ )) wird mit στ̂ = −1/L00 (τ̂ ) zu einer Normalverteilung
p
mit Mittelwert τ̂ und der Standardabweichung στ̂ = −1/L00 (τ̂ )
L(τ )(2) = L(τ̂ ) + L00 (τ̂ ) ·
(τ − τ̂ )2
l(τ ) = exp [L(τ̂ )] · exp −
2στ̂2
,
Daraus ergeben sich zwei Methoden zur asymptotisch erwartungstreuen Bestimmung von στ̂
1.) Die Migrad-Methode: (numerisch)
L(τ̂ ± στ̂ ) = L(τ̂ ) −
1
2
2.) Die Minos-Methode:
Nutze I(τ ) = −L00 (τ ) = −S 0 (τ ) (Fishersche Informationsfunktion).
στ̂ =
p
1/I(τ̂ )
Endergebnis mit Minos-Fehler
τ̂ = (25.83 ± 0.32) ns
Ohne Einschränkung der Messvariable, d.h. mit a = 0 und b → ∞ ergibt sich c = 1/τ für die
Normierung und
f (t|τ ) =
1
exp(−t/τ ),
τ
Likelihood: l(τ |t) =
Y
li (τ |t) =
li (τ |ti ) =
1
exp(−ti /τ )
τ
Y1
i
i
1
exp(−ti /τ ) = N · exp
τ
τ
Log-Likelihood: L(τ |t) = ln l(τ |t) = −N ln τ −
Score-Funktion: S(τ |t) =
Schätzwert für τ̂ : S(τ̂ |t) =
[t]
τ
[t]
τ
∂L(τ |t)
[t] N
= 2−
∂τ
τ
τ
[t] N
[t]
−
= 0 → τ̂ =
= t̄
2
τ̂
τ̂
N
Fishersche Informationsfunktion: I(τ |t) = −
Schätzwert für σ(τ̂ ): σ =
∂S(τ |t)
2[t] N
= 3 − 2
∂τ
τ
τ
p
t̄
1/I(τ̂ |t) = √
N
b) Der gebinte Poissonfit mit Einschränkung der Messvariablen
Für eine gebinte Likelihood wird an die Verteilung der ti (i = 1 . . . N ) gefittet. Dafür wird die
Anzahl nj (j = 1 . . . k) aller Messwerte in einem bestimmten Intervall j = {ti | aj < ti < bj }
betrachtet. Die Likelihood für ein einzelnes Intervall mit Poissonverteiltem nj ist
n
µj j −µj
e
lj =
nj !
Dabei ist µj = µj (τ ) die erwartete Signalanzahl im Intervall j, die sich aus dem Integral über
die normierte Wahrscheinlichkeitsdichte f (t|τ ) ergibt
f (t|τ ) =
Z
1
exp(−t/τ )
·
.
τ exp(−a/τ ) − exp(−b/τ )
bj
µj = N ·
Z
bj
1
exp(−t/τ )
·
dt
τ exp(−a/τ ) − exp(−b/τ )
f (t|τ ) dt = N ·
aj
µj =
aj
N
1
·
[−τ · exp(−t/τ )]bajj
τ exp(−a/τ ) − exp(−b/τ )
exp(−aj /τ ) − exp(−bj /τ )
exp(−a/τ ) − exp(−b/τ )
µj = N
Die Gesamtlikelihood mit einer beliebigen, nicht von τ abhängigen, Konstante c ist dann
l(τ ) = c
Y
lj = c
j
Y µnj j
j
nj !
e−µj = c
1
µn1 µn2 · · · µnk k e−[µ]
n1 ! n2 ! · · · nk ! 1 2
Es wird gesetzt c = n1 ! n2 ! · · · nk !
l(τ ) = e−[µ] ·
Y
n
µj j
j
In einem Poissonfit gilt [µ] = N 6= f (τ )
l(τ ) = e−N ·
Y
n
µj j
j
L(τ ) = ln l(τ ) = −N +
X
nj ln µj
j
exp(−aj /τ ) − exp(−bj /τ )
ln µj = ln N
exp(−a/τ ) − exp(−b/τ )
Die Konstante N 6= f (τ ) kann eliminiert werden
L(τ ) =
X
j
nj ln µj
,
ln µj = ln
exp(−aj /τ ) − exp(−bj /τ )
exp(−a/τ ) − exp(−b/τ )
Die Integral für µj wird vereinfacht durch die Annahme, dass alle Bins gleich breit sind, d.h.
∀j : ∆t = bj − aj = const., und durch den Mittelwertsatz der Integralrechung
Rb
f (x)dx = (b − a) · f (x̄) mit x̄ ∈ (a, b). Sind die Bins klein genug, ist der Funktionsverlauf
a
näherungsweise linear und es lässt sich schreiben t̄j = (aj + bj )/2
Z
bj
µj = N ·
f (t|τ ) dt ≈ N · ∆t · f (t̄|τ ) = N · ∆t ·
aj
exp(−t̄j /τ )
1
τ exp(−a/τ ) − exp(−b/τ )
Für die Likelihood können die Terme N, ∆t 6= f (τ ) weggelassen werden und es ergibt sich
ln µj ≈ − ln τ −
∂
L0 (τ ) =
∂τ
0
L (τ ) =
X
j
X
j
1
L (τ ) = 2
τ
0
t̄j
− ln [exp(−a/τ ) − exp(−b/τ )]
τ
!
t̄j
nj {− ln τ − − ln [exp(−a/τ ) − exp(−b/τ )]}
τ
1
t̄j
1 a exp(−a/τ ) − b exp(−b/τ )
nj − + 2 − 2
τ
τ
τ exp(−a/τ ) − exp(−b/τ )
a exp(−a/τ ) − b exp(−b/τ )
[nt̄] − [n]τ − [n] ·
exp(−a/τ ) − exp(−b/τ )
Der Schätzwert τ̂ ergibt sich aus
L(τ̂ ) = max{L(τ )}
Aus der Extremalbedingung L0 (τ̂ ) = 0 folgt
1
τ̂ 2
a exp(−a/τ̂ ) − b exp(−b/τ̂ )
[nt̄] − [n]τ̂ − [n] ·
=0
exp(−a/τ̂ ) − exp(−b/τ̂ )
τ̂ =
[nt̄] a exp(−a/τ̂ ) − b exp(−b/τ̂ )
−
[n]
exp(−a/τ̂ ) − exp(−b/τ̂ )
Ohne Einschränkung der Messvariablen, d.h. a = 0, b → ∞, ergibt sich
0 exp(−0/τ̂ ) − b exp(−b/τ̂ )
−b exp(−b/τ̂ )
= lim
=0
b→∞ exp(−0/τ̂ ) − exp(−b/τ̂ )
b→∞ 1 − exp(−b/τ̂ )
lim
τ̂ =
[nt̄]
= [wt̄]
[n]
τ̂ ist also das mit wj = nj /N gewichtete Mittel der Intervallmitten tj
15
τ(L) = 25.8 ns
τ = 25.8 ns
Score
Log-Likelihood
10
5
τ(S) ≈ 25.96 ns
0
-5
25
25.5
26
τ(ns)
26.5
27
-10
25
25.5
(a)
26
τ(ns)
(b)
Abbildung 24: Resultate des gebinten Fits
void P10_2c()
{
TRandom3 X(1);
const int n=10000; // Zahl der Versuche
const int k=21;
// Zahl der Bins
double t[n]={0.0};
double x=0.0;
int c=0;
double a=5.0, amax=0.0;
double b=100.0, bmax=105.0;
double low = 16.0, high = 36.0;
TH1D *h = new TH1D("h","h",k,amax,bmax);
// Erzeuge Messwerte im Bereich 5.0 .. 100.0
while(c<n) {
x=X.Exp(26.0);
if (x>5.0 && x<100.0) { t[c]=x; h->Fill(t[c]); c++;
}
double tau[200] = 0.0;
double L[200] = 0.0;
// Log-Likelihood
double L1[200] = 0.0; // Ableitung der Log-Likelihood
}
26.5
27
// Iteration ueber taus
for (int i=0; i<200; i++) {
tau[i] = low+i*0.1;
double sumL = 0.0;
double sumL1 = 0.0;
// Iteration ueber bins
for (int j=1; j<k+1; j++) {
double
double
double
double
nj
tj
aj
bj
=
=
=
=
h->GetBinContent(j);
h->GetBinCenter(j);
h->GetBinLowEdge(j);
aj + h->GetBinWidth(j);
double muj = (TMath::Exp(-aj/tau[i])-TMath::Exp(-bj/tau[i]))
/(TMath::Exp(-a/tau[i])-TMath::Exp(-b/tau[i]));
sumL += nj*TMath::Log(muj);
sumL1 += nj*tj;
}
L[i]=sumL;
double bruch = ( a*TMath::Exp(-a/tau[i]) - b*TMath::Exp(-b/tau[i]) )
/( TMath::Exp(-a/tau[i]) - TMath::Exp(-b/tau[i]) );
L1[i]=1.0/tau[i]/tau[i]*(-n*tau[i]+sumL1-n*bruch);
}
TGraph *gL = new TGraph(200,tau,L);
TGraph *gL1 = new TGraph(200,tau,L1);
// Suche Maximum der Log-Likelihood
double XL = TMath::MaxElement(200,&L[0]); int iL = 0;
for (int i=0; i<200; i++) { if (L[i]==XL) { iL=i; break; } }
XL=tau[iL]; double YL=L[iL];
... [zeichnen] ...
b) Der χ2 -Fit
Wenn alle Bineinträge groß genug sind (nj & 20), geht nach dem zentralen Grenzwertsatz die
Poissonverteilung der nj in eine Normalverteilung über
1
1
exp −
f (nj |µj , σj ) = q
2
2πσj2
nj − µj
σj
2 !
Die Werte für µj ergeben sich aus dem Integral über die Wahrscheinlichkeitsdichte der Messewerte f (t|τ ) und die Standardabweichung kann weiterhin aus der Poissonverteilung geschätzt
werden
Z
bj
µj (τ, t̄j ) = N ·
f (t|τ ) dt ≈
aj
exp(−t̄j /τ )
N · ∆t
τ
exp(−a/τ ) − exp(−b/τ )
σj =
√
µj
In der Näherung, dass die Messwerte nj normalverteilt sind um den wahren Wert µj (τ ), kann
man die χ2 Testfunktion verwenden um τ̂ zu schätzen
X nj − µj 2
χ -Funktion nach Pearson: χ (τ |nj ) =
√
µj
j
2
2
√
Vorsicht: Die Abschätzung σj = nj lässt sich mathematisch einfacher behandeln, liefert aber
im Vergleich einen verzerrten Schätzwert für τ , da kleine nj einen kleineren Fehler haben und
so ein systematisch größeres Gewicht in der χ2 Funktion haben als große nj .
2 X 2
X nj − µj 2 X nj
nj
√
=
− 2 nj + µj
χ (τ |nj ) =
√
√ − µj =
µj
µj
µj
j
j
j
2
X
X n2j
∂χ
0
0
=
− 2 · µj + µj =
µ0j
∂τ
µj
j
j
2
µ0j
1−
nj
µj
2 !
µ0j =
∂µj
∂τ
exp(−t̄j /τ )
N · ∆t
N · ∆t
exp(−t̄j /τ ) · t̄j /τ 2
=−
+
τ 2 exp(−a/τ ) − exp(−b/τ )
τ
exp(−a/τ ) − exp(−b/τ )
−
µ0j
N · ∆t exp(−t̄j /τ ) · (a/τ 2 exp(−a/τ ) − b/τ 2 exp(−b/τ ))
τ
(exp(−a/τ ) − exp(−b/τ ))2
N · ∆t
exp(−t̄j /τ )
=
τ
exp(−a/τ ) − exp(−b/τ )
µ0j
= µj
1
t̄j
a exp(−a/τ ) − b exp(−b/τ )
− + 2−
τ
τ
τ2
1
t̄j
a exp(−a/τ ) − b exp(−b/τ )
− + 2−
τ
τ
τ2
∂χ2 X
=
µj
∂τ
j
qj =
1
t̄j
a exp(−a/τ ) − b exp(−b/τ )
− + 2−
τ
τ
τ2
1−
nj
µj
2 !
nj
nj τ exp(−a/τ ) − exp(−b/τ )
=
→ nj qj = qj2 µj
µj
N ∆t
exp(−t̄j /τ )
∂χ2
1 X
= 2
µj (−τ + t̄j − a exp(−a/τ ) + b exp(−b/τ )) 1 − qj2
∂τ
τ
j
Bestimmung des Minimums von χ2 (τ )
∂χ2 =0
∂τ τ =τ̂
1 X
2
=0
µ
(−τ̂
+
t̄
−
a
exp(−a/τ̂
)
+
b
exp(−b/τ̂
))
1
−
q
j
j
j
τ2 j
X
µj (−τ̂ + t̄j − a exp(−a/τ̂ ) + b exp(−b/τ̂ )) =
j
X
µj (−τ̂ + t̄j − a exp(−a/τ̂ ) + b exp(−b/τ̂ )) qj2
j
− τ̂ [µ] + [µt̄] − [µ] a exp(−a/τ̂ )) + [µ] b exp(−b/τ̂ ) =
− τ̂ [µq 2 ] + [µt̄q 2 ] − [µq 2 ] a exp(−a/τ̂ ) + [µq 2 ] b exp(−b/τ̂ )
τ̂ ([µ q 2 ] − [µ]) = [t̄ µ q 2 ] − [t̄ µ] + ([µ q 2 ] − [µ])(b exp(−b/τ̂ ) − a exp(−a/τ̂ ))
τ̂ =
τ̂ =
[t̄ µ q 2 ] − [t̄ µ]
+ b exp(−b/τ̂ ) − a exp(−a/τ̂ )
[µ q 2 ] − [µ]
[t̄nq] − [t̄n/q]
+ b exp(−b/τ̂ ) − a exp(−a/τ̂ ) ,
[nq] − [n/q]
q = q(τ̂ )
grafisch oder numerisch lösen
Ohne Einschränkung der Messvariablen, d.h. a = 0, b → ∞, ergibt sich
qj =
nj τ exp(−a/τ ) − exp(−b/τ )
nj τ
→
exp(t̄j /τ )
N ∆t
exp(−t̄j /τ )
N ∆t
τ̂ =
[t̄nq] − [t̄n/q]
[nq] − [n/q]
32
28
τ = 25.85 ns
χ2(τ) = 17.29
χ2
26
1800
χ2(σ = µ)
χ2(σ
= n)
22
20
1200
1000
800
<χ2> = 18
18
Fit mit τ = 25.85 ns
1400
τ = 25.83 ns
χ2(τ) = 16.57
24
Daten
1600
n
30
600
400
200
16
25
25.5
26
τ(ns)
26.5
27
0
0
20
(a)
40
60
τ(ns)
80
(b)
Abbildung 25: Resultate der χ2 -Fits
void P10_2e()
{
TRandom3 X(1);
const int n=10000;
const int k=21;
double t[n]={0.0};
double x=0.0;
int c=0;
double a=5.0, amax=0.0;
double b=100.0, bmax=105.0;
double low = 16.0, high = 36.0;
TH1D *h = new TH1D("h","h",k,amax,bmax);
TF1 *f = new TF1("f","[1]*[2]*1.0/[0]*TMath::Exp(-x[0]/[0])/
(TMath::Exp(-[3]/[0])-TMath::Exp(-[4]/[0]))",a,b);
f->SetParameter(0,26.0); //tau
f->SetParameter(1,n); //N
f->SetParameter(2,h->GetBinWidth(1)); //Delta t
f->SetParameter(3,a); //a
f->SetParameter(4,b); //b
while(c<n) { x=X.Exp(26.0);
if (x>5.0 && x<100.0) { t[c]=x; h->Fill(t[c]); c++;
} }
100
const int v=800; tau[v]={0.0};
double chi2 = 0.0, SumChi2[v] = {0.0},
double Wchi2 = 0.0, WSumChi2[v] = {0.0};
for (int i=0; i<v; i++) { tau[i] = 16.0+i*0.025;
f->SetParameter(0,tau[i]);
for (int j=1; j<k; j++) {
double nj = h->GetBinContent(j);
double tj = h->GetBinCenter(j);
double muj = f->Eval(tj);
if (nj<1) {continue;}
chi2 = TMath::Power((nj-muj),2)/muj; SumChi2[i] += chi2;
Wchi2 = TMath::Power((nj-muj),2)/nj; WSumChi2[i] += Wchi2;
}
}
TGraph *g = new TGraph(v,tau,SumChi2);
TGraph *Wg = new TGraph(v,tau,WSumChi2);
int iL = TMath::LocMin(v,SumChi2);
int WiL = TMath::LocMin(v,WSumChi2);
double XL = tau[iL]; double YL = SumChi2[iL];
double WXL = tau[WiL]; double WYL = WSumChi2[WiL];
...[zeichnen]...
Übungen zur Vorlesung “Statistische Methoden der Datenanalyse”
WS 13/14 — Nr. 11 — zum 30.01.14
Aufgabe 1
In dem BABAR Datensatz mit 471 · 106 geladenen B ± Mesonen wird nach dem neutrinolosen
Doppel-Beta Zerfall B − → D+ e− e− + c.c. gesucht und genau ein Signalereignis gefunden.
Berechnen aus dem einen gemessenen Ereignis das einseitige und das zweiseitige 90 % Konfidenzintervall der Zerfallswahrscheinlichkeit P (B − → D+ e− e− + c.c.) = NSignal /NB ± .
Lösung 1
Bayes-Methode für einseitiges 90 % Konfidenzintervall
Sei n die Zahl der beobachteten Signalereignisse und µ die wahre Zahl der Signalereignisse.
n ist poissonverteilt.
µn −µ
e
n!
Betrachte die Wahrscheinlichkeitsdichte von µ bei gegebenem n:
f (n|µ) =
µ1 −µ
· e = µ · e−µ
1!
Die Normierung des Integrals auf 100 % muss sichergestellt sein
c(µ|n = 1) =
∞
Z
∞
Z
0
!
µ · e−µ dµ = 100 %
c(µ|n = 1)dµ =
0
Ermittle die Stammfunktion
Z
Z
−µ
−µ
−µ
µ · e dµ = −µ · e
−1 · e dµ = −µ · e−µ − e−µ
−
Z
Z
µ · e−µ dµ = −(1 + µ) e−µ
∞
µ · e−µ dµ = lim −(1 + µ) e−µ
b→∞
0
b
0
= lim (1 + 0)e0 − (1 + b)e−b = 1 X
b→∞
Bedingung für 90 % Konfidenzintervall:
Z
X
Z
c(µ|n = 1)dµ =
0
Z
0
X
X
!
µ · e−µ dµ = 90 %
0
X
µ · e−µ dµ = −(1 + µ) e−µ 0 = 1 − (1 + X)e−X = 0.9
Lösen des Problems durch auffinden der Nullstelle von
f (X) = 0.1 − (1 + X)e−X ⇒ X = 3.89
NSignal < 3.89 @ CL = 90 %
P (B − → D+ e− e− + c.c.) <
3.89
= 8.26 · 10−9
471 · 106
@ CL = 90 %
0.35
c(µ|n=1)
0.3
0.25
0.2
90.00 %
0.15
0.1
0.05
0
0
0.5
1
1.5
2
2.5
µ
3
3.5
4
4.5
5
Abbildung 26: Wahrscheinlichkeitsdichte c(µ|n = 1) und das 90 % Konfidenzintervall.
Bayes-Methode für zweiseitiges 90 % Konfidenzintervall
Benutze wieder die Wahrscheinlichkeitsdichte von µ
c(µ|n = 1) = µ · e−µ
Bedingung für zweiseitiges Konfidenzintervall
Z
b
c(µ|n = 1) = 90 % , c(a) = c(b)
a
Das führt auf die zwei Gleichungen
I:
II :
a · e−a − b · e−b = 0
(1 + a) · e−a − (1 + b) · e−b = 0.9
Gleichung II vereinfacht sich
−a
(1 + a) · e−a − (1 + b) · e−b = e−a − e−b + a
= b · e−b} = e−a − e−b = 0.9
| · e {z
=0
Damit erhält man zwei implizite Gleichungen in Abhängigkeit von den beiden Grenzen a und
b.
I :⇒ e−a − e−b = 0.9
II :⇒ a · e−a − b · e−b = 0
Sinnvolle Definitionsbereiche sind a ∈ (0, 1) und b > 1. Aus Gleichung I folgt a < ln(10/9)
damit b ∈ R.
Das Problem (scheint) analytisch nicht lösbar. Wolfram Alpha www.wolframalpha.com gibt die
numerische Lösung für den Befehl
solve e^(-a)-e^(-b)=0.9 and a*e^(-a) = b*e^(-b)
a = 0.0838148, b = 3.93215
Grafische Lösung durch Auffinden des Schnittpunkts beider Kurven
6
a e-a - b e-b = 0
5.5
0.35
0.3
c(µ|n=1)
5
b
4.5
4
(a,b) = (0.0838,3.9322)
3.5
90.00 %
0.2
0.15
0.1
3
e-a - e-b = 0.9
2.5
2
0
0.25
0.02
0.04
0.06
0.08
0.05
0.1
0.12
0.14
0
0
0.5
1
1.5
2
a
(a)
2.5
µ
3
3.5
4
4.5
5
(b)
Abbildung 27: Grafische Lösung für das zweiseitge Konfidenzintervall
Tipp: Mit der Funktion TF2::SetContour(int n, double* b) können implizite Funtionskurven gezeichnet werden; z.B. e−x − e−y = 0.9
TF2 *g = new TF2("g","TMath::Exp(-x[0])-TMath::Exp(-x[1])",0,0.15,2,6);
double b[1]={0.9}; g->SetContour(1,b);
g->SetNpx(1000); g->SetNpy(1000);
g->SetLineWidth(2); g->SetLineColor(2);
g->Draw("");
Damit lautet das gesuchte zweiseitge Konfidenzintervall von µ
µ ∈ (0.0838, 3.932) @ CL = 90 % ,
die Zerfallswahrscheinlichkeit
P (B − → D+ e− e− + c.c.) ∈ (1.78, 83.48) × 10−10
@ CL = 90 %
Frequentisten-Methode für zweiseitiges 90 % Konfidenzintervall
Gegeben ist die Poisson-Wahrscheinlichkeitsdichte
µn −µ
e .
n!
Schema zum Ermitteln des zweiseitigen Konfidenzintervalls: Sei µ gegeben
f (n|µ) =
1. Finde das n̂ für das f (n|mu) am größten ist und setze S = f (n̂)
2. Sei nu = n̂ + 1 und nd = n̂ − 1
?
3. teste f (nu |µ) ≷ f (nd |µ):
ˆ Falls f (nu |µ) > f (nd |µ): S = S + f (nu |µ) und nu = nu + 1
ˆ Sonst S = S + f (nd |µ) und nd = nd − 1
4. Trage den Ermittelten Punkt (µ, nu ) oder (µ, nu ) in einen 2D-Graphen n vs. µ
5. Wiederhole 3. und 4. solange bis S > 90 %
Als Ergebnis erhält man Bild 28, aus dem man dann das Konfidenzintervall für µ in Abhängigkeit
von n ablesen kann. Man beachte, dass einige Itervalle Lücken haben, z.B. bei n = 9.
20
18
16
14
n
12
10
8
6
4
2
0
0
n=1 : µ = 0.11 ... 4.95 @ CL=90%
5
10
µ
15
20
Abbildung 28: 90 % Konfidenzintervalle für µ in Abhängigkeit von der beobachteten Ereigniszahl n.
Das gesuchte zweiseitge Konfidenzintervall von µ lautet
µ ∈ (0.11, 4.95) @ CL = 90 %
die Zerfallswahrscheinlichkeit
P (B − → D+ e− e− + c.c.) ∈ (2.34, 105.1) × 10−10
@ CL = 90 %
void P11_2d(){
const int nx=3000, ny=100;
double dx=0.01, dy=0.5;
double lowx=0.0-dx*1.5, upx=lowx+dx*nx;
double lowy=0.0-dy*1.5, upy=lowy+dy*ny;
TH2D *h = new TH2D("h","h; #mu; n",nx,lowx,upx,ny,lowy,upy);
TF2 *f = new TF2("f","TMath::PoissonI(x[0],x[1])",lowx,upx,lowy,upy);
double X[nx] = {0.0}, Y[ny] = {0.0}, Z[nx][ny] = {0.0};
for (int i=4; i<nx; i++) {
for (int j=2; j<ny; j+=2) {
X[i] = h->GetXaxis()->GetBinCenter(i); // mu
Y[j] = h->GetYaxis()->GetBinCenter(j); // n
Z[i][j] = f->Eval(Y[j],X[i]);
}
}
for (int i=4; i<nx; i++) {
double sum=0.0;
int jmax = TMath::LocMax(ny,Z[i]); sum+=Z[i][jmax];
h->SetBinContent(i,jmax,Z[i][jmax]);
int jdown = jmax-2, jup=jmax+2;
while (sum<0.9) {
if (jdown<0)
{ sum+=Z[i][jup];
h->SetBinContent(i,jup,Z[i][jup]);
else if (jup>ny-1)
{ sum+=Z[i][jdown]; h->SetBinContent(i,jdown,Z[i][jdown]);
else if (Z[i][jdown]>Z[i][jup])
{ sum+=Z[i][jdown]; h->SetBinContent(i,jdown,Z[i][jdown]);
else
{ sum+=Z[i][jup];
h->SetBinContent(i,jup,Z[i][jup]);
}
}
...[zeichnen]...
}
jup+=2;
}
jdown-=2; }
jdown-=2; }
jup+=2;
}
Frequentisten-Methode für einseitiges 90 % Konfidenzintervall
Gegeben ist wieder die Poisson-Wahrscheinlichkeitsdichte
f (n|µ) =
µn −µ
e .
n!
und die komplementäre Verteilungsfunktion
F−1 (n|µ) = 1 − F (n|µ) = 1 −
X
f (i|µ) =
i<n
X
f (i|µ)
i>n
Schema zum Ermitteln des einseitigen Konfidenzintervalls: Sei µ gegeben
1. Summiere über alle f (n|mu) für n = ∞ . . . a, so dass F−1 (a|µ) ≤ 90 %
2. Trage den Bereich für den gilt F−1 (a|µ) < 90 % in einen 2D-Graphen
Das Ergebnis ist dargestellt in Bild 29 und die obere Grenze lässt sich ablesen
20
18
16
14
n
12
10
8
6
4
2
0
0
n=1 : µ < 3.89 @ CL=90%
5
10
µ
15
20
Abbildung 29: 90 % Konfidenzintervalle für µ in Abhängigkeit von der beobachteten Ereigniszahl n.
Die gesuchte obere Grenze des 90 $ Konfidenzintervalls von µ ist
µ < 3.89 @ CL = 90 %
und hier (keine Untergrundereignisse) identisch mit der Bayes-Methode.
Für die untere Grenze des 90 $ Konfidenzintervalls wird summiert über alle f (n|mu) für
n = 0 . . . a, so dass F (a|µ) ≤ 90 %
void P11_2e(){
gStyle->SetPaintTextFormat("3.3f");
TCanvas *can = new TCanvas("P11_2e","P11_2e",1200,900);
can->SetMargin(0.12,0.03,0.12,0.03);
can->cd();
const int nx=3000, ny=100;
double dx=0.01, dy=0.5;
double lowx=0.0-dx*1.5, upx=lowx+dx*nx;
double lowy=0.0-dy*1.5, upy=lowy+dy*ny;
TH2D *h = new TH2D("h","h; #mu; n",nx,lowx,upx,ny,lowy,upy);
h->GetXaxis()->CenterTitle(1); h->GetYaxis()->CenterTitle(1);
h->GetXaxis()->SetTitleOffset(0.8); h->GetYaxis()->SetTitleOffset(0.6);
TF2 *f = new TF2("f","ROOT::Math::poisson_cdf_c(x[0],x[1])",lowx,upx,lowy,upy);
double X[nx] = {0.0}, Y[ny] = {0.0}, Z[nx][ny] = {0.0};
for (int i=4; i<nx; i++) {
for (int j=2; j<ny; j+=2) {
X[i] = h->GetXaxis()->GetBinCenter(i); // mu
Y[j] = h->GetYaxis()->GetBinCenter(j); // n
Z[i][j] = f->Eval(Y[j],X[i]);
if ( Z[i][j] < 0.9 ) { h->SetBinContent(i,j,Z[i][j]); }
}
}
h->Draw("COL");
h->GetXaxis()->SetRangeUser(0,21); h->GetYaxis()->SetRangeUser(0,20.5);
TLatex *tex = new TLatex(7.0,0.6,"n=1 : #mu < 3.89 @ CL=90%");
tex->SetTextFont(132);
tex->SetTextSize(0.0573);
tex->SetLineWidth(2);
tex->Draw();
}
Herunterladen