[R-SIG-Finance] RES: [Fwd: Re: problem with fPortfolio]
Julio Ferreira
julio.ferreira at reliance.com.br
Fri Jul 20 22:28:07 CEST 2007
Brian,
Checking the code for assetsMeanCov, I found out that when method="mcd"
the code does this:
else if (method == "mve") {
ans = MASS::cov.rob(x, method = "mve")
mu = ans$mu
Sigma = ans$Omega
}
else if (method == "mcd") {
ans = MASS::cov.rob(x, method = "mcd")
mu = ans$mu
Sigma = ans$Omega
When the correct should be this:
else if (method == "mve") {
ans = MASS::cov.rob(x, method = "mve")
mu = ans$center
Sigma = ans$cov
}
else if (method == "mcd") {
ans = MASS::cov.rob(x, method = "mcd")
mu = ans$center
Sigma = ans$cov
As the cov.rob function (package MASS) returns $center(instead of $mu) and $cov (instead of $Omega), the objects mu and Omega were NULL, and then the error message makes sense ("trying to attribute to a NULL")
In the case of the other methods choices, the code is correct.
I am a newcomer to R, so would you pls indicate how should I warn the mantainer to get this code fixed on the package??
Rgds
-----Mensagem original-----
De: Brian G. Peterson [mailto:brian at braverock.com]
Enviada em: sexta-feira, 20 de julho de 2007 16:04
Para: R-SIG-Finance
Cc: Julio Ferreira
Assunto: [Fwd: Re: [R-SIG-Finance] problem with fPortfolio]
Please address responses to the list
-------- Original Message --------
From: Julio Ferreira <julio.ferreira at reliance.com.br>
To: Brian G. Peterson <brian at braverock.com>
Brian,
Yes, I did after I sent the message calling for help. Actually I found
out that "isPositiveDefinite" is part of fEcofin, which apparently
should have been downloaded (I used "dependencies=TRUE", when downloaded
fPortfolio). I tried to download fEcofin from another mirror and it
solved the problem. Maybe the first downloaded was (somehow)
"corrupted"????Is it possible ?? the checks seemed to be ok....
Now i´m getting another strange problem: when calling
>assetsMeanCov(berndtAssets.ts,method="mcd")
I´m getting error message:
Erro em names(mu) = colnames(x) : tentativa de especificar um atributo
em um NULL
translation: "attempted to specify an attribute to a NULL"
The problem is that I am just reproducing what was on the fPortfolio
documentation. Any guess what was going on?
I thank you for your reply, and apologize for "abusing" from you
"goodwill", but I am learning R by myself, so don´t have no one else to
ask for help...
-------- End Original Message --------
Julio,
Try with a different data set, or check to make sure that there are no
NA's in the data you're using to test the functions. Rmetrics is a set
of functions and data which have accumulated over several years, and
fEcofin is a relative newcomer to the package set. In some cases, this
means that examples in documentation, which are not automatically
checked on package build, may no longer work properly.
In the specific case you cite above, it looks like your input data may
not have had named columns.
I'm not sure that's the case though, because when I try with a different
data set which I know is named and symetric in length of all columns, I
get a similar error to the one you describe:
> data(edhec)
> assetsMeanCov(edhec,method="mcd")
Error in `names<-.default`(`*tmp*`, value = c("Convertible.Arbitrage",
: attempt to set an attribute on NULL
When I try with a different data set with timeseries of differing
lengths, I get a different error:
> data(managers)
> assetsMeanCov(managers,method="mcd")
Error in MASS::cov.rob(x, method = "mcd") :
missing or infinite values are not allowed
When I try with a different method parameter, I get the error you
reported initially.
> assetsMeanCov(edhec,method="cov")
Error in assetsMeanCov(edhec, method = "cov") :
could not find function "isPositiveDefinite"
So, I'm suspecting that there may be a bug in the naming section (or
elsewhere) in the assetsMeanCov function.
Perhaps you should try the more primitive functions mean() and cov()
before working with wrapper functions.
Regards,
- Brian
More information about the R-SIG-Finance
mailing list