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: _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)