[R] "actuar" package query.

David Winsemius dwinsemius at comcast.net
Thu Jun 27 19:46:41 CEST 2013


On Jun 27, 2013, at 4:14 AM, Charles Thuo wrote:

> I run the following in the "actuar" package  while trying to discretize the
> lognormal distribution  which i had fitted using the "fitdistrplus" package.
> 
> fx <- discretize(plnorm(11.69,2.1),from = 0, to = 22, step = 0.5, method =
> "upper")
> Error in discretize(plnorm(11.69, 2.1), from = 0, to = 22, step = 0.5,  :
>  'cdf' must be a function or an expression containing 'x'
> 
> Because of this error am unable to fit a compound distribution between the
> negative binomial and lognormal.  Is there another way besides using
> "actuar".

The error is being thrown because you are not calling discretize with a function as its first argument. You are giving it a single value. 
 Try:

fx <- discretize( plnorm( x , 2.1), from = 0, to = 22, step = 0.5, method ="upper")

You could also continue to emulate the first example on help(discretize)

library(actuar)
x <- seq(0, 22, 0.5)
fu <- discretize(plnorm(x, 2.1), from = 0, to = 22, step = 0.5, method ="upper")
fl <- discretize(plnorm(x, 2.1), from = 0, to = 22, step = 0.5, method ="lower")
curve(plnorm(x, 2.1), xlim = c(0, 22))
par(col = "blue")
plot(stepfun(head(x, -1), diffinv(fu)), pch = 19, add = TRUE)
par(col = "green")
plot(stepfun(x, diffinv(fl)), pch = 19, add = TRUE)
par(col = "black")

> I have just started using actuar. Kindly assist.

Nothing to do with 'actuar' per se. The same error would ahveoccured with any R function that expects a function as its first argument.

-- 

David Winsemius
Alameda, CA, USA



More information about the R-help mailing list