Skip to content

Log Riemann Zeta plus Zipf distribution #28

Description

@syclik

From @bob-carpenter on February 12, 2014 18:9

It'd be nice to have the Zipf distribution in Stan:

See: http://mathworld.wolfram.com/ZipfDistribution.html

The pmf is involves the Riemann zeta function, which is available from Boost:

http://www.boost.org/doc/libs/1_55_0/libs/math/doc/html/math_toolkit/zetas/zeta.html

so we could add it directly with auto-diff. But auto-diffing these numerical
approximations to functions isn't ideal.

Plus, we really need log_zeta for Stan, and then we'd want a direct scheme
for evaluating both

log(zeta(s)

and

  d/ds log(zeta(s)) = 1/zeta(s) d/ds zeta(s).

See also, this paper by Choudhury (1995), which is what the Mathworld page cites: https://www.jstor.org/stable/52768?seq=1#page_scan_tab_contents

Copied from original issue: stan-dev/stan#551

Activity

  1. modified the milestone: Future on Nov 15, 2016
  2. qdread commented on Feb 20, 2018

    @qdread

    I would also appreciate being able to evaluate the zeta function in Stan because I am trying to fit a piecewise distribution and it is needed to ensure smoothness at the breakpoint. Is there any way I can do this?

  3. bgoodri commented on Feb 20, 2018

    @bgoodri
    Contributor
  4. bob-carpenter commented on Feb 20, 2018

    @bob-carpenter
    Member

    Looks like someone conveniently worked out the form of the derivative:

    https://proofwiki.org/wiki/Derivative_of_Riemann_Zeta_Function

    If you try to just use the templated form from Boost, it'll autodiff their iterative definition of zeta rather than implementing the approximate autodiff. The latter's usually more stable, though we've gotten many workable results from the former.

  5. added
    distributionsIssues that deal with distribution functions: pdf, pmf, cdf
    on May 24, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions