35
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 2017/18

Parameteranpassung mit der Likelihood-Methode (2)comp.physik.kit.edu/Lehre/Rechnernutzung/Vorlesungsfolien/V12... · Wdh. Maximum Likelihood-Prinzip Likelihood-Funktion: Produkt der

Embed Size (px)

Citation preview

Page 1: Parameteranpassung mit der Likelihood-Methode (2)comp.physik.kit.edu/Lehre/Rechnernutzung/Vorlesungsfolien/V12... · Wdh. Maximum Likelihood-Prinzip Likelihood-Funktion: Produkt der

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 2017/18

Page 2: Parameteranpassung mit der Likelihood-Methode (2)comp.physik.kit.edu/Lehre/Rechnernutzung/Vorlesungsfolien/V12... · Wdh. Maximum Likelihood-Prinzip Likelihood-Funktion: Produkt der

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: Parameteranpassung mit der Likelihood-Methode (2)comp.physik.kit.edu/Lehre/Rechnernutzung/Vorlesungsfolien/V12... · Wdh. Maximum Likelihood-Prinzip Likelihood-Funktion: Produkt der

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 4: Parameteranpassung mit der Likelihood-Methode (2)comp.physik.kit.edu/Lehre/Rechnernutzung/Vorlesungsfolien/V12... · Wdh. Maximum Likelihood-Prinzip Likelihood-Funktion: Produkt der

Wdh. Profle 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 5: Parameteranpassung mit der Likelihood-Methode (2)comp.physik.kit.edu/Lehre/Rechnernutzung/Vorlesungsfolien/V12... · Wdh. Maximum Likelihood-Prinzip Likelihood-Funktion: Produkt der

Ü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 6: Parameteranpassung mit der Likelihood-Methode (2)comp.physik.kit.edu/Lehre/Rechnernutzung/Vorlesungsfolien/V12... · Wdh. Maximum Likelihood-Prinzip Likelihood-Funktion: Produkt der

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 7: Parameteranpassung mit der Likelihood-Methode (2)comp.physik.kit.edu/Lehre/Rechnernutzung/Vorlesungsfolien/V12... · Wdh. Maximum Likelihood-Prinzip Likelihood-Funktion: Produkt der

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 8: Parameteranpassung mit der Likelihood-Methode (2)comp.physik.kit.edu/Lehre/Rechnernutzung/Vorlesungsfolien/V12... · Wdh. Maximum Likelihood-Prinzip Likelihood-Funktion: Produkt der

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 9: Parameteranpassung mit der Likelihood-Methode (2)comp.physik.kit.edu/Lehre/Rechnernutzung/Vorlesungsfolien/V12... · Wdh. Maximum Likelihood-Prinzip Likelihood-Funktion: Produkt der

Eigenschaften der ML-Schätzung

Maximum-Likelihood-Schätzer

– ist effizient, d. h. hat minimale Varianz

– ist oft nicht verzerrungsfrei

– 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 10: Parameteranpassung mit der Likelihood-Methode (2)comp.physik.kit.edu/Lehre/Rechnernutzung/Vorlesungsfolien/V12... · Wdh. Maximum Likelihood-Prinzip Likelihood-Funktion: Produkt der

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 11: Parameteranpassung mit der Likelihood-Methode (2)comp.physik.kit.edu/Lehre/Rechnernutzung/Vorlesungsfolien/V12... · Wdh. Maximum Likelihood-Prinzip Likelihood-Funktion: Produkt der

[* 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 12: Parameteranpassung mit der Likelihood-Methode (2)comp.physik.kit.edu/Lehre/Rechnernutzung/Vorlesungsfolien/V12... · Wdh. Maximum Likelihood-Prinzip Likelihood-Funktion: Produkt der

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 13: Parameteranpassung mit der Likelihood-Methode (2)comp.physik.kit.edu/Lehre/Rechnernutzung/Vorlesungsfolien/V12... · Wdh. Maximum Likelihood-Prinzip Likelihood-Funktion: Produkt der

Anmerkung Likelihood-Methode

Mit Hilfe der Likelihood-Methode kann neben der Parameterabhängigkeit auch die Kompatibilität mit verschiedene Verteilungen verglichen werden:

Likelihood-Verhältnis wichtig für „Hypothesentests“

Likelihood-Werte für zwei verschiedene Verteilungen:

Page 14: Parameteranpassung mit der Likelihood-Methode (2)comp.physik.kit.edu/Lehre/Rechnernutzung/Vorlesungsfolien/V12... · Wdh. Maximum Likelihood-Prinzip Likelihood-Funktion: Produkt der

Qualität der Anpassung⊖ Likelihood-Methode liefert keine Information zur Qualität einer Anpassung

Abhilfen:

– Daten als Häufigkeitsverteilung darstellen, χ²-Wahrscheinlichkeit – statistische Tests auf Gleichheit (nutzen kumulative Verteilungen der Daten und der angepassten Funktion)

Beispiel: Likelihood der Gaußverteilung

Referenz:

χ2 o

„fully saturated model“

in früheren Diskussionen hatten wir diesen Term auf andere Art zu Null diskutiert ! ( „hängt ja gar nicht von den Parametern ab -kann man also weglassen!“ )

Durch geeignete „Normierung“ kann Qualitätsinformation auch aus der Likelihood gewonnen werden: Likelihood-Verhältnis

der beobachteten Daten und (geeigneter) Referenzdaten.

Page 15: Parameteranpassung mit der Likelihood-Methode (2)comp.physik.kit.edu/Lehre/Rechnernutzung/Vorlesungsfolien/V12... · Wdh. Maximum Likelihood-Prinzip Likelihood-Funktion: Produkt der

Behandlung von Fehlern in x- und y-Richtung

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

y

x

x

y

y

xi

i

f(x )i

i

= cos( )y

= sin( )xx

y

tan( )=f'(x )i

d = cos( ) [y - f(x )]i

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 16: Parameteranpassung mit der Likelihood-Methode (2)comp.physik.kit.edu/Lehre/Rechnernutzung/Vorlesungsfolien/V12... · Wdh. Maximum Likelihood-Prinzip Likelihood-Funktion: Produkt der

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 17: Parameteranpassung mit der Likelihood-Methode (2)comp.physik.kit.edu/Lehre/Rechnernutzung/Vorlesungsfolien/V12... · Wdh. Maximum Likelihood-Prinzip Likelihood-Funktion: Produkt der

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 18: Parameteranpassung mit der Likelihood-Methode (2)comp.physik.kit.edu/Lehre/Rechnernutzung/Vorlesungsfolien/V12... · Wdh. Maximum Likelihood-Prinzip Likelihood-Funktion: Produkt der

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 19: Parameteranpassung mit der Likelihood-Methode (2)comp.physik.kit.edu/Lehre/Rechnernutzung/Vorlesungsfolien/V12... · Wdh. Maximum Likelihood-Prinzip Likelihood-Funktion: Produkt der

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 20: Parameteranpassung mit der Likelihood-Methode (2)comp.physik.kit.edu/Lehre/Rechnernutzung/Vorlesungsfolien/V12... · Wdh. Maximum Likelihood-Prinzip Likelihood-Funktion: Produkt der

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 21: Parameteranpassung mit der Likelihood-Methode (2)comp.physik.kit.edu/Lehre/Rechnernutzung/Vorlesungsfolien/V12... · Wdh. Maximum Likelihood-Prinzip Likelihood-Funktion: Produkt der

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 22: Parameteranpassung mit der Likelihood-Methode (2)comp.physik.kit.edu/Lehre/Rechnernutzung/Vorlesungsfolien/V12... · Wdh. Maximum Likelihood-Prinzip Likelihood-Funktion: Produkt der

Numerische Verfahren zur Minimierung

Page 23: Parameteranpassung mit der Likelihood-Methode (2)comp.physik.kit.edu/Lehre/Rechnernutzung/Vorlesungsfolien/V12... · Wdh. Maximum Likelihood-Prinzip Likelihood-Funktion: Produkt der

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 24: Parameteranpassung mit der Likelihood-Methode (2)comp.physik.kit.edu/Lehre/Rechnernutzung/Vorlesungsfolien/V12... · Wdh. Maximum Likelihood-Prinzip Likelihood-Funktion: Produkt der

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 25: Parameteranpassung mit der Likelihood-Methode (2)comp.physik.kit.edu/Lehre/Rechnernutzung/Vorlesungsfolien/V12... · Wdh. Maximum Likelihood-Prinzip Likelihood-Funktion: Produkt der

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 26: Parameteranpassung mit der Likelihood-Methode (2)comp.physik.kit.edu/Lehre/Rechnernutzung/Vorlesungsfolien/V12... · Wdh. Maximum Likelihood-Prinzip Likelihood-Funktion: Produkt der

Beispiele zur Parameteranpassung

Page 27: Parameteranpassung mit der Likelihood-Methode (2)comp.physik.kit.edu/Lehre/Rechnernutzung/Vorlesungsfolien/V12... · Wdh. Maximum Likelihood-Prinzip Likelihood-Funktion: Produkt der

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 28: Parameteranpassung mit der Likelihood-Methode (2)comp.physik.kit.edu/Lehre/Rechnernutzung/Vorlesungsfolien/V12... · Wdh. Maximum Likelihood-Prinzip Likelihood-Funktion: Produkt der

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 29: Parameteranpassung mit der Likelihood-Methode (2)comp.physik.kit.edu/Lehre/Rechnernutzung/Vorlesungsfolien/V12... · Wdh. Maximum Likelihood-Prinzip Likelihood-Funktion: Produkt der

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 30: Parameteranpassung mit der Likelihood-Methode (2)comp.physik.kit.edu/Lehre/Rechnernutzung/Vorlesungsfolien/V12... · Wdh. Maximum Likelihood-Prinzip Likelihood-Funktion: Produkt der

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 31: Parameteranpassung mit der Likelihood-Methode (2)comp.physik.kit.edu/Lehre/Rechnernutzung/Vorlesungsfolien/V12... · Wdh. Maximum Likelihood-Prinzip Likelihood-Funktion: Produkt der

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 32: Parameteranpassung mit der Likelihood-Methode (2)comp.physik.kit.edu/Lehre/Rechnernutzung/Vorlesungsfolien/V12... · Wdh. Maximum Likelihood-Prinzip Likelihood-Funktion: Produkt der

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 33: Parameteranpassung mit der Likelihood-Methode (2)comp.physik.kit.edu/Lehre/Rechnernutzung/Vorlesungsfolien/V12... · Wdh. Maximum Likelihood-Prinzip Likelihood-Funktion: Produkt der

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 34: Parameteranpassung mit der Likelihood-Methode (2)comp.physik.kit.edu/Lehre/Rechnernutzung/Vorlesungsfolien/V12... · Wdh. Maximum Likelihood-Prinzip Likelihood-Funktion: Produkt der

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 35: Parameteranpassung mit der Likelihood-Methode (2)comp.physik.kit.edu/Lehre/Rechnernutzung/Vorlesungsfolien/V12... · Wdh. Maximum Likelihood-Prinzip Likelihood-Funktion: Produkt der

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