*stable distrib in fBasics --> small Rmetrics package "stableDist" ?

Martin Maechler maechler at stat.math.ethz.ch
Mon Mar 14 09:52:03 CET 2011


Two more months have passed.

In the mean time I had found that there is a "famous" 
non-CRAN package called  'stable' by Jim Lindsey,
a package that has some interesting features (that we lack) 
but also has drawbacks, and notably has never been on CRAN.
But for instance, there have always existed Debian / Ubuntu
packages for the "Jim Lindsey - collection", so I did have to
pick a different name and decided to use
     'stabledist'

Also I have spent many hours of experiments and thinking,
stumbling over several cases where the fBasics::dstable() would
end in an error (in integrate or optimize),
and finally studied Nolan's paper,
now making use of one more of his hints in computing dstable().

Note also that 'stabledist's  dstable() is nowadays an order of
magnitude faster than the original fBasics() one, at least when
applied to a whole vector.

Because of all this, 
I'm proposing to follow what I see in other Rmetrics packages as well,
namely to list me instead of Rmetrics-core at ... as maintainer.
Please tell me if you think this is inappropriate.
The DESCRIPTION file (as committed 10 minutes ago) now contains

----------------------------------------------------------------
Package: stabledist
Version: 0.6-0
Date: 2011-03-12
Title: Stable Distribution Functions
Author: Diethelm Wuertz, Martin Maechler and Rmetrics core team members.
Maintainer: Martin Maechler <maechler at stat.math.ethz.ch>
Depends: R (>= 2.10.1)
Suggests: fBasics, RUnit
Description: Density, Probability and Quantile functions, and random number
  generation for (skew) stable distributions, using the parametrizations of
  Nolan.
LazyLoad: yes
LazyData: yes
License: GPL (>= 2)
URL: http://www.rmetrics.org
----------------------------------------------------------------

Notably see 'Author:' and 'Maintainer:'
Is this ok for you?

If yes, I'd like to submit it to CRAN asap.
Best regards,
Martin


>>>>> Martin Maechler <maechler at stat.math.ethz.ch>
>>>>>     on Fri, 14 Jan 2011 22:10:44 +0100 writes:

>>>>> Martin Maechler <maechler at stat.math.ethz.ch>
>>>>>     on Wed, 12 Jan 2011 14:44:15 +0100 writes:

>>>>> Diethelm Wuertz <wuertz at phys.ethz.ch>
>>>>>     on Wed, 12 Jan 2011 11:42:06 +0100 writes:

    >>> On 12.01.2011, at 10:30, Martin Maechler wrote:


    >>> Dear Martin, Dear Yohan and David,

    >>> I am completely agree with Martin in all points,

    >> thank you very much, Diethelm!

    >>> beside of the name for the new package: I would prefer
    >>> to name it "AlphaStable".

    >> (see below)

    >>> At the moment David Scott is here at ETH (still to the
    >>> end of January) and we are working also together with
    >>> Yohan on several distribution function packages.

    >>> These include David's packages

    >>> Distribution Utils

    >>> GeneralizedHyperbolic (formerly HyperbolicDist) Variance
    >>> Gamma SkewHyperbolic NormalLaplace
	
    >> [cool!]

    >>> A (yet unpublished) package I have written

    >>> SecantHyperbolic

    >>> on the secant hyperbolic distribution.


    >>> And a new package with (Yohan, David and me) on the

    >>> GeneralizedLambda

    >>> distribution with special emphasis on financial return
    >>> distributions.

    >> out of curiosity: are the stable ones no longer of
    >> interest for financial returns ?

    >>> So a package with the name "AlphaStable" would nicely
    >>> fit in this concept of distribution packages and would
    >>> follow the naming convention of the other packages which
    >>> are already on CRAN or on r-forge/Rmetrics.

    >> I see.  Still, most modern litterature, AFAICS, does not
    >> mention "alpha" in the name anymore.

    >> After all, the (skew) stable distributions with Nolan's
    >> parametrizations are *the* stable distributions, and
    >> there are no "non-alpha" stable dist.s, so why should we
    >> need "alpha" as part of the name.

    >> Couldn't we settle on "StableDist" (so we have the >= 2
    >> camel bumps you have in the other names),

    >> [ or then I'd use an even shorter all lowercase (faster
    >> for typing, easier against typos !) name such as simply
    >> 'stable' ..... as I do like short package names ]

    > Haven't heard back from you.  In the mean time, after
    > thinking on and off about it, I'd really prefer 'stable'
    > -- short, simple, clear -- but could be convinced to use
    > 'StableDist' instead.

    > If I don't here anything soon, I'll take the short name.
    > Martin


    >>> Furthermore we have started to publish an R/Rmetrics
    >>> eBook entitled "Handbook on Financial Return
    >>> Distributions in R"

    >>> and so it would be great to have you in the boat for a
    >>> chapter on the new package about alpha stable
    >>> distributions.

    >> Ah .. thank you !

    >>> I will call you and we can discuss some details how to
    >>> proceed.  At the end of this process all the
    >>> distributional stuff will no longer be needed in the
    >>> fBasics package.

    >>> regards Diethelm

    >> {I'm not in the office any more today, } regards, Martin


    >>>> Dear Diethelm and Yohan,
    >>>> 
    >>>> as you may recall, we (Marius Hofert and I) have been
    >>>> making use of rstable() in our 'nacopula' package for
    >>>> more than a year now, but back then, we found small
    >>>> numerical and efficiency problems in fBasics version of
    >>>> rstable and as we did not need any other fBasics
    >>>> function, I wrote a new version called 'rstable1()' {so
    >>>> as to make no confusion}, and also on its help page
    >>>> clearly documented that the original code, and
    >>>> documentation, and d*, p*, q* functions are all in
    >>>> 'fBasics'.
    >>>> 
    >>>> Now, for a while, as we have been implementing new
    >>>> Maximum Likelihood methods for Archimdean copulas, we
    >>>> have made use of fBasics::dstable(), and for that have
    >>>> had an importFrom(fBasics, dstable) in our package.  I
    >>>> have always felt it a bit unconvenient that this loads
    >>>> all of fBasics, timeDate, and timeSeries just because
    >>>> of this one function.
    >>>> 
    >>>> Now, I've found a numerical problem with dstable() and
    >>>> also performance issues which I have partly adressend
    >>>> would like to address more.
    >>>> 
    >>>> For all these reasons, I'm proposing to factor out the
    >>>> [dpqr]stable() functions out of fBasics into a new
    >>>> package, say 'stableDist', and have fBasics "depend" on
    >>>> stableDist, such that for the users who call
    >>>> require(fBasics) or library(fBasics), nothing will
    >>>> change.
    >>>> 
    >>>> The big advantage of the change would be that all those
    >>>> users (like us) who really only need the stable
    >>>> distributions, they can simply load or import from
    >>>> 'stableDist' which will be very fast and very small.
    >>>> 
    >>>> Another advantage will be that the unit tests for
    >>>> *stable which are currently disabled in 'fBasics', can
    >>>> be run for 'stableDist' without adding test runtime to
    >>>> 'fBasics'.
    >>>> 
    >>>> My proposal is to factor out things as soon as you
    >>>> agree, and then address the issues I've found one by
    >>>> one, starting with dstable where I've already
    >>>> (uncommitted) improvements ready.  BTW: The
    >>>> stableSlider() of course would remain in 'fBasics'.
    >>>> 
    >>>> Best regards, Martin
    >>>> 
    >>>> _______________________________________________
    >>>> Rmetrics-core mailing list Rmetrics-core at r-project.org
    >>>> https://stat.ethz.ch/mailman/listinfo/rmetrics-core
    >>>>



More information about the Rmetrics-core mailing list