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(); }