amlexponential             package:VGAM             R Documentation

_E_x_p_o_n_e_n_t_i_a_l _R_e_g_r_e_s_s_i_o_n _b_y _A_s_y_m_m_e_t_r_i_c _M_a_x_i_m_u_m _L_i_k_e_l_i_h_o_o_d _E_s_t_i_m_a_t_i_o_n

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

     Exponential expectile regression estimated by maximizing an
     asymmetric likelihood function.

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

     amlexponential(w.aml=1, parallel=FALSE, method.init=1, digw=4,
                    link="loge", earg=list())

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

     In this documentation the word _quantile_ can often be
     interchangeably replaced by _expectile_ (things are informal
     here).

   w.aml: Numeric, a vector of positive constants controlling the
          expectiles. The larger the value the larger the fitted
          expectile value (the proportion of points below the
          ``w-regression plane''). The default value of unity results
          in the ordinary maximum likelihood (MLE) solution.

parallel: If 'w.aml' has more than one value then this argument allows
          the quantile curves to differ by the same amount as a
          function of the covariates. Setting this to be 'TRUE' should
          force the quantile curves to not cross (although they may not
          cross anyway). See 'CommonVGAMffArguments' for more
          information.

method.init: Integer, either 1 or 2 or 3. Initialization method. Choose
          another value if convergence fails.

   digw : Passed into 'Round' as the 'digits' argument for the 'w.aml'
          values; used cosmetically for labelling.

link, earg: See 'exponential' and the warning below.

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

     The general methodology behind this 'VGAM' family function is
     given in Efron (1992) and full details can be obtained there. This
     model is essentially an exponential regression model (see
     'exponential') but the usual deviance is replaced by an asymmetric
     squared error loss function; it is multiplied by w.aml for
     positive residuals. The solution is the set of regression
     coefficients that minimize the sum of these deviance-type values
     over the data set, weighted by the 'weights' argument (so that it
     can contain frequencies). Newton-Raphson estimation is used here.

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

     An object of class '"vglmff"' (see 'vglmff-class'). The object is
     used by modelling functions such as 'vglm' and 'vgam'.

_W_a_r_n_i_n_g:

     Note that the 'link' argument of 'exponential' and
     'amlexponential' are currently different: one is the rate
     parameter and the other is the mean (expectile) parameter.

     If 'w.aml' has more than one value then the value returned by
     'deviance' is the sum of all the (weighted) deviances taken over
     all the 'w.aml' values. See Equation (1.6) of Efron (1992).

_N_o_t_e:

     On fitting, the 'extra' slot has list components '"w.aml"' and
     '"percentile"'. The latter is the percent of observations below
     the ``w-regression plane'', which is the fitted values. Also, the
     individual deviance values corresponding to each element of the
     argument 'w.aml' is stored in the 'extra' slot.

     For 'amlexponential' objects, methods functions for the generic
     functions 'qtplot' and 'cdf' have not been written yet.

     See 'amlpoisson' about comments on the jargon, e.g., _expectiles_
     etc.

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

     Thomas W. Yee

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

     Efron, B. (1992) Poisson overdispersion estimates based on the
     method of asymmetric maximum likelihood. _Journal of the American
     Statistical Association_, *87*, 98-107.

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

     'exponential', 'amlbinomial', 'amlpoisson', 'amlnormal',
     'alaplace1'.

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

     n = 2000
     mydat = data.frame(x = seq(0, 1, length=n))
     mydat = transform(mydat, mu = loge(-0+1.5*x+0.2*x^2, inverse=TRUE))
     mydat = transform(mydat, mu = loge(0-sin(8*x), inverse=TRUE))
     mydat = transform(mydat, y = rexp(n, rate=1/mu))
     (fit  = vgam(y ~ s(x,df=5), amlexponential(w=c(0.001,0.1,0.5,5,60)),
                  data=mydat, trace=TRUE))
     fit@extra

     ## Not run: 
     # These plots are against the sqrt scale (to increase clarity)
     par(mfrow=c(1,2))
     # Quantile plot
     with(mydat, plot(x, sqrt(y), col="blue", las=1, main=
          paste(paste(round(fit@extra$percentile, dig=1), collapse=", "),
                "percentile-expectile curves")))
     with(mydat, matlines(x, sqrt(fitted(fit)), lwd=2, col="blue", lty=1))

     # Compare the fitted expectiles with the quantiles
     with(mydat, plot(x, sqrt(y), col="blue", las=1, main=
          paste(paste(round(fit@extra$percentile, dig=1), collapse=", "),
                "percentile curves are red")))
     with(mydat, matlines(x, sqrt(fitted(fit)), lwd=2, col="blue", lty=1))

     for(ii in fit@extra$percentile)
         with(mydat, matlines(x, sqrt(qexp(p=ii/100, rate=1/mu)), col="red"))
     ## End(Not run)

