trun                package:gamlss.tr                R Documentation

_F_i_t_s _a _T_r_u_n_c_a_t_e _D_i_s_t_r_i_b_u_t_i_o_n _f_r_o_m _a _g_a_m_l_s_s._f_a_m_i_l_y

_D_e_s_c_r_i_p_t_i_o_n:

     This function can be used to fit truncated distributions. It takes
     as an argument an existing GAMLSS family distribution and  a
     parameter vector,  of the type c(left.value, right.value), and 
     generates a 'gamlss.family' object which then can be used to fit 
     a truncated distribution.

_U_s_a_g_e:

     trun(par = c(0), family = "NO",  type = c("left", "right", "both"), name = "tr", 
             local = TRUE, delta=NULL, ...)

_A_r_g_u_m_e_n_t_s:

     par: a scalar for left and right truncation or a vector of the
          type c(left.value, right.value) for interval truncation

  family: an existing 'gamlss.family' distribution

    type: what type of truncation is required, 'left', 'right' or
          'both'. If 'both' the 'par' should be a vector of length two.
          (the default is left truncation)

    name: a character string to be added to name of the created object
          i.e. with 'family=TF' and 'name=trZero' the 'gamlss.family'
          object will be called 'TFtrZero'

   local: if TRUE the function will try to find the environment of
          'gamlss' to generate the 'd' and 'p' functions required for
          the fitting, if FALSE the functions will be generated in the
          global environment

   delta: the delta increment used in the numerical derivatives

     ...: for extra arguments 

_D_e_t_a_i_l_s:

     This function is created to help the user to fit a truncated form
     of existing 'gamlss' distribution. It does this by taking an
     existing 'gamlss.family' and changing some of the components of
     the distribution to help the fitting process.  It particular it i)
     creates a pdf ('d') and a cdf ('p') function within 'gamlss',  ii)
     changes  the global deviance function 'G.dev.incr', the first
     derivative functions (see note below) and the quantile residual
     function.

_V_a_l_u_e:

     It returns a 'gamlss.family' object which has all the components
     needed for fitting a distribution in 'gamlss'.

_N_o_t_e:

     This function is experimental and could be changed. The function
     'trun'  changes  the first derivatives of the original gamlss
     family 'd' function to numerical derivatives  for the new
     truncated 'd' function. The default increment 'delta', for this
     numerical derivatives function, is 'eps * pmax(abs(x), 1)' where 
     'eps<-sqrt(.Machine$double.eps)'.  The default 'delta' could be
     inappropriate  for specific applications and can be overwritten by
     using the argument 'delta'.

_A_u_t_h_o_r(_s):

     Mikis Stasinopoulos d.stasinopoulos@londonmet.ac.uk and Bob Rigby
     r.rigby@londonmet.ac.uk

_R_e_f_e_r_e_n_c_e_s:

     Rigby, R. A. and  Stasinopoulos D. M. (2005). Generalized additive
     models for location, scale and shape,(with discussion),  _Appl.
     Statist._, *54*, part 3, pp 507-554.

     Stasinopoulos D. M., Rigby R.A. and Akantziliotou C. (2003)
     Instructions on how to use the GAMLSS package in R. Accompanying
     documentation in the current GAMLSS  help files, (see also  <URL:
     http://www.gamlss.com/>).

_S_e_e _A_l_s_o:

     'trun.d', 'trun.p', 'trun.q', 'trun.r',  'gen.trun'

_E_x_a_m_p_l_e_s:

     # generate a left truncated zero t family
     gen.trun(0,family="TF")
     # take a random sample of 1000 observations
     sam<-rTFtr(1000,mu=10,sigma=5, nu=5 )
     hist(sam)
     # fit the distribution to the data
     mod1<-gamlss(sam~1, family=trun(0,TF))
     mod1
     # now create a gamlss.family object before the fitting 
     Ttruc.Zero<- trun(par=0,family=TF, local=FALSE)
     mod2<-gamlss(sam~1, family=Ttruc.Zero)
     # now check the sensitivity of delta 
     Ttruc.Zero<- trun(par=0,family=TF, local=FALSE, delta=c(0.01,0.01, 0.01))
     mod3<-gamlss(sam~1, family=Ttruc.Zero)

