.-
help for ^switchr^                                      [Beta version]
       
.-

switchr -------

^switchr^ eq1 eq2 [weight] [^if^ exp] [^, cl^uster^(^string^) strata(^string^)^ ^sige^qual ^tol(^real^)^ ^itout(^integer^)^ ^noisyn(^integer^)^ ]

The user must define eq1, which will be the two component regressions. eq2 is the classification regression. It must be defined by the user so that its dependent variable is a variable containing an initial guess of the partition of the observations into the two components. This initial guess variable will be overwritten by ^switchr^ to contain the probabilities that a given observation adheres to the first component regression.

Description -----------

^Switchr^ calculates switching regression estimates for a two-component model in which observations are drawn from two different regression regimes (or components), but separation into the separate regimes is unobserved. Such a situation is also called a mixture model.

Options -------

^cluster^ and ^strata^ invoke the _robust variance calculations, by using @svyreg@.

^sige^qual forces the variance of the two component regressions to be the same.

^tol^ specifies a threshold such that, when the largest relative change among the coefficients from one iteration to the next is less than ^tol^(), estimates are declared to have converged. The default is ^tol(^1e-4^)^ > .

^itout()^ and ^noisyn()^ control reporting of progress on the iterations and of intermediate output. ^itout(^#^)^ specifies that every # iterations, the convergence criterion, the mean and mean change of the classification vector, and the time taken for that iteration be reported. The default is ^itout(^20^)^. ^noisyn(^#^)^ specifies that every # iterations, the regression results on the two component regressions be reported. In addition, results for a modified version of the classification vector are reported. These classifications results are accurate up to a constant (across coefficients) scaling parameter. The default is ^noisyn(^16000^)^.

Remarks -------

Consider the following system, in which observed values of the dependent variable come from one of two regression regimes, but where it is unknown a priori which regime produced any given observation: y(1) = x b(1) + u(1) u(1) ~ N(0,sigma(1)-squared) y(2) = x b(2) + u(2) u(2) ~ N(0,sigma(2)-squared) y(3) = x b(3) + u(3) u(3) ~ N(0,sigma(3)-squared) and y = y(1) if y(3) < 0 and y = y(2) if y(3) >= 0 The outcome y is observed; y(1), y(2), and y(3) are latent.

^Switchr^ produces estimates of b(1), b(2) and b(3), and of sigma(1) and sigma(2), which may be equal or different. Sigma(3) is unidentified, and assumed to be 1.

Exact standard errors in a switching regression are not available. This addition provides good approximate standard errors. The program can be used iteratively to obtain bootstrapped standard errors.

To obtain these estimates, ^switchr^ maximizes the likelihood function through the EM algorithm of Dempster, Laird and Rubin (1977), as further articulated by Hartley (1978). This iterative method first estimates the classification vector, i.e., the probability that a given observation is in the first component regression. This estimate is obtained by (in part) reweighting the probabilities based on the errors of the observations in the two component regressions. The updated probabilities are then used to weight observations in each of the two separate component regressions. This iterative procedure eventually converges to the maximum likelihood estimates of the above three-equation regression model.

Because the likelihood surface is not globally concave, several local maxima are possible. ^Switchr^ can be used iteratively to find the local maximum with the highest likelihood value, by searching from different starting values of the classification vector. If sigma(1) and sigma(2) are allowed to differ (the default), problems can arise in which one variance is driven to zero, with a very small number of observations sorted into the corresponding component regime. One solution to this problem is to use the ^sige^qual option to force the two variances to be the same.

The program uses a linear version of the probability regression of the classification regression. Therefore, intermediate results are valid only up to a scale parameter. In a final step, once the regression results have converged, the classification regression is re-run using a (slower) maximum likelihood modified logit regression.

Users should be aware of several caveats in using this method. First, switching regressions of this sort are valid only when errors are independent, and identically distributed. The independence of errors across equations can be a strong assumption. Second, standard errors are not exact, and will in general be biased downward. Finally, convergence is not monotonic in the convergence criterion measure (relative change in the coefficient estimates). Therefore, it is prudent to be conservative in the convergence criterion.

This program uses @elapse@ to help with the timing of the iterations.

The full complement of programs needed for ^switchr^ is: switchr.ado, switchr.hlp, elapse.ado, elapse.hlp, and classif.ado.

Examples -------- ^use c:/statadata/sadata^ ^gen double Guesprob = 0^ ^quietly summarize lnpce^ ^replace Guesprob = 1 if lnpce > _result(10)^ ^delimit ;^ ^eq main : hazscore docdist nursdist phardist father mother gender ^ ^lnpce crop_siz urban rural ;^ ^eq regime : Guesprob lnpce members maxfe1 maxfe2 highfe^ ^urban rural KZN Ecape NorP reticul elect ; ^

^switchr main regime [pweight=rsweight] , cl(clustnum) noisyn(200) sige ;^

References ----------

Dempster, Laird and Rubin (1977) "Maximum likelihood from incomplete data via the EM algorithm, Jornal of the Royal Statistical Society, Ser. B. 39 1-38.

Michael J. Hartley (1978) "Comment" Journal of the American Statistical Association, v. 73 (December): 738-741.

Saved Results -------------

S_E_ll is the log-likelihood of the full problem.

Author ------

Frederic Zimmerman Food Research Institute Stanford University zimmer@@leland.stanford.edu