Dear All,
I am attempting to describe a distribution of height data. It appears roughly linear on a log-log plot, so Pareto seems sensible. However, the data are only reliable in a limited range (e.g. 2000 to 4800 m). So, I would like to fit a Pareto distribution to the reliable (i.e. truncated) section of the data. I found truncpareto(), and implemented one of its example uses successfully. Specifically, the third one at http://www.inside-r.org/packages/cran/vgam/docs/paretoff (also see p.s.). When I try to run my data, I get the output below. Inputs shown with chevrons. > pdataH <- data.frame(H_to_fit$Height) > summary(pdataH) H_to_fit.Height Min. :2000 1st Qu.:2281 Median :2666 Mean :2825 3rd Qu.:3212 Max. :4794 > fit3 <- vglm(y ~ 1, truncpareto(2000, 4794), data = pdataH, trace = TRUE) Error in eval(expr, envir, enclos) : the value of argument 'lower' is too high (requires '0 < lower < min(y)') This is odd as the usage format is - truncpareto(lower, upper), and varying 2000 to 1900 and 2100 makes no difference. Neither do smaller or larger variations. From the summary I think that my lowest input is 2000, which I am taking as min(y). I have also played with the upper limit. pdataH has 2117 observations in it. Is this a data format thing? i.e. of pdataH (a tried a few things, but to no avail) Is truncpareto sensitive to not converging? Am I using completely the wrong command? Thank you in advance for any assistance you can give. John <http://www.inside-r.org/packages/cran/vgam/docs/paretoff><http://www.inside-r.org/packages/cran/vgam/docs/paretoff>p.s - Example that I did get to run. # Upper truncated Pareto distribution lower <- 2; upper <- 8; kay <- exp<http://inside-r.org/r-doc/base/exp>(2) pdata3 <- data.frame<http://inside-r.org/r-doc/base/data.frame>(y = rtruncpareto(n = 100, lower = lower, upper = upper, shape = kay)) fit3 <- vglm(y ~ 1, truncpareto(lower, upper), data<http://inside-r.org/r-doc/utils/data> = pdata3, trace<http://inside-r.org/r-doc/base/trace> = TRUE) coef<http://inside-r.org/r-doc/stats/coef>(fit3, matrix<http://inside-r.org/r-doc/base/matrix> = TRUE) c<http://inside-r.org/r-doc/base/c>(fit3@misc$lower, fit3@misc$upper) and output > # Upper truncated Pareto distribution > lower <- 2; upper <- 8; kay <- exp(2) > pdata3 <- data.frame(y = rtruncpareto(n = 100, lower = lower, + upper = upper, shape = kay)) > fit3 <- vglm(y ~ 1, truncpareto(lower, upper), data = pdata3, trace = TRUE) VGLM linear loop 1 : loglikelihood = 12.127363 VGLM linear loop 2 : loglikelihood = 12.130407 VGLM linear loop 3 : loglikelihood = 12.130407 > coef(fit3, matrix = TRUE) loge(shape) (Intercept) 1.955295 > c(fit3@misc$lower, fit3@misc$upper) [1] 2 8 ------------------------- Dr John Hillier Senior Lecturer - Physical Geography Loughborough University 01509 223727 [[alternative HTML version deleted]] ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.