[R-SIG-Finance] Error on "fBasics::dstable"

Shiazy Fuzzy shiazy at gmail.com
Sun Aug 26 15:43:27 CEST 2007


On 8/26/07, Shiazy Fuzzy <shiazy at gmail.com> wrote:
> Hi,
>
> I get this error on fBasics::dstable function:
>
> --- [CUT HERE] ---
> Error in dstable(y, alpha = alpha, beta = beta, gamma = gamma, delta =
> delta) : object "result" not found
> --- [/CUT HERE] ---
>
> Looking at the code ("2A-StableDistribution.R"), it seems it is
> sufficient to add an initialization instruction, for instance, at line
> 442:
>
> --- [CUT HERE] ---
>     result = 0; # ADDED INITIALIZATION
>     # Special Cases:
>     if (alpha == 2) {
>         result = dnorm(x, mean = 0, sd = sqrt(2))
>     }
>     if (alpha == 1 & beta == 0) {
>         result = dcauchy(x)
>     }
> --- [/CUT HERE] ---
>
> Furthermore, I think the test on "beta" ("... & abs(beta) <= 1") at
> line 454 is useless because of test at lines 425 and 426 ("if (beta  <
> -1) ...." and "if (beta  > -1) ...", respectively).
>
> My system is:
> CPU: AMD Turion x2 TL-52
> RAM: 1GB
> OS: Fedora 7 x86_64
> R: v. 2.5.1
> fBasics. fCalendar, fEcofin: v. 251.70
>
> Sincerely,
>
> -- Marco
>

Here is a reproducible example:

--- [CUT HERE] ---
library(fBasics);
x <- c( 492408, 1897, 66795, 4014, 14, 11, 5770, 4284, 672, 50, 769,
21, 28, 13, 76, 29, 37, 28, 114, 63, 1479, 166, 999, 117, 8, 14, 206,
231, 85, 74684, 1130, 475, 657, 27, 230, 607, 1460, 116, 125, 2058,
3413, 69110, 20, 43, 406, 147, 314, 69, 310, 21, 1059, 986 );
stableFit( x,type=c("mle"),doplot=F );
--- [/CUT HERE] ---

With the above corrections, the problem seems to be partially solved
... Partially because I found out if you specifiy 'doplot = TRUE', the
same error happens in "qstable"  method:

--- [CUT HERE] ---
Error in qstable(0.01, alpha, beta) : object "result" not found
--- [/CUT HERE] ---

Note this error appears only if you have already corrected the
"dstable" method; otherwise execution stops before.
I've tried to fix it with the same kind of corrections done for
"dstable" (added "result=NULL;" to line 767. However, I got a new
error (in place of the above):

--- [CUT HERE] ---
Error in if (from == to) rep.int(from, length.out) else as.vector(c(from,  :
        argument is of length zero
--- [/CUT HERE] ---

Let me know if there's a better solution or if I'm wrong.

Thank you so much!

Sincerely,

-- Marco



More information about the R-SIG-Finance mailing list