[R-pkgs] New version of actuar

Vincent Goulet vincent.goulet at act.ulaval.ca
Mon Apr 23 17:20:59 CEST 2007


actuar is a package for Actuarial Science. A rather preliminary
version (0.1-3) of the package has been available on CRAN since February 2006. 
We now announce the immediate availability of version 0.9-2 sporting a large 
number of new features. 

Non actuaries behold! There can be some features of interest for you, 
especially those related to new probability distribution and to the 
manipulation of grouped data.

Since I took the time to write a fairly detailed NEWS file, I'll let it speak 
for itself:

=== actuar: an R package for Actuarial Science ===

Version 0.9-2

Major official update. This version is not backward compatible with
the 0.1-x series. Feature of the package can be split in the following
categories: loss distributions modeling, risk theory, credibility


o Functions {d,p,q,r}foo to compute the density function, cumulative
  distribution function, quantile function of, and to generate
  variates from, all probability distributions of Appendix A of
  Klugman et al. (2004), "Loss Models, Second Edition" (except the
  inverse gaussian) not already in R. Namely, this adds the following
  distributions (the root is what follows the 'd', 'p', 'q' or 'r' in
  function names):
  Distribution name          	Root        
  ------------------------- 		--------------  
   Burr			    	 	burr		  
   Generalized beta	     		genbeta	  
   Generalized Pareto	    	genpareto	  
   Inverse Burr		     	invburr	  
   Inverse exponential	     	invexp	  
   Inverse Pareto	     		invpareto	  
   Inverse paralogistic	     	invparalogis	  
   Inverse Weibull	     		invweibull	  
   Loggamma		     		loggamma	  
   Loglogistic		     		llogis	  
   Paralogistic		    	 	paralogis	  
   Pareto		     			pareto	  
   Single parameter Pareto   	pareto1	  
   Transformed beta	     	trbeta	  
   Transformed gamma	     	trgamma	  

  All functions are coded in C for efficiency purposes and should
  behave exactly like the functions in base R. For all distributions
  that have a scale parameter, the corresponding functions have 'rate
  = 1' and 'scale = 1/rate' arguments.

o Functions {m,lev}foo to compute the k-th raw (non-central) moment
  and k-th limited moment for all the probability distributions
  mentioned above, plus the following ones of base R: beta,
  exponential, gamma, lognormal and Weibull.

o Facilities to store and manipulate grouped data (stored in an
  interval-frequency fashion). Function grouped.data() creates a
  grouped data object similar to a data frame. Methods of "[", "[<-",
  mean() and hist() created for objects of class "grouped.data".

o Function ogive() --- with appropriate methods of knots(),
  plot(), print() and summary() --- to compute the ogive of grouped
  data. Usage is in every respect similar to ecdf().

o Function elev() to compute the empirical limited expected value of a
  sample of individual or grouped data.

o Function emm() to compute the k-th empirical raw (non-central)
  moment of a sample of individual or grouped data.

o Function mde() to compute minimum distance estimators from a sample
  of individual or grouped data using one of three distance measures:
  Cramer-von Mises (CvM), chi-square, layer average severity
  (LAS). Usage is similar to fitdistr() of package 'MASS'.

o Function coverage() to obtain the pdf or cdf of the payment per
  payment or payment per loss random variable under any combination of
  the following coverage modifications: ordinary of franchise
  deductible, policy limit, coinsurance, inflation. The result is a
  function that can be used in fitting models to data subject to such
  coverage modifications.

o Individual dental claims data set 'dental' and grouped dental claims
  data set 'gdental' of Klugman et al. (2004), "Loss Models, Second


o Function aggregateDist() returns a function to compute the
  cumulative distribution function of the total amount of claims
  random variable for an insurance portfolio using any of the
  following five methods:

  1. exact calculation by convolutions (using function convolve() of
     package 'stats';
  2. recursive calculation using Panjer's algorithm;
  3. normal approximation;
  4. normal power approximation;
  5. simulation.

  The modular conception of aggregateDist() allows for easy inclusion
  of additional methods. There are special methods of print(),
  summary(), quantile() and mean() for objects of class
  "aggregateDist".  The objects otherwise inherit from classes "ecdf"
  (for methods 1, 2 and 3) and "function".

  See also the "Deprecated, defunct or no backward compatibility"
  section below.

o Function discretize() to discretize a continuous distribution using
  any of the following four methods:

  1. upper discretization, where the discretized cdf is always above
     the true cdf;
  2. lower discretization, where the discretized cdf is always under
     the true cdf;
  3. rounding, where the true cdf passes through the midpoints of the
     intervals of the discretized cdf;
  4. first moment matching of the discretized and true distributions.

  Usage is similar to curve() of package 'graphics'. Again, the
  modular conception allows for easy inclusion of additional
  discretization methods.


o Function simpf() can now simulate data for hierarchical portfolios
  of any number of levels. Model specification changed completely; see
  the "Deprecated, defunct or no backward compatibility" below. The
  function is also significantly (~10x) faster than the previous

o Generic function severity() defined mostly to provide a method for
  objects of class "simpf"; see below.

o Methods of aggregate(), frequency(), severity() and weights() to
  extract information from objects of class "simpf":

  1. aggregate() returns the matrix of aggregate claim amounts per
  2. frequency() returns the matrix of the number of claims per node;
  3. severity() returns the matrix of individual claim amounts per
  4. weights() returns the matrix of weights corresponding to the

  Summaries can be done in various ways; see ?simpf.summaries

o Function cm() (for "_c_redibility _m_odel") to compute structure
  parameters estimators for hierarchical credibility models, including
  the Bühlmann and Bühlmann-Straub models. Usage is similar to lm() of
  packages 'stats' in that the hierarchical structure is specified by
  means of a formula object and data is extracted from a matrix or
  data frame. There are special methods of print(), summary() for
  objects of class "cm". Credibility premiums are computed using a
  method of predict(); see below.

  For simple Bühlmann and Bühlmann-Straub models, bstraub() remains
  simpler to use and faster.

o Function bstraub() now returns an object of class "bstraub" for
  which there exist print and summary methods. The function no longer
  computes the credibility premiums; see the "Deprecated,
  defunct or no backward compatibility" below.

o Methods of predict() for objects of class "cm" and "bstraub" created
  to actually compute the credibility premiums of credibility
  models. Function predict.cm() can return the premiums for specific
  levels of a hierarchical portfolio only.


o Function unroll() to unlist a list with a "dim" attribute of length
  0, 1 or 2 (that is, a vector or matrix of vectors) according
  to a specific dimension. Currently identical to severity.default()
  by lack of a better usage of the default method of severity().

o Three new demos corresponding to the three main fields of actuarial
  science covered by the package.

o French translations of the error and warning messages.

o The package now has a name space.


o Function panjer(), although still present in the package, should no
  longer be used directly. Recursive calculation of the aggregate
  claim amount should be done with aggregateDist(). Further, the
  function is not backward compatible: model specification has
  changed, discretization of the claim amount distribution should now
  be done with discretize(), and the function now returns a function
  to compute the cdf instead of a simple vector of probabilities.

o Model specification for simpf() changed completely and is not
  backward compatible with previous versions of the package. The new
  scheme allows for much more general models.

o Function rearrangepf() is defunct and has been replaced by methods
  of aggregate(), frequency() and severity().

o Function bstraub() no longer computes the credibility premiums. One
  should now instead use predict() for this.

o The data set 'hachemeister' is no longer a list but rather a matrix
  with a state specification.

Version 0.1-3

Fixed the dependency on R >= 2.1.0 since the package uses function

Version 0.1-2

- First public release.
- Fixed an important bug in bstraub(): when calculating the range of
  the weights matrix, NAs were not excluded.
- Miscellaneous documentation corrections.

Version 0.1-1

- Initial release.
- Contains functions bstraub(), simpf(), rearrangepf() and panjer(),
  and the dataset hachemeister.

[There has been a very short lived version 0.9-1 on CRAN. Please ignore this 
version altogether.]

Collaboration is welcome. Please contact me directly.

  Vincent Goulet, Associate Professor
  École d'actuariat
  Université Laval, Québec 
  Vincent.Goulet at act.ulaval.ca   http://vgoulet.act.ulaval.ca

More information about the R-packages mailing list