st: RE: AW: modl and modltbl after svy: regress

 From "Nick Cox" <[email protected]> To <[email protected]> Subject st: RE: AW: modl and modltbl after svy: regress Date Wed, 27 Jan 2010 14:01:36 -0000

```That's my reading too. But how did Martin find this out?

The message for others is to look at the code to see where the message
is being issued. To do this you do _not_ need to be a Stata programmer
yourself (although any and all experience can help you find a solution
faster).

Another message is that it does help people to understand your question
if you specify where user-written software you are referring to comes
from. This practice should be standard, as the FAQ requests it, but
recently it has become rare. Not only does it help people who answer
posts work out what the problem is, it also increases your chance of

Nick
[email protected]

Martin Weiss

BTW, the technical reason for the refusal to provide output seems to be
that
-regress- does leave behind the -global- "S_E_cmd" while with the -svy-
option it does not. -modl- depends on this value being there...

*************
webuse highschool, clear
generate male = sex == 1 if !missing(sex)
regress weight height
di "\$S_E_cmd"
svy, subpop(male): regress weight height
di "\$S_E_cmd"
*************

Helen Connolly

I would like to use the modl and modltbl commands after svy: regress.  I

do the following:

svy, subpop(\$subpop): regress \$wage
modl 1

The response is:
. modl 1
modl must immediately follow an estimation procedure.
r(301);

However, if I look at last estimates, I get:

. ereturn list

scalars:
e(r2) =  0
e(stages) =  1
e(N_sub) =  377278
e(N_subpop) =  4.579482189141677
e(N) =  683840
e(N_pop) =  7.878162752876319
e(N_strata) =  28
e(N_psu) =  402352
e(df_r) =  402324
e(N_strata_omit) =  0
e(singleton) =  0
e(census) =  0
e(k_eq) =  1
e(df_m) =  0
e(rank) =  1

macros:
e(cmd) : "regress"
e(cmdline) : "svy , subpop(employee): regress lnnetmwdp"
e(prefix) : "svy"
e(cmdname) : "regress"
e(command) : "regress lnnetmwdp"
e(estat_cmd) : "svy_estat"
e(vce) : "linearized"
e(vcetype) : "Linearized"
e(title) : "Survey: Linear regression"
e(subpop) : "employee"
e(wexp) : "= nw1"
e(wtype) : "pweight"
e(wvar) : "nw1"
e(singleunit) : "missing"
e(su1) : "casenum"
e(strata1) : "cid"
e(properties) : "b V"
e(marginsok) : "XB default"
e(depvar) : "lnnetmwdp"
e(predict) : "regres_p"
e(model) : "ols"

matrices:
e(b) :  1 x 1
e(V) :  1 x 1
e(V_modelbased) :  1 x 1
e(V_srs) :  1 x 1
e(_N_strata_certain) :  1 x 1
e(_N_strata_single) :  1 x 1
e(_N_strata) :  1 x 1

functions:
e(sample)

and:
. mat list e(b)

symmetric e(b)[1,1]
_cons
y1  .839104

So the last estimates do exist.

When I rerun the same command using just regress (regress \$wage [w=nw1]
if \$subpop), the "modl 1" command works.

Can anyone tell me why modl is not recognizing the last estimates for
svy: regress and/or how to fix this?

*
*   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/
```