Thomas J. Steichen wrote:
As a first thought, eivreg seems a reasonable approach. However,
the Stata implementation with a single X variable is identical to
least-squares regression, a la regress, as it forces reliability
to be 1 with a single X.
An alternative is the reduced-major axis (RMA) equation provided by
program concord. Concord also provides some of the other mentioned
stats.
A second alternative is to solve for the TLS regression coefficients
by minimizing sum((y - (a + b*x))^2 / (1 + b^2)) over the data.
I'm not sure what is meant by "standard deviation of the regression"
but I suspect it is just rmse = sqrt(sum(y - yhat)^2/(n-2)), which
can be computed once you have the slope and intercept.
--------------------------------------------------------------------------------
I didn't think that -eivreg- forced the reliability to be one in any
circumstances, even with a single predictor. It defaults to one if you
don't specify otherwise, but even with one predictor, it allows you to
specify reliabilty less than one (but at least a smidgeon greater than the
coefficient of determination of the predictor regressed on the response).
I've seen the second alternative described as Deming Regression
(http://support.sas.com/techsup/faq/stat_key/a_j.html#errinvar). -amoeba-
could be used for this. You should even be able to us -nl- with iterative
re-weighting to get the pentultimate minimization of the expression.
The "standard deviation" I believe is the sigma_k+1 on Page 10 of
www-stat.wharton.upenn.edu/~bob/stat540/factor.pdf
You can find a Fortran 90 program of Van Huffel's total least squares
algorithm at http://users.bigpond.net.au/amiller/VanHuffel/total_ls.f90 but
writing from scratch should be more straightforward than translating the
Fortran into Mata.
Joseph Coveney
*
* For searches and help try:
* http://www.stata.com/support/faqs/res/findit.html
* http://www.stata.com/support/statalist/faq
* http://www.ats.ucla.edu/stat/stata/