XIRR dans JMP utilisant R?Tout,
Je cherchais une solution pour gérer le calcul XIRR dans JMP. Dans le processus, @ron_horne a eu la gentillesse de partager certains de ses travaux.
Je suis allé sur le chemin de tirer parti de certains paquets dans R pour le calcul. J'ai également introduit une demande de fonctionnalité pour que les fonctions XIRR et XNPV soient déployées dans les futures versions de JMP. Cependant, le problème actuel que j’ai remarqué est le suivant: le paquetage R que j’utilise à partir de rien ne donne pas les résultats escomptés et c’est un peu déroutant. Vous vous demandez si quelqu'un aime @ih ou tous les autres utilisateurs JMP de la communauté ont vu le succès se faire dans cette voie ou se sont aventurés dans une direction différente avec succès pour le calcul XIRR.
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;
);
Le calcul ci-dessus devrait renvoyer NA jusqu'à ce que i = 4, mais dès que le flux de trésorerie détecte un changement de signe, il doit renvoyer une valeur autre que NA, comme le ferait Excel. Toutes les pensées ou les conseils pour résoudre ce problème sont appréciés.
Re: XIRR dans JMP utilisant R? @Dahlia_Watkins , @Justin_Chilton - L'un de vous a-t-il essayé XIRR dans JMP?
Re: XIRR dans JMP utilisant R? @ih ,
Je n'ai posté qu'un échantillon du flux de trésorerie à titre d'exemple. Cependant, je vois la valeur de vos conseils, car je vois une erreur lorsque sapply n’est pas utilisé. L'erreur uniroot apparaît et je pensais que c'était uniquement à cause du flux de trésorerie. Afin de contourner cela, j'ai mis le trycatch en place.
Ce qui est intéressant, c’est que Excel est capable de les résoudre et de fournir des résultats. Mais merci pour les conseils - allez consulter leur référentiel aussi.
Re: XIRR dans JMP utilisant R?Salut uday
Malheureusement, nous utilisons notre propre calcul IRR, je ne suis donc pas très utile pour la fonction R. Cela dit, les flux de trésorerie de votre projet sont tellement négatifs que vous auriez besoin d’un nombre incroyablement élevé. négatif IRR pour rendre la VAN de ce projet nulle. Le solveur a probablement besoin de plus de flux de trésorerie positifs pour que le solveur converge (le TRI n’est pas calculé directement, mais vous trouvez la valeur temps de l’argent qui définit la VAN comme égale à zéro).
Notez que le fait d'appeler sapply la fonction xirr peut masquer des erreurs. Je parie que si vous appelez directement xirr, vous verrez une erreur liée à un solveur.
Il semble que le paquet nvm soit mis en miroir ici , cela pourrait vous aider à comprendre ce que fait le paquet. Par exemple, vous pouvez utiliser leur définition de xnpv pour trouver manuellement l'irr en ajustant i:
i <- .01
sum(CF / ((1 + i) ^ (as.integer(d - d[1]) / 365)))
JMP a un résolveur d'équation, donc construire cela en JSL devrait être possible, je n'ai pas encore joué avec.