Bookmark and Share

Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: st: robust estimation SUREG

From   Jorge Eduardo Pérez Pérez <>
To   "" <>
Subject   Re: st: robust estimation SUREG
Date   Sat, 28 May 2011 14:19:49 -0400

A geometric mean might be more appropiate, so the final weight is zero
if any of them is zero.

An alternative is to run the SUR manually, stacking the variables,
correcting for the error covariance and estimating with -reg- at the
end. In this case, you could do the last step with -rreg- instead of
-reg-. -rreg- does not allow a -nocons- option, so you would have to
modify its call to -reg-. See the code below.

-- Begin code ----

sysuse auto, clear
* Benchmark
sureg (price weight trunk) (length trunk)
est store sur
* Obtain errors
reg price weight trunk
predict e1, resid
reg length trunk
predict e2, resid
* Obtain covariance
cor e1 e2, cov
mat s = r(C)
mat i = I(_N)
mat v = s#i
* Stack dependent
gen zero=0
stack price weight trunk zero length zero zero trunk, into(y weight
trunk trunk2) clear
gen cons1 =(_stack==1)
gen cons2 =(_stack==2)
* Transform variables
mkmat weight trunk cons1 trunk2 cons2, matrix(X)
drop weight trunk cons1 trunk2 cons2
matrix Xa=(cholesky(inv(v))'*X)
svmat Xa, names(col)
mkmat y
drop y
matrix ya=(cholesky(inv(v))'*y)
svmat ya, names(col)
reg y weight trunk cons1 trunk2 cons2, hascons
* Which is same as SUR, se needs adjustment
est replay sur
* Now run robust instead, does not have nocons option. Would have to
modify the call to -reg- in rreg.ado
rreg y weight trunk cons1 trunk2 cons2

-- End code ----
Jorge Eduardo Pérez Pérez

On Sat, May 28, 2011 at 9:27 AM,
<> wrote:
> Thanks a lot for your answer!! I have also tried to perform a SUREG by introducing
> the three sets of weights generated by the rreg command but I realized that it was not
> possible. As you mention I would have to combine them somehow. However it is for me
> not clear how to combine them. An arithmetic average is definitely not appropriate. I was
> wondering if it would not be more appropriate to proceed as described hereafter. In a first step,
> on the basis of each robust regression performed, I determine outliers (i.e. observations under a
> certain threshold in terms of weight height). In a second step I exclude these outliers from the data set
> and  then perform the SUR regression. I am however not really satisfied with this solution.
> Pierrick Jan
> __________________________________________________________________________
> Date: Fri, 27 May 2011 12:47:38 -0400
> From: =?ISO-8859-1?Q?Jorge_Eduardo_P=E9rez_P=E9rez?= <>
> Subject: Re: st: robust estimation SUREG
> You could use the -genwt- option in -rreg- to generate the weights
> used in the robust regression, then use those weights in -sureg-. You
> will have three sets of weights from your first three regressions, and
> - -sureg- will only allow a set of weights, so you would have to combine
> them somehow.
> _______________________
> Jorge Eduardo Pérez Pérez
> *
> *   For searches and help try:
> *
> *
> *

*   For searches and help try:

© Copyright 1996–2017 StataCorp LLC   |   Terms of use   |   Privacy   |   Contact us   |   Site index