Initialwert bestimmen für Weibullkurve mit nls2

Modelle zur Korrelations- und Regressionsanalyse

Moderator: EDi

Athomas
Beiträge: 768
Registriert: Mo Feb 26, 2018 8:19 pm

Re: Initialwert bestimmen für Weibullkurve mit nls2

Beitrag von Athomas »

Ich nehme an, du verstehst jetzt meine gelegentlich kritischen Anmerkungen, wenn der nächste BWLer hier aufschlägt, und irgendwas mit Aktien analysieren will...
Da ich selber von Zeit zu Zeit kritische Anmerkungen mache, gestehe ich das natürlich auch gerne jedem anderen zu :D !
Ich wollte mir allerdings kein neues Buch kaufen (ich habe schon eines :lol: ) - gibt es denn im ganzen, großen Internet kein frei zugängliches Beispiel?
schubbiaschwilli
Beiträge: 253
Registriert: Di Jun 27, 2017 12:09 pm

Re: Initialwert bestimmen für Weibullkurve mit nls2

Beitrag von schubbiaschwilli »

Gude!
Ich wollte mir allerdings kein neues Buch kaufen (ich habe schon eines :lol: )
Lass mir dir sagen: Der Trend geht zum Zweitbuch! Es gibt viele Menschen, die mit ihrem einen Buch so zufrieden sind, dass sie planen, ein zweites zu kaufen...
gibt es denn im ganzen, großen Internet kein frei zugängliches Beispiel?
Genau das ist der Punkt - Im Prinzip ist das ja sowas wie vergleichende BWL, und, hm, das läuft alles andere als rund... Es gibt wenig Literatur und schon gar kein kurzes, knackiges Werk, dass darauf eingeht (zumindest ich kenne keines); auf Deutsch schon gar nicht - Wer mal vor der Tagessschau dieses 'Börse im Ersten' (oder wie sich das nennt) gesehen hat... Wir haben Finanzskandale, und darüber wird auf einem Nivea (kein Schreibfehler) berichtet, als hätte irgend eine Mannschaft aus der Fußballbundesliga den Trainer gewechselt, so nach dem Motto: Der neue wird's dann schon richten... Aber eine tiefere Analyse (auch in der Presse) findet man selten, meistens werden die Börsenkurse mit einem Plus und Minus verlesen, als wären es Sportergebnisse, und die Skandale mit Nutten, Koks und schnellen Autos beschrieben... Und so in etwa tickt auch der durchschnittliche BWLer.

Was ich auf die schnelle gefunden haben, und ein Thema aus diesem Themenkomplex ein wenig beleuchtet:
https://blogs.faz.net/fazit/2013/10/14/ ... fuer-2768/
Hier geht es um die Alfred-Nobel-Gedächtnispreis für Wirtschaftswissenschaften 2013 - Der wurde geteilt vergeben an Fama, Shiller und Hansen - Fama hat ihn dafür bekommen, dass er sagt, es gibt keine Blasen (genau: die Finanzmärkte sind ziemlich effizient), Shiller hat gezeigt, dass es Blasen gibt.
Und dann gibt es noch Psychologen, die den handelnden Akteuren das rationale Verhalten absprechen:
https://www.uni-heidelberg.de/md/awi/pr ... t_2009.pdf

Zu den Modellen:
Schau mal unter https://en.wikipedia.org/wiki/Stochasti ... er_reading
Da finden sich:
Financial models
Binomial options pricing modelBlack–Derman–ToyBlack–KarasinskiBlack–ScholesChenConstant elasticity of variance (CEV)Cox–Ingersoll–Ross (CIR)Garman–KohlhagenHeath–Jarrow–Morton (HJM)HestonHo–LeeHull–WhiteLIBOR marketRendleman–BartterSABR volatilityVašíčekWilkie
Wie bereits erwähnt: Ich kenne kein kurzes, knackiges Werk, und schon gar nicht in Deutsch. Und, nun ja, die Frage, welches Modell richtig ist, wird sehr selten gestellt. Man nimmt halt eines, dass man zuvor ein wenig getestet hat oder so, und das war es. Oder die Modelle werden vorher ausgeschlossen bzw. als gültig erklärt: Einige dieser Zinsmodelle sagen z.Bsp. negative Zinsen voraus - Lange Zeit undenkbar (bis auf Japan, weswegen man für verschiedene Länder verschiedene Modelle hatte - Nicht nur Parameter). Auf einmal hatte man negative Zinsen und, tja, dann war es halt auf einmal doch das richtige.
Ich hab' mal als Freiberufler in einer Investmentbank gesessen, und nachgerechnet, ob die Systeme mit negativen Zinsen rechnen können - Das waren ein paar Tage nette Arbeit und gutes Geld.

Dank&Gruß
Schubbiaschwilli
eimichae
Beiträge: 36
Registriert: Mo Okt 10, 2016 8:48 pm

Re: Initialwert bestimmen für Weibullkurve mit nls2

Beitrag von eimichae »

Hallo zusammen,
Danke für die spannende Diskussion. Leider ist sie etwas abgedriftet und dreht sich nicht mehr um meine ursprüngliche Frage....;). Hilfe diesbezüglich wäre immernoch sehr willkommen
Athomas hat geschrieben: Mo Mär 15, 2021 10:30 am Kannst Du bitte mal erklären, wie Du auf "3-Parameter Weibullkurven", insbesondere ihre Beschreibung durch "y ~ m*exp(-1*(x/b)^c)", kommst?
Ich benutze diese spezifische Kurve um den Zusammenhang zwischen Photosyntheseleistung von Bäumen und Wasserverfügbarkeit zu modellieren.
Gut möglich, dass es geeignetere Modelle gäbe. In meine Fall muss ich aber diesen spezifische Kurvengleichung verwenden um eine Hypotheses zu überprüfen.
Mit Dank und besten Grüssen
Benutzeravatar
EDi
Beiträge: 1599
Registriert: Sa Okt 08, 2016 3:39 pm

Re: Initialwert bestimmen für Weibullkurve mit nls2

Beitrag von EDi »

Probier mal

Code: Alles auswählen

algorithm = "random-search"
und schraub die iterationen hoch (je nachdem was deine Kiste hergibt) in nls2. Der Raum welcher die Start-Werte umfasssen, muss natürlich sinnvoll sein (meine da was weiter oben gelesen zu haben, dass es invalide Startwerte gab).

nls.control() hat auch das Argument warnOnly, das sollte aber nur nützen wenn man weiß was man tut :|
Bitte immer ein reproduzierbares Minimalbeispiel angeben. Meinungen gehören mir und geben nicht die meines Brötchengebers wieder.

Dieser Beitrag ist lizensiert unter einer CC BY 4.0 Lizenz
Bild.
Benutzeravatar
EDi
Beiträge: 1599
Registriert: Sa Okt 08, 2016 3:39 pm

Re: Initialwert bestimmen für Weibullkurve mit nls2

Beitrag von EDi »

Was mir auch noch einfällt:

Das backend ändern und z.b. mit admb rechnen:

https://besjournals.onlinelibrary.wiley ... 210X.12044

Oder mit brms (bzw. Stan unter der Haube):

https://cran.r-project.org/web/packages ... inear.html
Bitte immer ein reproduzierbares Minimalbeispiel angeben. Meinungen gehören mir und geben nicht die meines Brötchengebers wieder.

Dieser Beitrag ist lizensiert unter einer CC BY 4.0 Lizenz
Bild.
eimichae
Beiträge: 36
Registriert: Mo Okt 10, 2016 8:48 pm

Re: Initialwert bestimmen für Weibullkurve mit nls2

Beitrag von eimichae »

Hallo zusammen.
Vielen Dank für die wertvollen Tipps!
Mein momentanes Problem (siehe mein Beitrag mit aktualisiertem Code) ist allerdings mehr, dass ich zwar Initialwerte berechnen kann, diese dann aber nicht in ggplot2 Plotten kann (keine loess smoothing erwünscht). Kann mir da jemand weiterhelfen?
Bedten Dank
schubbiaschwilli
Beiträge: 253
Registriert: Di Jun 27, 2017 12:09 pm

Re: Initialwert bestimmen für Weibullkurve mit nls2

Beitrag von schubbiaschwilli »

Gude!

Tja, ohne Daten/Beispiel wird dir da niemand weiterhelfen können.

Dank&Gruß
Schubbiaschwilli
Benutzeravatar
EDi
Beiträge: 1599
Registriert: Sa Okt 08, 2016 3:39 pm

Re: Initialwert bestimmen für Weibullkurve mit nls2

Beitrag von EDi »

Achso... Dann mach am Besten einen neuen Faden mit einem reproduzierbaren Beispiel auf...
Bitte immer ein reproduzierbares Minimalbeispiel angeben. Meinungen gehören mir und geben nicht die meines Brötchengebers wieder.

Dieser Beitrag ist lizensiert unter einer CC BY 4.0 Lizenz
Bild.
schubbiaschwilli
Beiträge: 253
Registriert: Di Jun 27, 2017 12:09 pm

Re: Initialwert bestimmen für Weibullkurve mit nls2

Beitrag von schubbiaschwilli »

Gude!

Übrigens liefert der Levenberg-Marquardt-Algorithmus Ergebnisse (auch, wenn ich über die Qualität im Vergleich zu anderen Methoden nichts sagen kann).

Dank&Gruß
Schubbiaschwilli

Code: Alles auswählen

library(minpack.lm)
nlsLM(Photo ~ m*exp(-1*(PDLWP/b)^c), data=dip3dta, start=list(m=45,b=8,c=0.6), control=list(maxiter=10000, maxfev=50000))

Code: Alles auswählen

Nonlinear regression model
  model: Photo ~ m * exp(-1 * (PDLWP/b)^c)
   data: dip3dta
        m         b         c 
1.085e+05 8.616e-12 8.300e-02 
 residual sum-of-squares: 55.82

Number of iterations till stop: 1024 
Achieved convergence tolerance: 1.49e-08
Reason stopped: Number of iterations has reached `maxiter' == 1024.
Warnmeldungen:
1: In nls.lm(par = start, fn = FCT, jac = jac, control = control, lower = lower,  :
  resetting `maxiter' to 1024!
2: In nls.lm(par = start, fn = FCT, jac = jac, control = control, lower = lower,  :
  lmdif: info = -1. Number of iterations has reached `maxiter' == 1024.
eimichae
Beiträge: 36
Registriert: Mo Okt 10, 2016 8:48 pm

Re: Initialwert bestimmen für Weibullkurve mit nls2

Beitrag von eimichae »

EDi hat geschrieben: Di Mär 16, 2021 12:36 pm Achso... Dann mach am Besten einen neuen Faden mit einem reproduzierbaren Beispiel auf.
Hallo zusammen. Ich bin etwas verwirrt. Mein Beispiel sollten doch reproduzierbar sein. Hat doch ein kleines Datenset usw dabei. Oder bring ich da was durcheinander?
Antworten