XIRR in JMP mit R?Alles,
Ich habe nach einer Lösung für die XIRR-Berechnung in JMP gesucht. In dem Prozess @ron_horne war so freundlich, einige seiner Arbeiten zu teilen.
Ich bin den Weg gegangen, einige Pakete innerhalb von R für die Berechnung zu nutzen. Ich habe auch eine Funktionsanforderung für XIRR- und XNPV-Funktionen eingereicht, die in zukünftigen JMP-Versionen implementiert werden sollen. Das aktuelle Problem, das mir aufgefallen ist, ist jedoch - das R-Paket, das ich nutze, hat keine erwarteten Ergebnisse und verwirrt mich irgendwie. Ich frage mich, ob es jemandem gefallen würde @ich h Alle anderen JMP-Benutzer in der Community haben bereits Erfolge erlebt, die diesen Weg eingeschlagen haben, oder sich mit Erfolg bei der XIRR-Berechnung in eine andere Richtung gewagt.
RConn = R Connect();
ConnFlag = R Is Connected();
If(ConnFlag,
R Submit("
# Reprex
# Attach desired packages
suppressPackageStartupMessages(library(tvm))
# Provide input data
CF <- c(-78662, -32491, -32492, 7651, 40300)
d <- as.Date(c('2019-06-30', '2019-09-30', '2019-12-31', '2020-03-31', '2020-06-30'))
# Call the XIRR Function
Res1 <- vector()
Res1 <- sapply(1:length(d), function(i) {
tryCatch({
expr = xirr(i, CF[1:i],
d[1:i])
}, error = function(i) { return(NA) })
})
# Print Results
#print(Res1)
");
Results = R Get(Res1);
RConn << disconnect;
);
Die obige Berechnung sollte NA bis i = 4 zurückgeben, aber sobald der Cashflow eine Änderung des Vorzeichens feststellt, sollte er einen anderen Wert als NA zurückgeben, wie dies bei Excel der Fall wäre. Alle Gedanken oder Hinweise zur Behebung dieses Problems werden geschätzt.
Re: XIRR in JMP mit R? @Dahlia_Watkins . @Justin_Chilton - Hat einer von Ihnen XIRR in JMP versucht?
Re: XIRR in JMP mit R? @ich h .
Ich habe nur ein Beispiel des Cashflows als Beispiel veröffentlicht. Ich sehe jedoch den Wert Ihrer Ratschläge, weil ich einen Fehler sehe, wenn sapply nicht verwendet wird. Der Uniroot-Fehler taucht auf und ich dachte, es liegt allein am Cashflow. Um das zu umgehen, setze ich den Trycatch ein.
Interessant ist jedoch, dass Excel diese Probleme angehen und Ergebnisse liefern kann. Aber danke für den Ratschlag - werde auch das Repository durchsehen.
Re: XIRR in JMP mit R?Hallo Uday,
Leider verwenden wir unsere eigene IRR-Berechnung, sodass ich bei der R-Funktion nicht viel helfen kann. Das heißt, die Cashflows in Ihrem Projekt sind alle so negativ, dass Sie eine unglaublich große Menge benötigen würden Negativ IRR, um den NPV des Projekts auf Null zu setzen. Sie benötigen wahrscheinlich mehr positive Cashflows, damit der Solver konvergieren kann (der IRR wird nicht direkt berechnet, sondern Sie finden stattdessen den Zeitwert des Geldes, durch den der Kapitalwert auf null gesetzt wird).
Beachten Sie, dass das Umschließen des xirr-Funktionsaufrufs mit sapply Fehlern maskieren kann. Ich wette, wenn Sie xirr direkt anrufen, wird ein Fehler angezeigt, der mit einem Solver zusammenhängt.
Es sieht so aus, als sei das nvm-Paket gespiegelt Hier Das könnte Ihnen helfen zu verstehen, was das Paket macht. Zum Beispiel könnten Sie ihre Definition von xnpv verwenden, um den Irre manuell zu finden, indem Sie i anpassen:
i <- .01
sum(CF / ((1 + i) ^ (as.integer(d - d[1]) / 365)))
JMP hat einen Gleichungslöser, so dass das Erstellen in JSL möglich sein sollte. Ich habe jedoch nicht damit gespielt.