The question is all in the title. The only background I can add, is that I am finding a powerlaw to interpolate beautifully between my data points. Only that my data appears in integers only, so I would better use the discrete equivalent of the powerlaw distribution - that is to say, a probability density function equal to $ax^{-b}$ with $a$ and $b$ positive, and $x > 1$ - to use it for a Monte Carlo simulation. From a quick googling it seems like a Zeta distribution might be what I need, but I am unsure.

  • 1
    $\begingroup$ Can you make it more precise what do you mean by powerlaw distribution? $\endgroup$
    – Tim
    Commented Jan 4, 2017 at 10:45
  • $\begingroup$ Thanks Tim - just edited the question. Do not know yet how to use Latex in CrossValidated though $\endgroup$
    – famargar
    Commented Jan 4, 2017 at 10:49
  • 2
    $\begingroup$ You haven't defined the domain of $x$ though, nor what $ax^{-b}$ represents (the pmf? the survivor function? something else?) so your definition is incomplete (and different authors use different definitions!). On using the subset of LaTeX implemented in MathJax, see here. $\endgroup$
    – Glen_b
    Commented Jan 4, 2017 at 11:27
  • $\begingroup$ Thanks Glen, hope my last edit contains all relevant infos. $\endgroup$
    – famargar
    Commented Jan 4, 2017 at 11:54

1 Answer 1


If you want a discrete distribution where $P(X=x)\propto x^{-\alpha}$ for $x=1,2,3,...$ then you would have a zeta distribution.

If you want a discrete distribution where $P(X=x)\propto x^{-\alpha}$ for $x=1,2,3,...,N$ then you would have a truncated zeta distribution, also known as Zipf's law.

On the other hand, if (as at least some authors do) you define a power law up to a slowly varying function, $L(x)$ -- i.e. where say

$P(X=x) = L(x)\cdot x^{-\alpha}\,,\quad x=1,2,3,...$


$P(X\gt x) = L(x)\cdot x^{-\alpha}\,,\quad x=1,2,3,...$

then neither of these is a zeta unless $L$ is the identity. Indeed, this definition encompasses an infinity of distributions

  • $\begingroup$ Is there a typo here? The two scalings you put forth are the same. $\endgroup$ Commented Oct 3, 2019 at 19:11
  • $\begingroup$ That's not a scaling (well, it will implictly include a scaling constant - different in both cases - but it's some "slowly varying function" as specified immediately above those two lines). I've made a small edit. $\endgroup$
    – Glen_b
    Commented Oct 3, 2019 at 23:15
  • 1
    $\begingroup$ scipy.stats.zipf appears to implement the zeta distribution while scipy.stats.zipfian implements the Zipf distribution. Confusing terminology, to say the least. $\endgroup$
    – Galen
    Commented Oct 7, 2022 at 4:13

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.