Datenanalyse mit Python Dr. Wolfram Schroers <Wolfram.Schroers - at - Field-theory.org> Problem Beobachtungen Modell (Annahmen,Vereinfachungen) Vorhersagen Vergleich • Python: Stärken und Schwächen • Anwendung: Markowitz-Portfolio und Finanzmärkte • Anwendung: Datenauswertung in der Kernphysik • Tools, Workflow und Visualisierung • Q &A • Beispiele sind zu finden unter http://pycon.nua-schroers.de Warum Python? • M. Müller, Python&HDF5 • Dr.Y.J. Hilpisch, Automatisierung von numerischer Forschung mit Python • S. Rahmann, Sequenzanalyse in der Bioinformatik mit Python • M. Martin, Python im Bioinformatiker-Alltag • D. Böhnke, Konzeptentwurf von Verkehrsflugzeugen • M. Gfeller, Quantax, ein Risk-Managementsystem für Banken • H. Joukl, Python im Bereich Financial Markets • Dr.Y.J. Hilpisch, Rapid Financial Engineering mit Python • [...] • iPython: http://ipython.org • Sage (symbolische & numerische Mathematik): http://www.sagemath.org/ numpy • Online numpy Tutorial: http://www.scipy.org/Tentative_NumPy_Tutorial Live-Demo: numpy scipy Vergleich: numpy/scipy vs. MATLAB http://www.scipy.org/NumPy_for_Matlab_Users Live-Demo: scipy matplotlib Live-Demo: matplotlib Anwendung: Markowitz-Portfolio • Wichtig für einen Unternehmer: Wie bekomme ich Geld? • Anleihe (Bonds) • Aktie (Shares) • Wichtig für den Anleger: • Der zu erwartende Gewinn • Das Risiko der Anlage d n i s r e g e l n e: A E A e rst m h nna i s i R s r e v a ko Was ist denn der „Wert“? • Schwierig zu beantworten • Naive Definition integriert über alle Firmen übersteigt gesamte Geldmenge gewaltig! • Definition der „Geldmenge“ auch schwierig • Alternative: Geld, um alle Anteile zu kaufen • Marktunabhängig: Summe aller Besitztümer minus Schulden Anleihen • „Preis“ (d.h. Zinssatz) wird im Voraus festgelegt • Der Preis richtet sich nach dem Markt (Gesetze der Mikroökonomie) • Je höher mein Risiko, desto mehr Zinsen muss ich versprechen zu zahlen Aktien • Ich verkaufe einmalig Anteile zu einem festen Preis • Danach werden die Anteile gehandelt, allerdings habe ich nichts von dem Preis • Anleger können mich „feuern“, wenn ich zu wenig Gewinn erwirtschafte Aktien ↔ Anleihen • Besitzer von Anleihen werden i.d.R. bevorzugt behandelt bei einer Pleite • Wenn ich gut wirtschafte, bekommen meine Aktien-Besitzer mehr Geld • Wenn ich schlechte wirtschafte, bekommen meine Anleihen-Besitzer mehr Geld • Zweite Annahme: • Der Markt ist „effizient“ Portfolio-Theorie • Grundsätzlich: Investments haben Risiken • Je höher das Risiko, desto höher muss der zu erwartende Gewinn ausfallen • Risiken haben verschiedene Ursachen ABER: Risiken sind oft unkorreliert! Markowitz: Diversifikation in verschiedene Anlagen kann das Risiko eines Portfolios verringern. Auch dann, wenn ich Anlagen mit höherem Risiko hinzufüge! Portfolio mit 2 Anlagen Rendite: R P = R 1 · λ 1 + R2 · λ2 , σP = � λ1 + λ2 = 1 Risiko: (σ1 λ1 )2 + (σ2 λ2 )2 + (2σ 2σ12 λ1 λ2 ) • Dritte Annahme: • Kombination der Anlagen unter Annahme normal-verteilter Risiken! Beispiel #1 Zeitreihe Risiko Rendite Anlage (Asset) Zeitreihe Risiko Rendite Anlage (Asset) Zeitreihe Risiko Rendite Anlage (Asset) Zeitreihe Risiko Rendite Anlage (Asset) Zeitreihe Zeitreihe Zeitreihe Anlage (Asset) Anlage (Asset) Anlage (Asset) Korrelation 1/2 Korrelation 2/3 Korrelation 1/3 Portfolio Zeitreihe Zeitreihe Zeitreihe Anlage (Asset) Anlage (Asset) Anlage (Asset) Korrelation 1/2 Korrelation 2/3 Korrelation 1/3 Portfolio Zeitreihe Zeitreihe Zeitreihe Anlage (Asset) Anlage (Asset) Anlage (Asset) Korrelation 1/2 Korrelation 2/3 Korrelation 1/3 Rendite Risiko Portfolio [0%,100%] Rendite: 5% Risiko: 3% Portfolio [50%,50%] Rendite: 8% Risiko: 20% Portfolio [21%,79%] Rendite: 10% Risiko: 17% Portfolio [100%,0%] Rendite: 15% Risiko: 30% Live-Demo: 2 Anlagen Beispiel #2 Portfolio [10%,20%,50%,20%] Rendite: 10% Risiko: 17% • Mögliche Portfolios spannen einen sehr großen Raum auf • Lösung mittels Monte-Carlo Sampling • Erzeugung von Zufallsvektoren mit Summe 1: Dirichlet-Verteilung (numpy kann das von Haus aus!) Portfolio [25%,25%,25%,25%] Rendite: 8% Risiko: 5% Minimale VarianzVerteilung NuAS 3,9 % Pear 6,0 % G-Bonds 40,1 % Real Estate 50,0 % Verteilung mit R>6% NuAS 39,1% Pear 59,4 % G-Bonds 1,1 % Real Estate 0,4 % Live-Demo: 4 Anlagen Test: Annahme Normalverteilung Live-Demo: Reale Daten pyMinuit „Least-squares“ Fits • Anwendung für nicht-lineare Funktionen • Definiere χ : 2 χ2 = N � i=1 • (yi − f (xi , {β}))2 Finde die Parameter, die χ2 minimieren! Fehler der Parameter • Der „beste Fit“ {β} ist i.d.R. einfach • Unsicherheiten der Parameter sind min schwieriger • Unterscheide zwischen statistischen und systematischen Unsicherheiten Fehlerbänder in nicht-linearen Fits: http://prd.aps.org/abstract/PRD/v73/i11/e114510 Fehlerbänder • Finde die Region im Parameterraum {β}, für die gilt: 2 2 χ ({β}) ≤ χmin + ∆χ 2 2 2 χmin = χ ({β}min ) • wobei wir für Δχ2 lösen müssen: (n) 2 Wχ2 (∆χ ) = 0.68269 Normalverteilung • Falls die Unsicherheiten „klein“ sind, ist eine Taylor-Entwicklung um das Minimum möglich: 1 χ ({β}) ≈ χ ({β}min ) + δ{β}k Ak,l δ{β}l 2 2 2 • Etwas rechnen liefert dann: fmin,max (x) = f (x, {β}min ) ± ∆f (x) , � � −1 2 ∆f (x) = 2∆χ vk (x)Ak,l vl (x) , � ∂f (x, {β}) �� vk (x) ≡ � ∂βk {β}={β}min Live-Demo: pyMinuit Anwendung: Fits in der Kernphysik Sehr teuer Eichfelder erzeugen Teuer Nicht bi"ig „Propagatoren“ Manpower Kontraktion Prop. ⇒ 2pt Funktionen Massen, Zerfa"skonstanten Sequentie"e Prop. Kontraktion Prop. ⇒ 3pt Funktionen Matrixelemente Formfaktoren q 2 = (p� − p)2 p! ! γ ∗ p! Ein Elektron untersucht die Größe eines Nukleons. Formfaktoren • Im Folgenden: Betrachte „Formfaktor“ F • Verallgemeinerung der Ladungsverteilung • Wichtige Größe für den Vergleich von • Computersimulationen • Modellen • Experiment 1 Phys.Rev. D71: 034508(2005) (Table X, β=6.4, κ=0.1346) Daten mit Fehlern? • Veränderte Definition von χ2: N � 1 2 2 (yi − f (xi , {β})) χ = 2 σ i=1 i • Dadurch erhalten Punkte mit kleineren Fehlerbalken ein höheres Gewicht Korrelationen? • Veränderte Definition von 2 χ = N � i,j=1 −1 Cij (yi 2 χ: − f (xi , {β}))(yj − f (xj , {β})) • Berücksichtigt Korrelationen zwischen Datenpunkten, entspricht der vorherigen Formel bei Abwesenheit derselben! Fit: Dipolfunktion F1v (Q2 ) = A0 /(1 + Q2 /Md2 )2 Fit: Dipolfunktion Fit: χPT-Modell F1v (Q2 ) � � � � � m �� 1 2 2 40 2 5 2 1 π 2 68 2 r = 1+ Q c − g − 2B (λ) + c − g − log 10 (4πfπ )2 81 A 3 A 27 A 3 A 3 λ � � � �� � 2� � 1 � 16 2 2 8 2 40 2 m̃ 2 2 2 2 + dx ∆ cA + mπ 3gA + 1 − cA − Q x(1 − x) 5gA + 1 − cA log 3 3 9 m2π 0 � � 1 � 32 2 2 ∆ log R(m̃) + dx cA Q x(1 − x) √ 9 ∆2 − m̃2 0 � 1 �� � 32 2 �� 2 − dx cA ∆ ∆ − m2π log R(mπ ) − ∆2 − m̃2 log R(m̃) 3 0 Fit: χPT-Modell Live-Demo: Formfaktoren Zusammenfassung • Python-Tools zur numerischen Mathematik • Bibliotheken: numpy, scipy, matplotlib, pyMinuit • Anwendung: Markowitz-Portfolios • Anwendung: Kernphysik • Stärken und Schwächen Danke für Ihre Aufmerksamkeit!