notExp2                 package:mgcv                 R Documentation

_A_l_t_e_r_n_a_t_i_v_e _t_o _l_o_g _p_a_r_a_m_e_t_e_r_i_z_a_t_i_o_n _f_o_r _v_a_r_i_a_n_c_e _c_o_m_p_o_n_e_n_t_s

_D_e_s_c_r_i_p_t_i_o_n:

     'notLog2' and 'notExp2' are alternatives to 'log' and 'exp' or
     'notLog' and 'notExp' for re-parameterization of variance
     parameters. They are used by the 'pdTens' and 'pdIdnot' classes
     which in turn implement smooths for 'gamm'.

     The functions are typically used to ensure that smoothing
     parameters are positive, but the 'notExp2' is not monotonic:
     rather it cycles between `effective zero' and `effective infinity'
     as its argument changes. The 'notLog2' is the inverse function of
     the 'notExp2' only over an interval centered on zero.

     Parameterizations using these functions ensure that estimated
     smoothing parameters remain positive, but also help to ensure that
     the likelihood is never indefinite: once a working parameter
     pushes a smoothing parameter below `effetive zero' or above
     `effective infinity' the cyclic nature of the 'notExp2' causes the
     likelihood to decrease, where otherwise it might simply have
     flattened. 

     This parameterization is really just a numerical trick, in order
     to get 'lme' to fit 'gamm' models, without failing due to
     indefiniteness.  Note in particular that asymptotic results on the
     likelihood/REML criterion are  not invalidated by the trick,
     unless parameter estimates end up close to the effective zero or
     effective infinity: but if this is the case then the asymptotics
     would also have been invalid for a conventional monotonic
     parameterization.

     This reparameterization was made necessary by some modifications
     to the underlying optimization method in  'lme' introduced in nlme
     3.1-62. It is possible that future releases will return to the
     'notExp' parameterization.

     Note that you can reset `effective zero' and `effective infinity':
     see below.

_U_s_a_g_e:

     notExp2(x,d=.Options$mgcv.vc.logrange,b=1/d)

     notLog2(x,d=.Options$mgcv.vc.logrange,b=1/d)

_A_r_g_u_m_e_n_t_s:

       x: Argument array of real numbers ('notExp') or positive real
          numbers ('notLog').

       d: the range of 'notExp2' runs from 'exp(-d)' to 'exp(d)'. To
          change the range used by 'gamm' reset 'mgcv.vc.logrange'
          using 'options'.

       b: determines the period of the cycle of 'notExp2'.

_V_a_l_u_e:

     An array of function values evaluated at the supplied argument
     values.

_A_u_t_h_o_r(_s):

     Simon N. Wood simon.wood@r-project.org

_R_e_f_e_r_e_n_c_e_s:

     <URL: http://www.maths.bath.ac.uk/~sw283/>

_S_e_e _A_l_s_o:

     'pdTens', 'pdIdnot',  'gamm'

_E_x_a_m_p_l_e_s:

     ## Illustrate the notExp2 function:
     x <- seq(-50,50,length=1000)
     op <- par(mfrow=c(2,2))
     plot(x,notExp2(x),type="l")
     lines(x,exp(x),col=2)
     plot(x,log(notExp2(x)),type="l")
     lines(x,log(exp(x)),col=2) # redundancy intended
     x <- x/4
     plot(x,notExp2(x),type="l")
     lines(x,exp(x),col=2)
     plot(x,log(notExp2(x)),type="l")
     lines(x,log(exp(x)),col=2) # redundancy intended
     par(op)

