[R] fitting a truncated power law

John Sanders sanders_john99 at yahoo.com
Tue Aug 4 14:24:22 CEST 2009

Dear Glen_b,

The function I'm trying to fit has the form:

~ k^(-y) exp (– k ⁄ kx) 

And deals with count data. I'm a newbie, so any more specific suggestion would be greatly appreciated.


John Sanders-2 wrote:
> How can I fit a truncated power law to a vector? I can't find a function
> to do that. If the function provides an AIC, even better.

Okay, "power law" I understand - f(x) = k.x^a, or on the log-scale log(f(x))
= log(k) + a log(x) (linear)

I was unfamiliar with the term "truncated power law", but after looking on
the internet I see that the term implies what appears to be replacing the
linear fit with a linear spline fit to log(y) in terms of log(x)  - but the
usual application seems to be to fit probability distribution to count data;
in this case you fit essentially a two-part Pareto distribution (or Zipf if
the variable is discrete) - again the log-fitted-density is like a linear
spline in the logs.

Is the vector of data you have counts to which you wish to fit a
distribution, or is it a set of measurements?

If I understand the problem correctly, I think it could probably be done
using linear splines with GLMs, which can be done in a couple of packages.

More information about the R-help mailing list