regmixEM              package:mixtools              R Documentation

_E_M _A_l_g_o_r_i_t_h_m _f_o_r _M_i_x_t_u_r_e_s _o_f _R_e_g_r_e_s_s_i_o_n_s

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

     Returns EM algorithm output for mixtures of multiple regressions
     with arbitrarily many components.

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

     regmixEM(y, x, lambda = NULL, beta = NULL, sigma = NULL, k = 2,
              addintercept = TRUE, arbmean = TRUE, arbvar = TRUE, 
              epsilon = 1e-08, maxit = 10000, verb = FALSE)

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

       y: An n-vector of response values.

       x: An nxp matrix of predictors.  See 'addintercept' below.

  lambda: Initial value of mixing proportions.  Entries should sum to
          1.  This determines number of components.  If NULL, then
          'lambda' is random from uniform Dirichlet and number of
          components is determined by 'beta'.

    beta: Initial value of 'beta' parameters.  Should be a pxk matrix,
          where p is the number of columns of x and k is number of
          components. If NULL, then 'beta' has standard normal entries
          according to a binning method done on the data.  If both
          'lambda' and 'beta' are NULL, then number of components is
          determined by 'sigma'.

   sigma: A vector of standard deviations.  If NULL, then 1/'sigma'$^2$
          has random standard exponential entries according to a
          binning method done on the data. If 'lambda', 'beta', and
          'sigma' are NULL, then number of components is determined by
          'k'.

       k: Number of components.  Ignored unless all of 'lambda',
          'beta',  and 'sigma' are NULL.

addintercept: If TRUE, a column of ones is appended to the x matrix
          before the value of p is calculated.

 arbmean: If TRUE, each mixture component is assumed to have a
          different set of regression coefficients (i.e., the 'beta's).

  arbvar: If TRUE, each mixture component is assumed to have a
          different 'sigma'.

 epsilon: The convergence criterion.

   maxit: The maximum number of iterations.

    verb: If TRUE, then various updates are printed during each
          iteration of the algorithm.

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

     'regmixEM' returns a list of class 'mixEM' with items: 

       x: The set of predictors (which includes a column of 1's if
          'addintercept' = TRUE).

       y: The response values.

  lambda: The final mixing proportions.

    beta: The final regression coefficients.

   sigma: The final standard deviations. If 'arbmean' = FALSE, then
          only the smallest standard deviation is returned. See 'scale'
          below.

   scale: If 'arbmean' = FALSE, then the scale factor for the component
          standard deviations is returned. Otherwise, this is omitted
          from the output.

  loglik: The final log-likelihood.

posterior: An nxk matrix of posterior probabilities for observations.

all.loglik: A vector of each iteration's log-likelihood.

restarts: The number of times the algorithm restarted due to
          unacceptable choice of initial values.

      ft: A character vector giving the name of the function.

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

     Hurn, M., Justel, A. and Robert, C. P. (2003) Estimating Mixtures
     of Regressions, _Journal  of Computational and Graphical
     Statistics_ *12(1)*, 55-79.

     McLachlan, G. J. and Peel, D. (2000) _Finite Mixture Models_, John
     Wiley & Sons, Inc.

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

     'regcr', 'regmixMH'

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

     ## EM output for NOdata.
      
     data(NOdata)
     attach(NOdata)
     em.out<-regmixEM(Equivalence, NO, verb = TRUE, epsilon = 1e-04)
     em.out[3:6]

