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

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

From |
Jorge Eduardo Pérez Pérez <[email protected]> |

To |
"[email protected]" <[email protected]> |

Subject |
Re: Re: st: robust estimation SUREG |

Date |
Mon, 30 May 2011 23:03:50 -0400 |

Not really, it was only an idea. You might find this reference useful though: Robust Estimation of the SUR Model Martin Bilodeau and Pierre Duchesne The Canadian Journal of Statistics / La Revue Canadienne de Statistique Vol. 28, No. 2 (Jun., 2000), pp. 277-288 http://www.jstor.org/pss/3315978 _______________________ Jorge Eduardo Pérez Pérez On Mon, May 30, 2011 at 3:14 PM, [email protected] <[email protected]> wrote: > Dear M. Pérez, > > As I have compared a manually computed SUR with > a SUR performed using the geometric average of the weights > generated when estimating independently each equation > using robust regression, I have been looking for literature > using (or advocating for the use) of a geometric average of the weights. > However I could not find any literature related to this issue. > Would you have any references? > > Thanks in advance for your answer! > > Best regards from Switzerland! > > ------------------------------ > > Date: Sun, 29 May 2011 18:41:18 -0400 > From: =?ISO-8859-1?Q?Jorge_Eduardo_P=E9rez_P=E9rez?= <[email protected]> > Subject: Re: Re: st: robust estimation SUREG, > > Very clever solution. It is not clear for me how to adjust the > standard errors in the final step though. Maybe someone else in the > list has ideas. > > _______________________ > Jorge Eduardo Pérez Pérez > > > On Sun, May 29, 2011 at 2:14 PM, [email protected] > <[email protected]> wrote: >> Dear M. Pérez, >> >> Thanks a lot for your prompt reply and your very helpful suggestions and the corresponding stata code! >> As you mentioned the rreg does not have any "hascons" option, which is critical as the constant >> of the first model is dropped (due to perfect multicollinearity). To circumvent this problem, I first of all >> performed a robust regression for each equation taken independently. >> Then I generated the weights in a matrix and used these weights in the final step. >> The adapted program is shown below (the parts I added are marked with an @ at the end). >> >> Regards, >> >> Pierrick Jan >> >> - -- Begin code ---- >> >> sysuse auto, clear >> * Robust regression and weights generation @ >> rreg price weight trunk, genwt (w1) @ >> rreg length trunk, genwt (w2) @ >> * 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 >> * Generating a weights vector*@ >> mkmat w1, matrix (W1) @ >> mkmat w2, matrix (W2) @ >> matrix W = W1\W2 @ >> * 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) >> * Introducing the weights of the robust regressions in the dataset @ >> svmat W, names(wrreg) @ >> 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 >> * Alternative: perform a regression using the reg command and introduce the weights of the initial robust regressions @ >> reg y weight trunk cons1 trunk2 cons2 [aweight = wrreg], hascons @ >> >> - -- End code ---- >> _______________________ >> >> ----------------------------- >> >> Date: Sat, 28 May 2011 14:19:49 -0400 >> From: =?ISO-8859-1?Q?Jorge_Eduardo_P=E9rez_P=E9rez?= <[email protected]> >> Subject: Re: st: robust estimation SUREG >> >> 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, [email protected] >> <[email protected]> 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?= <[email protected]> >>> 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: >> * http://www.stata.com/help.cgi?search >> * http://www.stata.com/support/statalist/faq >> * http://www.ats.ucla.edu/stat/stata/ >> > > * > * For searches and help try: > * http://www.stata.com/help.cgi?search > * http://www.stata.com/support/statalist/faq > * http://www.ats.ucla.edu/stat/stata/ > > > * > * For searches and help try: > * http://www.stata.com/help.cgi?search > * http://www.stata.com/support/statalist/faq > * http://www.ats.ucla.edu/stat/stata/ > * * For searches and help try: * http://www.stata.com/help.cgi?search * http://www.stata.com/support/statalist/faq * http://www.ats.ucla.edu/stat/stata/

**References**:

- Prev by Date:
**st: Re: Something similar to translate for smcl to cmdlog?** - Next by Date:
**st:glm with bin family and link probit VS. probit** - Previous by thread:
**Re: Re: st: robust estimation SUREG** - Next by thread:
**st: mhbounds vs rbounds** - Index(es):