PDF-Datei - Dr. Wolfram Schroers

Werbung
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!
Herunterladen