|
|
Differenzen de selben Zahlen sind nicht 0 |
|
blub |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 24.05.2013, 10:21
Titel: Differenzen de selben Zahlen sind nicht 0
|
 |
Hallo,
ich habe hier finanzdaten in preisen und renditen als mat-files vorliegen. Nehme ich die Preise und errechne ich selbst daraus die Renditen, ergibt sich aus der Differenz der von mir selbst ermittelten Renditen und den vorliegenden Renditen keine 0. Dabei sind die 5 ziffern, die man zu Gesicht bekommt, schon identisch. Aber der Rest scheinbar nicht.
Ich bin gerade völlig überfordert, da sich das gravierend auf die log-likelihood meiner maximum likelihood schätzungen auswirkt!
Wie kann das sein?
Beste Grüße
|
|
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 24.05.2013, 11:13
Titel:
|
 |
Hallo,
wie errechnest du denn die Renditen?
Mit
kannst du dir alle verfügbaren Stellen anzeigen lassen.
Ein kleiner Ausschnitt der Daten (Preise + Renditen) könnte helfen.
Grüße,
Harald
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 24.05.2013, 11:42
Titel: Re: Differenzen de selben Zahlen sind nicht 0
|
 |
Hallo blub,
Die Beschreibung des Problems ist noch sehr vage. Was bedeutet "die 5 Ziffern, die man zu Gesicht bekommt" genau? Würde ein "format long g" das Problem bereits lösen, weil es die Anzahl der im Command Window dargestellten Ziffern erhöht?
Wenn nicht, versuche das Problem mit ein paar Zeilen Code zu erklären, die das problem reproduzieren.
Gruß, Jan
|
|
|
blub |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 24.05.2013, 13:24
Titel:
|
 |
Das ist ja total verrückt!
@Harald
die log-reniten habe ich so berechnet:
mithilfe des Befehls
stellt sich nun tatsächlich heraus dass die Zahlen nicht identisch sind, obwohl SIE beide zu 100% mit der SELBEN (siehe oben) Formel berechnet wurden. Der einzige Unterschied liegt darin, dass die einen returns im mat-file gespeichert vorliegen, während die anderen eben im command window berechnet wurden. Ist das verrückt? Das wahnsinnigste dabei ist zudem noch, dass sich die likelihoods meiner Modelle in ERHEBLICHEM maße unterscheiden. Erhöhe ich in einem Modell die Flexibilität, geht die Likelihood mit dem vorliegenden mat file gar nicht höher; benutze ich die selbst berechneten returns schießt die likelihood in die höhe, wie zu erwarten bei mehreren Freiheitsgraden.
Wahnsinn.
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 24.05.2013, 13:34
Titel:
|
 |
Hallo blub,
Ich habe bisher noch keinen einzigen bestätigten Fall gesehen, bei dem "verrückte" Matlab-Probleme sich nicht im Nachhinein als zu erwartende Auswirkungen des Programmcodes herausgestellt haben.
Wie groß ist denn der absolute und relative Unterschied zwischen den beiden Ergebnissen? Wurden die Werte im MAT-File vielleicht im Text-Format oder als SINGLEs gespeichert?
Wenn die Formel die gleiche ist, und sie beide Male mit Matlab berechnet wurde, sich die Ergebnisse aber unterscheiden, müssen die Inputs unterschiedlich gewesen sein (oder die Formel enthält etwas nicht-deterministisches wie RAND oder CLOCK).
Gruß, Jan
|
|
|
blub |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 24.05.2013, 13:55
Titel:
|
 |
Moin Jan,
im workspace steht jeden falls unter value die matrizendimensionen und eben double.
Das heisst dann wohl, dass das nicht im Text-Format oder als SINGLE vorliegt?
In der Formel ist ja nichts stochastisches enthalten und dafür, dass die inputs unterschiedlich sein könnten, sind die Outputs sich ja schon wieder zu ähnlich.
Ich habe mal eben das file hoch geladen. die daten, die gross beschrieben sind, sind die preislevel, die klein beschriebenen die renditen, auf der basis die ich eben angegeben habe.
Wenn ihr jetzt mal selbst auf grundlage der Preise die returns berechnet, werdet ihr den unterschied sehen.
lg
|
|
|
blub |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 24.05.2013, 13:57
Titel:
|
 |
Beschreibung: |
|
 Download |
Dateiname: |
gomatlab.rar |
Dateigröße: |
84.99 KB |
Heruntergeladen: |
294 mal |
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 24.05.2013, 14:13
Titel:
|
 |
|
 |
|
Hallo blub,
Ist meine Aussage klar geworden? Wenn die Outputs unterschiedlich sind, müssen die die Inputs unterschiedlich sein. Wenn die Ergebnisse, die in dem File gespeichert sind sich von den neu-berechneten unterscheiden, wurden für die zurückliegenden Berechnungen also andere Inputs verwendet, z.B. SINGLE-Werte innerhalb von Excel, oder wo die Daten auch sonst berechnet wurden. Wenn du dann die Zahlen in Matlab importierst, stehe sie zwar als DOUBLEs zur Verfügung, es gibt aber keinerlei Informationen darüber, wie, wo und mit welchen Inputs die existierenden Outputs erstellt wurden.
Mit anderen Worten: Man kann basierend auf den bisherigen Erklärung nicht erraten, woher der Unterschied kommt. Z.B. hatte Matlab auch lange eine instalbile Implementation von LOG10 verwendet, so dass man genau wissen müsste, mit welcher Matlab-version und welchem Code genau die Zahlen erstellt wurden.
Das die Zahlen "ähnlich" sind, sagt gar nichts. Siehe "sin(1)" und "sin(103232.352)". Das ist auch fast gleich, was aber an der Natur der Sinusfunktion hängt und nicht an den Inputs.
Gruß, Jan
|
|
|
blub |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 24.05.2013, 14:51
Titel:
|
 |
Es wurde beides in MATLAB berechnet, sowohl das gespeicherte MAT-File wie auch das selbst errechnete.
Der einzige Unterschlieg kann darin liegen, dass die returns aus dem gespeicherten MAT File mit matlab2012 berechnet wurden, während ich jetzt mit matlab2010 hantiere.
|
|
|
Sirius3 |

Forum-Guru
|
 |
Beiträge: 441
|
 |
|
 |
Anmeldedatum: 12.11.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 24.05.2013, 17:08
Titel:
|
 |
Hallo blub,
da ist ja schon der Unterschied. Wenn man jetzt noch dazu nimmt, dass die eine Matlabversion 64bittig ist und log über MMX-Befehle berechnet, die andere 32bittig und log per FPU und damit intern 80bit berechnet sind doch Unterschiede gar nicht mehr verwunderlich.
Grüße
Sirius
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 24.05.2013, 17:54
Titel:
|
 |
Hallo,
ich habe die Berechnungen mal bei mir (2012b, 32bit) nachvollzogen und bekomme Ergebnisse, die bis auf 12 Stellen genau sind. Die Mittelwerte und Standardabweichungen unterscheiden sich sogar erst in der 15. Stelle.
Wenn eine Methode so empfindlich gegenüber minimalen Störungen ist, dass dann etwas komplett anderes herauskommt, sollte man meines Erachtens die Methode sehr kritisch betrachten.
Wenn man beispielsweise aufgrund historischer Daten Vorhersagen machen möchte, würde so etwas ja heißen, dass man seine Vorhersagen im Grunde jeden Tag wieder über den Haufen werfen kann.
Grüße,
Harald
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 25.05.2013, 00:56
Titel:
|
 |
Hallo blub,
Wir Harald schon beschrieben hat, sind die Abweichungen klein. Die relative Abweichung ist:
Da in der Formel die Ausgabe von LOG mit 100 multipliziert wurde bedeutet dies, dass sich die Ergebnisse der LOG-Funktion um einen Wert sehr nahe an EPS=2.2e-16 unterscheiden. Das heißt, dass die Unterschiede an der Grenze der Rechengenauigkeit mit DOUBLE-Werten sind.
Solche Abweichungen treten tatsächlich auf, wenn man LOG auf einem anderen Prozessor (AMD versus Intel, oder FPU versus MMX) oder mit einer andere Bibliothek berechnet.
Ich sehe also kein Problem, da die beobachteten Unterschiede erwartet werden können.
Gruß, Jan
|
|
|
blub |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 25.05.2013, 12:19
Titel:
|
 |
Die Erklärungen tragen auf jeden Fall zum Verständnis ei =)
Besten Dank und freundliche Grüße
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 26.05.2013, 00:00
Titel:
|
 |
Hallo blub,
Und es war immer mein Ziel, möglichst viele Forums-User zum Verständnis-Ei zu tragen!
Gute Nacht, Jan
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2025
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.
|
|