Dear all, 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. John
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. -- View this message in context: http://www.nabble.com/fitting-a-truncated-power-law-tp24798791p24804531.html Sent from the R help mailing list archive at Nabble.com.
Dear Glen_b, The function I'm trying to fit has the form: P(k) ~ k^(-y) exp (? k ? kx) And deals with count data. I'm a newbie, so any more specific suggestion would be greatly appreciated. john 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.