36
KIT – Die Forschungsuniversität in der Helmholtz-Gemeinschaft Fakultät für Physik Institut für Experimentelle Kernphysik www.kit.edu Vorlesung: Rechnernutzung in der Physik Parameteranpassung mit der Likelihood-Methode (2) Günter Quast WS 2018/19

Vorlesung: Rechnernutzung in der Physik · ( ältere Methode der kleinsten Quadrate ist Spezialfall) Likelihood ist eine zentrale Größe in der klassischen (frequentistischen) und

  • Upload
    ledieu

  • View
    212

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Vorlesung: Rechnernutzung in der Physik · ( ältere Methode der kleinsten Quadrate ist Spezialfall) Likelihood ist eine zentrale Größe in der klassischen (frequentistischen) und

KIT – Die Forschungsuniversität in der Helmholtz-Gemeinschaft

Fakultät für PhysikInstitut für Experimentelle Kernphysik

www.kit.edu

Vorlesung: Rechnernutzung in der Physik

Parameteranpassung mit der Likelihood-Methode (2)

Günter Quast WS 2018/19

Page 2: Vorlesung: Rechnernutzung in der Physik · ( ältere Methode der kleinsten Quadrate ist Spezialfall) Likelihood ist eine zentrale Größe in der klassischen (frequentistischen) und

Wdh. Maximum Likelihood-PrinzipLikelihood-Funktion:

Produkt der Werte der Wahrscheinlichkeitsdichte, Pi ,

für n unabhängige Messungen xi :

Maximum-Likelihood-Prinzip: Der beste Schätzwert für den Parametervektor maximiert die Likelihood-Funktion .

Likelihood-Gleichung

definiert Schätzwert(e)

In der Praxis: Minimieren des negativen Logarithmus der Likelihood-Funktion:

Page 3: Vorlesung: Rechnernutzung in der Physik · ( ältere Methode der kleinsten Quadrate ist Spezialfall) Likelihood ist eine zentrale Größe in der klassischen (frequentistischen) und

Beispiel: Likelihood für Poisson-Prozess

Stichprobe: Poisson-verteilte Zufallszahlen {ki }= { 0, 2 , 4 , 4 , 2 ,1, 1, 1, 1 }

Darstellungen von

–ln L (λ | {ki , i ≤ n })

für die jeweils n ersten Elemente der Stichprobe

Ein typisches Beispiel für die Anwendung der negLogL-Methode sind kleine Stichproben von Poission-verteilten Beobachtungen mit kleinem Erwartungswert:

siehe Übungsaufgabe

Page 4: Vorlesung: Rechnernutzung in der Physik · ( ältere Methode der kleinsten Quadrate ist Spezialfall) Likelihood ist eine zentrale Größe in der klassischen (frequentistischen) und

Beispiel: Likelihood für Poisson-Prozess (2)

2. Stichprobe: Poisson-verteilte Zufallszahlen {ki}= {41,48,62,49,58,45,38,52,46}

Darstellungen von

–ln L (λ | {ki , i ≤ n })

für die jeweils n ersten Elemente der Stichprobe

Im Grenzfall großer Ereigniszahlen ist -lnL von vorne herein parabelförmig (in solch einem Fall wäre auch eine χ2 -Anpassung gerechtfertigt)

Der Code ist eine Aufgabeauf dem aktuellen Übungsblatt.

Page 5: Vorlesung: Rechnernutzung in der Physik · ( ältere Methode der kleinsten Quadrate ist Spezialfall) Likelihood ist eine zentrale Größe in der klassischen (frequentistischen) und

Wdh. Maximum-Likelihood: Prameterunsicherheiten

Mathematisch exakt: die angegebenen Fehlerabschätzungen sind Untergrenzen

Nur für Parabel-förmigenVerlauf von F(a) sind diebeiden Fehlerdefinitionenäquivalent

Varianz ≈ 1 / Krümmung 1/σ2 ≈ ∂2F / ∂a2

bei mehreren Parametern ai:

(cov-1)ij ≈ ∂2F / ∂ai ∂aj

±1σ 68% - Intervall ( ±1σ ) aus ΔF = 0.5

Typischer Verlauf einer negativen log-Likelihood Funktion und ihrer 1. und 2. Ableitungen

F(a) näherungsweise quadratisch um das Minimum;

1. Ableitung näherungsweise linear, =0 am Minimum

2. Ableitung ~ konstant

Parabel ausKrümmung am Minimum

±1σ

Page 6: Vorlesung: Rechnernutzung in der Physik · ( ältere Methode der kleinsten Quadrate ist Spezialfall) Likelihood ist eine zentrale Größe in der klassischen (frequentistischen) und

Wdh. Profile LikelihoodWenn nur wenige der Parameter einer Anpassung

t = (a1, …, a

k ) interesseiren

und die anderen „Störparameter“ (engl. „nuisance parameters“) sind: r = (a

k+1, …, a

m )

Unsicherheit von t für alle möglichen Werte von r

durch Profile Likelihood

Verfahren: Minimierung bzgl. r für feste werte von t, ±1-Intervall auf t durch

t

Bei mehreren Parmetern ti : zur Fehlerbestimmung von ti muss dieLikelihood bzgl. aller anderen Parameter aj; j≠i minimiert werden (MINOS-Verfahren in MINUIT)

Page 7: Vorlesung: Rechnernutzung in der Physik · ( ältere Methode der kleinsten Quadrate ist Spezialfall) Likelihood ist eine zentrale Größe in der klassischen (frequentistischen) und

Übersicht: Methoden zur Bestimmung der Unsicherheiten

Lineare Problememit gaußförmigenUnsicherheiten:

- analytische Lösung möglich (χ2 -Minimierung)- Position des Minimums gegeben durch Linearkombination der Messwerte: - Varianz der Parameterschätzung durch Fehlerfortpflanzung:

Nicht- lineare Problemeoder andere als gauß-förmige Unsicherheiten:

- Likelihood-Analyse: Ausnutzen der Cramer-Rao-Frechet-Grenze:

2. Ableitungen am Minimum:

Nicht-lineare Problememit nicht-parabolischerLikelihood am Minimum:(für Grenzfall großer Stichproben)

- Scan der (Profil-) Likelihood in der Nähe des Minimums

Bei Unklarheit oder sehr kleinen Stichproben:

Monte-Carlo-Studie: Anpassung an viele der Genauigkeit und Verteilung der Daten ent- sprechende Stichproben, Verteilungen der Parameter studieren.

Achtung: nur die letzten beiden Methoden liefern „Konfidenz-Intervalle“ (z. B. 1σ ≙ 68%)

Page 8: Vorlesung: Rechnernutzung in der Physik · ( ältere Methode der kleinsten Quadrate ist Spezialfall) Likelihood ist eine zentrale Größe in der klassischen (frequentistischen) und

Parameterunsicherheiten mit Toy-MC

Die Unsicherheiten können ganz allgemein bestimmt werden, indem man die Anpassung für viele Stichproben wiederholt und die Verteilungen derParameterwerte analysiert.

Ergebnisse der Anpassung einesPolynoms 2. Grades an 10'000den beobachteten Messwertenentsprechende Stichproben Auf diese Weise lassen sich

- Parameterunsicherheiten - Korrelationen der Parameterbestimmen.

Das Verfahren ist aufwändig, aber exakt !

Im Zweifelsfall wird dieExaktheit statistischerVerfahren mit solchen„Toy – Monte Carlos“ untersucht.

toyMCErros.py

Page 9: Vorlesung: Rechnernutzung in der Physik · ( ältere Methode der kleinsten Quadrate ist Spezialfall) Likelihood ist eine zentrale Größe in der klassischen (frequentistischen) und

Anmerkungen zur Likelihood-Methode

Maximum Likelihood (ML)

Eingeführt von Sir Ronald A. Fisher 1912 zur „bestmöglichen“ Schätzung von Parametern von Verteilungen aus Stichproben

engl. „likelihood“ = Wahrscheinlichkeit (ähnlich „probability“); im Deutschen wird der Begriff „Likelihood“ übernommen

Basis der mathematischen Statistik (→ Fisher-Information)

sehr universell einsetzbare Methode ( ältere Methode der kleinsten Quadrate ist Spezialfall)

Likelihood ist eine zentrale Größe in der klassischen (frequentistischen) und in der Bayes'schen Statistik

erlaubt die Schätzung von Konfidenzintervallen für Parameterwerte

Für gegebene Stichprobenwerte xi aus einer zu Grunde liegendenVerteilungsdichte f ist die Likelihood-Funktion eine Funktion der Modellparameter:

(L „lebt“ im Parameterraum)

Page 10: Vorlesung: Rechnernutzung in der Physik · ( ältere Methode der kleinsten Quadrate ist Spezialfall) Likelihood ist eine zentrale Größe in der klassischen (frequentistischen) und

Grundsätzliches zur Parameterschätzung

Die Schätzfunktion (auch Schätzer, engl. estimator):

• Prüfgröße zur Schätzung der Parameter einer PDF f( x, a )

• ist eine Funktion der Daten x und unterschiedlich für verschiedene Stichproben aus der gleichen Grundgesamtheit

• Beispiele: Mittelwert, Minimum der χ²-Funktion , min. von -ln L( a | x), ... Anforderungen an Schätzfunktion:

Konsistenz:

Effizienz: mit kleinstmöglicher Varianz

Robustheit: unempfindlich gegen „Ausreißer“ in den Daten

wünschenswert Verzerrungsfreiheit (engl.bias): asymptotische Verzerrungsfreiheit garantiert durch Forderung v. Konsistenz

meist nicht alle Anforderungen gleichzeitig erfüllbar – unverzerrte Schätzung der Varianz hat größere Unsicherheit – Median ist robust, aber nicht effizient (gilt auch für „getrimmten Mittelwert“) – Likelihood-Schätzung häufig verzerrt

Page 11: Vorlesung: Rechnernutzung in der Physik · ( ältere Methode der kleinsten Quadrate ist Spezialfall) Likelihood ist eine zentrale Größe in der klassischen (frequentistischen) und

Eigenschaften der ML-Schätzung

Maximum-Likelihood-Schätzer

– ist effizient, d. h. hat minimale Varianz

– ist oft nicht verzerrungsfrei d.h. für große Stichproben

– ist invariant unter Parameter-Transformationen :

erlaubt Reduktion von Verzerrungen durch Parametertransformation

aus Likelihood-Scan abgelesene Konfidenzintervalle ebenfalls invariant (gilt nicht für Bestimmung der Unsicherheit aus 2. Ableitungen)

Page 12: Vorlesung: Rechnernutzung in der Physik · ( ältere Methode der kleinsten Quadrate ist Spezialfall) Likelihood ist eine zentrale Größe in der klassischen (frequentistischen) und

Likelihood und (Fisher-) Information

Frage: wieviel Information über unbekannten Parameter „steckt” in Likelihood-Funktion?

Gesucht ist ein quantitatives Maß I(a), so dass

– I(a) steigt mit sinkender Varianz V[â]

– I(a) additiv (n Messungen beinhalten n-mal die Information)

I ist Basis der stringenten mathematischen Behandlung in der Stochastik

Fisher-Information

Es gilt:

Page 13: Vorlesung: Rechnernutzung in der Physik · ( ältere Methode der kleinsten Quadrate ist Spezialfall) Likelihood ist eine zentrale Größe in der klassischen (frequentistischen) und

[* Informelle Herleitung der Cramér Rao-Grenze ]

Unverzerrter, konsistente Schätzung:

auch Ableitung ist 0:

mit ergibt sich: und

oder , worauf man die Cauchy-Schwarz‘sche

Ungleichung anwenden kann:

Fisher-Information I(a)

Schätzung eines Parameters a aus einer Zufallsgröße x, d.h. f(x; a ) = L (a; x )

Wegen Additivität von I gilt diese Beziehung auch für mehrere Beobachtungen xi

Page 14: Vorlesung: Rechnernutzung in der Physik · ( ältere Methode der kleinsten Quadrate ist Spezialfall) Likelihood ist eine zentrale Größe in der klassischen (frequentistischen) und

Cramér Rao-Grenze allgemein

Bestimmung der Kovarianzmatrix der Parameter einer verzerrungsfreien Likelihood-Schätzung über die Matrix der zweiten Ableitungen am Minimum:

Cramér-Rao-Ungleichung

Bei mehreren Parametern a = ( ai ) , i = 1, … n,

und einer verzerrten Schätzfunktion mit Bias b gilt die

Fischer-Information I(a) ist allg. eine n x n Matrix.

in allen Anpassungsprogrammen implementiert

Page 15: Vorlesung: Rechnernutzung in der Physik · ( ältere Methode der kleinsten Quadrate ist Spezialfall) Likelihood ist eine zentrale Größe in der klassischen (frequentistischen) und

Spezielle Problemstellungen

Page 16: Vorlesung: Rechnernutzung in der Physik · ( ältere Methode der kleinsten Quadrate ist Spezialfall) Likelihood ist eine zentrale Größe in der klassischen (frequentistischen) und

Behandlung von Fehlern in x- und y-Richtung

Implementeirung: Methode Fit() der Root-Klasse TgraphErrors und in kafe

1. Ableitung nutzen, um x-Fehlerin y-Fehler umzurechnen undquadratisch zu den y-Fehlen addieren

Iteratives Verfahren:

1. Anpassung ohne x-Fehler

2. f '(xi) bilden und neue Fehler bestimmen:

3. Schritt analog 2 zur Kontrolle wiederholen;

χ2 am Minimum darf sich nicht stark ändern !

Geometrische Interpretation: Minimierung des auf projizierte Messfehler normierten Abstands d der Punkte von der Tangente an die Funktion:

Page 17: Vorlesung: Rechnernutzung in der Physik · ( ältere Methode der kleinsten Quadrate ist Spezialfall) Likelihood ist eine zentrale Größe in der klassischen (frequentistischen) und

Behandlung von Fehlern in x- und y-Richtung (2)

Allgemein bei korrelierten Fehlern: Kovarianzmatrizen Cx und Cy

im zweiten Schritt x-Fehler zur Kovarianzmatrix addieren:

Geschrieben mit dem Residuenvektor

und dem Vektor der 1. Ableitungen,

ergibt sich

Implementiert in kafe

Page 18: Vorlesung: Rechnernutzung in der Physik · ( ältere Methode der kleinsten Quadrate ist Spezialfall) Likelihood ist eine zentrale Größe in der klassischen (frequentistischen) und

Anpassen von Funktionen an Histogramme

Wenige Messungen: → nur negLogL- Anpassung sinnvoll

Histogramm als Näherung der Verteilung:

– Auflösungsverlust durch Binning – Unsicherheiten sind Poisson-verteilt

„Hinreichend viele“ Messungen:

Poissonverteilung → Gaußverteilung

– χ²- Anpassung wird möglich

mit

Page 19: Vorlesung: Rechnernutzung in der Physik · ( ältere Methode der kleinsten Quadrate ist Spezialfall) Likelihood ist eine zentrale Größe in der klassischen (frequentistischen) und

Funktionsanpassung an Histogramme: Binned logL - Fit

Bininhalt:

folgt Poisson-Verteilung

Likelihood-Analyse

Implementiert für ROOT - Histogramklasse TH1F h = TH1F(“h“,“Histogram“, nbins, mn, mx) h.Fit(“function“, “l“ )

hängt nicht von der Funktion ab

⇒ Schätzung für Parameter a

minimieren bzgl. a

Achtung: 1. χ² ist Voreinstellung 2. ROOT verwendet

-2lnL

also:

Page 20: Vorlesung: Rechnernutzung in der Physik · ( ältere Methode der kleinsten Quadrate ist Spezialfall) Likelihood ist eine zentrale Größe in der klassischen (frequentistischen) und

Anpassen mit ROOT – Bsp. Histogramm-Fit Vorsicht b. kleinen Zahlen!

10'000 Histogramme dieser Art, jeweils Gauß(x;μ,σ) anpassen mit der χ2-Methode

Test: Pull p := (fitted mean – μ)/error muss standard-normalverteilt sein - ist es aber in diesem Fall nicht !

Grund: angenommene Fehler in jedem Bin sind √ni - falls ni nach unten fluktuiert, wird auch der Fehler kleiner angenommen, die Folge ist eine verzerrte Parameterschätzung (betrifft hier vor allem den Parameter σ !)

Abhilfe: -log L – Anpassung:

Mean 0.0020RMS 1.007

Beispiel: pull.c

pull.C bzw. pull-pyroot.py

Page 21: Vorlesung: Rechnernutzung in der Physik · ( ältere Methode der kleinsten Quadrate ist Spezialfall) Likelihood ist eine zentrale Größe in der klassischen (frequentistischen) und

Beantwortung der Frage

„Ist das eingezeichnete (rote) Signal statistisch signifikant ?“

Zwischen 121.5 und 130.5 GeV: – 9 Ereignisse beobachtet – ohne Signal ~3 erwartet ?

Dazu wurden logL-Anpassungen an die beobachtete Häufigkeits-verteilung von Modellen mit und ohne Annahme eines Signal- beitrags durchgeführt.

Beispiel : Entdeckung des Higgs-Bosons

Häufigkeitsverteilung der Massen von vier Myonen

CMS Experiment, Juli 2012

Daten (seit Dez. ‘17) öffentlich – könnten Higgs-Suche im F-Praktikum machen → Ba-Arbeit

Page 22: Vorlesung: Rechnernutzung in der Physik · ( ältere Methode der kleinsten Quadrate ist Spezialfall) Likelihood ist eine zentrale Größe in der klassischen (frequentistischen) und

Anpassung von Parametern: abschließende Bemerkungen

Hier konnte nicht alles angesprochen werden; es gibt noch viele weitere Fragestellungen …

(einige) Antworten und manches mehr im MasterKurs: Moderne Methoden der Datenanalyse

Anpassen mit Nebenbedingungen: - Parameter innerhalb von Grenzen, a< λi <b - Einschränkungen an Parameter, z.B. durch Funktionen ej( λ1, …, λp) = 0

Wie funktioniert numerische Optimierung / Minimierung ?

Weitere praktische Beispiele ?

Wie man es nicht machen sollte: beliebte Fehler.

Likelihood-basierte Hypothesentests

….

Page 23: Vorlesung: Rechnernutzung in der Physik · ( ältere Methode der kleinsten Quadrate ist Spezialfall) Likelihood ist eine zentrale Größe in der klassischen (frequentistischen) und

Numerische Verfahren zur Minimierung

Page 24: Vorlesung: Rechnernutzung in der Physik · ( ältere Methode der kleinsten Quadrate ist Spezialfall) Likelihood ist eine zentrale Größe in der klassischen (frequentistischen) und

Numerische Anpassung

I. a. (heute) Anpassungen mittels numerischer Optimierung durch:

Gittermethode:

● k gleichverteilte Testwerte pro Dimension

➔ Erfordert kd Berechnungen bei d Dimensionen Ungeeignet für große d

Monte-Carlo-Methode:

● Funktionsberechnung an zufällig verteilten Testpunkten

➔ Auch bei großen d geeignet gut für Bestimmung von Startwerten

Einfache Parametervariation:

● Eindimensionale Minimierung in einem Parameter, dann Minimierung in nächstem Parameter → Iteration

➔ I.a. schnelle Konvergenz, wenn Minimierung in Richtung der Eigenvektoren der Matrix der 2. Ableitung erfolgt

weitere numerische (deterministische) Verfahren:

● Simplex-Verfahren (ohne Ableitungen)

● Methoden mit angepasster Schrittweite, numerische Auswertung der Ableitungen

z.B. Minuit: SIMPLEX-Algorithmus

z.B. Minuit: SCAN-Algorithmus

MIGRAD-Algorithmus

Page 25: Vorlesung: Rechnernutzung in der Physik · ( ältere Methode der kleinsten Quadrate ist Spezialfall) Likelihood ist eine zentrale Größe in der klassischen (frequentistischen) und

Beispiel Simplex-Verfahren

Illustration der Simplex-Methode

am Beispiel der Rosenbrock'schen„Bananenfunktion“

Simplex:

n-dimensionaler Polyeder aus n+1 Punkten im Rn

Bei jedem Schritt wird der schlechteste Punkt xr mit größtem Funktionswert F(xr) durch einen neuen, besseren, ersetzt, oder der Simplex ggf. verkleinert oder vergrößert.

Page 26: Vorlesung: Rechnernutzung in der Physik · ( ältere Methode der kleinsten Quadrate ist Spezialfall) Likelihood ist eine zentrale Größe in der klassischen (frequentistischen) und

Simplex-Verfahren

n+1 Punkte x1 , ..., x

n + 1 im Rn

n-dimensionaler Polyeder oder „Simplex“

● Sortierung, so dass F(x1 ) < … < F(x

n + 1 )

● Schwerpunkt der n besten Punkte: c = ∑ i = 1 … n

xi / n

● Spiegelung des schlechtesten Punktes an c: xr = c + (c – x

n + 1 )

Falls F(x1 ) < F(x

r ) < F(x

n ) → x

r ersetzt x

n + 1

Falls F(x

r ) < F(x

1 ) gute Richtung → Streckung: x

s =c+(x

r – c), > 1

Falls F(xs ) < F(x

r ): x

s ersetzt x

n+1 , ansonsten x

r ersetzt x

n + 1

Falls F(xr ) > F(x

n ): Simplex zu groß

→ Abflachung: xs = c – (c – x

n + 1 ), 0 < < 1

Falls F(xs ) < F(x

n + 1 ): x

s ersetzt x

n + 1

● Ansonsten Kontraktion um x1 : x

j = x

1 + (x

j – x

1 ), 0 < < 1

Page 27: Vorlesung: Rechnernutzung in der Physik · ( ältere Methode der kleinsten Quadrate ist Spezialfall) Likelihood ist eine zentrale Größe in der klassischen (frequentistischen) und

Beispiele zur Parameteranpassung

Page 28: Vorlesung: Rechnernutzung in der Physik · ( ältere Methode der kleinsten Quadrate ist Spezialfall) Likelihood ist eine zentrale Größe in der klassischen (frequentistischen) und

kafe: Beispiele

zu kafe gibt es eine Anzahl von gut dokumentierten Beispielen, s. https://github.com/dsavoiu/kafehttp://www.ekp.kit.edu/~quast/kafe/html oder

Page 29: Vorlesung: Rechnernutzung in der Physik · ( ältere Methode der kleinsten Quadrate ist Spezialfall) Likelihood ist eine zentrale Größe in der klassischen (frequentistischen) und

Beispielcode: numerische Anpassung mit kafeIn der Praxis benötigt man Programmpakete ein, die - Strukturen zur Verwaltung von Daten und deren Fehlern - Definition von Modellen - Anpassung mittels numerischer Optimierung - grafische Darstellung - Ausgabe der Ergebnisse bereit stellen.

Zuverlässige Konvergenz zum globalen Minimum bei nicht-linearen Problemstellungen erfordert meist das Setzen geeigneter Startwerte!

Beispiel mit dempython-Framework

„kafe“:

Anpassung der dreiParameter einer qua-dratischen Funktion an Datenpunkte mitUnsicherheiten nur in Ordinatenrichtung.

siehe Script fitexample_kafe.py

68%-Konfidenzbandder Modellanpassung

Page 30: Vorlesung: Rechnernutzung in der Physik · ( ältere Methode der kleinsten Quadrate ist Spezialfall) Likelihood ist eine zentrale Größe in der klassischen (frequentistischen) und

Beispielcode: numerisch Anpassung mit kafe

# example fit with kafeimport kafefrom kafe.function_tools import FitFunction, LaTeX, ASCII

# fit function definition (with decorators for nice output)@ASCII(expression='a * x^2 + b * x + c')@LaTeX(name='f', parameter_names=('a','b','c'), expression=r'a\,x^2+b\,x+c')@FitFunctiondef poly2(x, a=1.0, b=0.0, c=0.0): return a * x**2 + b * x + c

# --------- begin of workflow ----------------------# set dataxm = [.05,0.36,0.68,0.80,1.09,1.46,1.71,1.83,2.44,2.09,3.72,4.36,4.60]ym = [0.35,0.26,0.52,0.44,0.48,0.55,0.66,0.48,0.75,0.70,0.75,0.80,0.90]ye = [0.06,0.07,0.05,0.05,0.07,0.07,0.09,0.1,0.11,0.1,0.11,0.12,0.1]# create a kafe Datasetkdata = kafe.Dataset(data=(xm, ym), basename='kData', title='example data') kdata.add_error_source('y', 'simple', ye) # add uncertainties kfit=kafe.Fit(kdata, poly2) # create the fit from data & fit functionkfit.do_fit() # perform fitkplot=kafe.Plot(kfit) # create plot objectkplot.axis_labels = [r'$St\"utzstellen \, x $', r'$data\,\&\,f(x)$']kplot.plot_all() # make plotskplot.show() # show the plots

siehe Script fitexample_kafe.py

( )nur zur

Verschönerung

der wichtige Code für kafe

kafe nutzt das CERN-Paket MINUIT zur numerischen Optimierungkafe nutzt das CERN-Paket MINUIT zur numerischen Optimierung

Page 31: Vorlesung: Rechnernutzung in der Physik · ( ältere Methode der kleinsten Quadrate ist Spezialfall) Likelihood ist eine zentrale Größe in der klassischen (frequentistischen) und

Beispielcode: numerische Anpassung (scipy)import matplotlib.pyplot as pltimport numpy as npfrom scipy.optimize import curve_fit# --------------------------------------------------------------------------------

def chi2_fit():#-- set data points xm = np.array([.05,0.36,0.68,0.80,1.09,1.46,1.71,1.83,2.44,2.09,3.72,4.36,4.60]) ym = np.array([0.35,0.26,0.52,0.44,0.48,0.55,0.66,0.48,0.75,0.70,0.75,0.80,0.90]) ye = np.array([0.06,0.07,0.05,0.05,0.07,0.07,0.09,0.1,0.11,0.1,0.11,0.12,0.1])

#-- least-squares fit with scipy.optimize.curve_fit p, cov = curve_fit( poly2, xm, ym, sigma=ye, absolute_sigma=True ) print "Fit parameters:\n", par print "Covariance matrix:\n", cov#-- plot data and fit result xp = np.linspace( 0., 5., 100 ) ffit = poly2(xp, p[0], p[1], p[2]) plt.errorbar(xm, ym, yerr=ye, fmt='o') plt.plot( xp, ffit, '-' ) plt.xlim( 0, 5 ) plt.ylim( 0, 1 ) plt.show()

#-- define fit functiondef poly2(x, a=1., b=0., c=0.): return a * x**2 + b * x + c

if __name__ == '__main__': # –----------- chi2_fit()

curvefit_example.py

Tool curve_fit aus scipy.optimize zur χ2-Anpassung und numerischen Optimierung

Page 32: Vorlesung: Rechnernutzung in der Physik · ( ältere Methode der kleinsten Quadrate ist Spezialfall) Likelihood ist eine zentrale Größe in der klassischen (frequentistischen) und

Parameteranpassung mit ROOT

Auswahl von Minimierern über die Klasse TVirtualFitter

In vielen Fällen reicht die von ROOT per GUI zur Verfügung gestellte Funktionalität:

• -2 logL (!) und χ2-Anpassungen an Histogramme

• χ2-Anpassungen in Klasse TGraphErrors

• Vordefinierte Funktionen: Polynome bis zum 9. Grad, Gauss, Exponential- und Landauverteilung, ...

FCN=82.016 FROM MIGRAD STATUS=CONVERGED 12 CALLS1 3 TOTAL EDM=9.82506e-16 STRATEGY= 1 ERROR MATRIX ACCURATE EXT PARAMETER STEP FIRST NO. NAME VALUE ERROR SIZE DERIVATIVE 1 p0 1.54084e+02 3.51831e+00 1.56525e-02 1.25994e-08

χ2-Wert

Text-Ausgabe von MINUIT

ROOT enthält einige Minimierungsalgorithmen, u.a. das aus der FORTRAN-Zeit stammende (und nach C++ umgeschriebene) MINUIT, entstanden am CERN Standard in der Teilchenphysik

Page 33: Vorlesung: Rechnernutzung in der Physik · ( ältere Methode der kleinsten Quadrate ist Spezialfall) Likelihood ist eine zentrale Größe in der klassischen (frequentistischen) und

Anpassen mit ROOT GUI

Root-Klassen TH1, TH2 und TH3 sowie TGraph und TgraphErrors enthalten eine Methode .Fit() zur Funktionsanpassung (TF1 bzw.TF2 u.TF3)In der graphischen Darstellung kann durch Rechtsklick das FitPanel aktiviert werden, um Anpassungen interaktiv vorzunehmen.

root[0]TGraphErrors ∗gr=new TGraphErrors("ExampleData.txt");root[1]gr−>Draw("AP"); // Achsen und Datenroot[2]gr->Fit("pol1"); // Gerade

Page 34: Vorlesung: Rechnernutzung in der Physik · ( ältere Methode der kleinsten Quadrate ist Spezialfall) Likelihood ist eine zentrale Größe in der klassischen (frequentistischen) und

Parameteranpassung mit ROOT Klasse TGraphErrors

void TGraphFit() { //Draw a graph with error bars and fit a function to it. //set global options gStyle->SetOptFit(111); //superimpose fit results// make nice Canvas TCanvas *c1 = new TCanvas("c1","Daten",200,10,700,500); c1->SetGrid();//define some data points const Int_t n = 10; Float_t x[n] = {-0.22, 0.1, 0.25, 0.35, 0.5, 0.61, 0.7, 0.85, 0.89, 1.1}; Float_t y[n] = {0.7, 2.9, 5.6, 7.4, 9., 9.6, 8.7, 6.3, 4.5, 1.1}; Float_t ey[n] = {.8,.7,.6,.5,.4,.4,.5,.6,.7,.8}; Float_t ex[n] = {.05,.1,.07,.07,.04,.05,.06,.07,.08,.05};// copy data to TGraphErros object TGraphErrors *gr = new TGraphErrors(n,x,y,ex,ey); gr->SetTitle("TGraphErrors mit Fit"); gr->Draw("AP");// now perform a fit(with errors in x and y!) gr->Fit("pol3"); c1->Update();

Script TGraphFit.C

> root TGraphFit.C

Anpassung mittels Root Macro:

Page 35: Vorlesung: Rechnernutzung in der Physik · ( ältere Methode der kleinsten Quadrate ist Spezialfall) Likelihood ist eine zentrale Größe in der klassischen (frequentistischen) und

Parameteranpassung mit ROOT

Root > TF1 *myfit = new TF1("myfit","[0]*sin(x) + [1]*exp([2]*x)", 0, 2);

// set parameters

Root > myfit->SetParameters(1,0.05,0.2);

// Fitten

Root > hist->Fit("myfit");

Man kann auch eigene Fit-Funktionen aus dem Repertoire von ROOT definieren:

… oder beliebige Funktionen selbst schreiben:Double_t myfunc (Double_t *x, Double_t *par) {// IHR CODE !!! } Root > TF1 *myf = new TF1("myf",myfunc, <min>, <max>, <npar>); // set parameters Root > myf->SetParameters(<startv_1>, … , <startv_n); Root > hist->Fit("myf");

Im allgemeinsten Fall kann man auch die χ2- oder -2lnL- Funktion selbst vorgeben:Die Methode von TVirtualFitter void SetFCN(void (*fcn)(Int_t &, Double_t *, Double_t &f, Double_t *, Int_t)) erlaubt das Setzen der zu minimierenden Funktion (mit Namen „fcn“)

void fcn(Int_t &npar, Double_t *gin, Double_t &f, Double_t *par, Int_t iflag) f ist dabei die anzupassenden Funktion, im Array par übergibt Root deren Parmeter

Page 36: Vorlesung: Rechnernutzung in der Physik · ( ältere Methode der kleinsten Quadrate ist Spezialfall) Likelihood ist eine zentrale Größe in der klassischen (frequentistischen) und

Parameteranpassung mit ROOT

// fcn function for fit with covariance matrix double arr_poi; // global array pointer TMatrix *icovp; // global matrix pointer int nval = 3; // global for number of measurements int main() { arr_poi = new double[3]; TMatrix cov(3,3); cov(0,0) = ... , cov(2,2) = ...; // Invert matrix TMatrix icov = cov.Invert(); icovp = &icov; ...; } void fcn(Int_t &npar, Double_t *gin, Double_t &f, Double_t *par, Int_t iflag) { ... for (int i; i < nval; i++ ) { for (int j; j < nval; j++ ) { chi += (arr_poi[i] - fit_func(i)) * (arr_poi[j] - fit_func(j)) * (*icovp)(i,j) ; } } ... }

Ein Code-Fragment zur Berechnung von χ2

mit Kovarianz-Matrix