The answer to Rune's question is "No". -prvalue- will not give the
proper CI's with survey data.
-adjust- is not the answer. For one, Rune wants to specify the entire
prediction equation, something that -adjust- doesn't do. Also,
neither -prvalue- nor -adjust- will hold the other predictors at
their -svy- weighted means. (See:
http://www.stata.com/statalist/archive/2008-09/msg00667.html for code
that makes -adjust- do it for -svy: logit-.)
The solution is to use -predictnl- after -svy: mlogit- .
-Steve
On Fri, Oct 9, 2009 at 5:23 PM, Michael I. Lichter <[email protected]> wrote:
> Rune,
>
> Here's one additional idea. Use -adjust-. I believe that the standard error
> of a predicted Y-hat is slightly different from the standard error of an
> adjusted Y-bar, but perhaps the latter will be good enough for you. Note
> that you will have to tell -adjust- to restrict its calculations to the
> estimation sample if that's what you want; -prvalue- does this
> automatically. You should get identical point estimates from both, but wider
> confidence intervals from -adjust-.
>
> The following program shows that -adjust- and -prvalue- generate the same
> point estimates, and that they generate *nearly* the same CIs for the
> non-survey regression, but the confidence intervals using -adjust- for the
> survey regression are clearly wider, as you would expect.
>
> -----
> clear all
> sysuse auto
> set seed 20091009
> bysort foreign: gen psu = runiform() >= .5
> svyset psu [pw=mpg], strata(foreign)
> reg price weight
> prvalue, x(weight=2000)
> adjust weight=2000 if e(sample), ci
> svy: reg price weight
> prvalue, x(weight=2000)
> adjust weight=2000 if e(sample), ci
> -----
>
> Output edited to show only -adjust- and -prvalue-
>
>
> . reg price weight
> . prvalue, x(weight=2000)
>
> regress: Predictions for price
>
> 95% Conf. Interval
> Predicted y: 4081.4 [ 3137, 5025.9]
>
> weight
> x= 2000
>
> . adjust weight=2000 if e(sample), ci
>
> -------------------------------------------------------------------------------
> Dependent variable: price Command: regress
> Covariate set to value: weight = 2000
> -------------------------------------------------------------------------------
>
> ----------------------------------------------
> All | xb lb ub
> ----------+-----------------------------------
> | 4081.42 [3120.83 5042.01]
> ----------------------------------------------
> Key: xb = Linear Prediction
> [lb , ub] = [95% Confidence Interval]
>
>
>
> . svy: reg price weight
>
> . prvalue, x(weight=2000)
>
> regress: Predictions for price
>
> 95% Conf. Interval
> Predicted y: 4241.1 [ 4067.2, 4415.1]
>
> weight
> x= 2000
>
> . adjust weight=2000 if e(sample), ci
>
> -------------------------------------------------------------------------------
> Dependent variable: price Command: regress
> Covariate set to value: weight = 2000
> -------------------------------------------------------------------------------
>
> ----------------------------------------------
> All | xb lb ub
> ----------+-----------------------------------
> | 4241.12 [3859.26 4622.99]
> ----------------------------------------------
> Key: xb = Linear Prediction
> [lb , ub] = [95% Confidence Interval]
>
>
> Michael
>
>
> Rune Nielsen wrote:
>>
>> Michael,
>> your solution works out fine, thank you. I created dummys for my
>> variables, and then set version to 10.1.
>>
>> However, in their 2006 "Regression Models for Categorical Dependent
>> Variables Using Stata" Long and Freeze says that "Unfortunately, our SPost
>> commands do not work when the svy prefix is specified." So, now my question
>> is whether I can trust the confidence intervals that the prvalue produces?
>>
>> Grateful if anyone could answer this.
>>
>> Best wishes
>>
>> Rune
>>
>>
>>
>>
>>
>> Den 8. okt. 2009 kl. 19.31 skrev Michael I. Lichter:
>>
>>> Rune,
>>>
>>> I was hoping somebody with Stata 11.0 would answer you. That not being
>>> the case ...
>>>
>>> 1. On J Scott Long's SPost web site, he says "Stata 11 news: The package
>>> spost9_ado does not work with factor variables. We have updated prchange (v
>>> 1.8.1) and countfit (0.8.1) to work with Stata 11. We are still working with
>>> StataCorp to make SPost work with mlogit under Stata 11. In the short run,
>>> the easiest thing is run mlogit under version control. So instead of:
>>> "mlogit y a b c" use "version 10.1: mlogit y a b c" Then the SPost commands
>>> should work fine. If you encounter other problems using Stata 11, let us
>>> know. 10Sep09." (http://www.indiana.edu/~jslsoc/spost.htm)
>>>
>>> 2. I presume you were aware of this and that's why you did not use factor
>>> variables directly in -prvalue-. Nevertheless, -prvalue- is complaining
>>> about factor variables. Have you tried creating dummy variables and using
>>> those instead? You can use, e.g., -tab GOLDogrestr, gen(GOLD)- to do this.
>>> You don't have to try it with the whole model ... unless it works with a
>>> partial model.
>>>
>>> 3. You could also try what he suggests for mlogit: "version 10.1: svy:
>>> regress y a b c".
>>>
>>> 4. If I knew how to calculate confidence intervals for predictions I
>>> would tell you. Perhaps somebody else will chime in. Short of that, I can
>>> tell you that prvalue.ado calls _peciml.ado to find the upper and lower
>>> bounds, and you can see it with -viewsource _peciml.ado-.
>>>
>>> Michael
>>>
>>>
>>> Rune Nielsen wrote:
>>>>
>>>> Hi, I'm using stata 11.0 on a Mac with os 10.6. I'm using spost 9. After
>>>> setting the survey parameters I try running this regression:
>>>> /svyset [pweight=vekt_alle], strata(kilde)/
>>>> /svy: regress log_kost i.GOLDogrestr i.kjonn_omv i.smoke_bin alder2006
>>>> i.utdannelse_omv if har364dg==1 & n474==100/
>>>>
>>>> when I try using prvalue:
>>>> /prvalue, x(_IGOLDogres_2=0 _IGOLDogres_3=0 _IGOLDogres_4=0
>>>> _Ikjonn_omv_1=0.415 _Ismoke_bin_1=0.559 _Iutdannels_1=0.479
>>>> _Iutdannels_2=0.3047 alder2006=61.868) /
>>>>
>>>> I get this error:
>>>>
>>>> /factor variables and time-series operators not allowed/
>>>>
>>>> However, if I try doing this without the svy-prefix, spost manages to
>>>> predict nicely. I'm not that skilled, so perhaps there is some kind of
>>>> obvious error in my commands?
>>>>
>>>> Best wishes,
>>>>
>>>> Rune
>>>>
>>>>
>>>> Den 8. okt. 2009 kl. 09.42 skrev Michael I. Lichter:
>>>>
>>>>> What version of Stata are you using, what version of spost, what
>>>>> command line are you using, and what do you mean by "not possible"? In Stata
>>>>> 10.1, using spost9, I just ran -svy: reg depvar age gender- followed by
>>>>> -prvalue, x(age=50)- and got a sensible answer from -prvalue- (I did not,
>>>>> however, verify that the answer was correct).
>>>>>
>>>>> Michael
>>>>>
>>>>> Rune Nielsen wrote:
>>>>>>
>>>>>> Dear statalist-members,
>>>>>> I'm running a model (multiple linear regression) using the
>>>>>> /svy/-prefix to adjust for a stratified sample. The outcome is
>>>>>> log-transformed due to large left-skewing.
>>>>>> I would like to do some predictions using prvalue from the
>>>>>> spost-package. However, this is not possible when I've used the
>>>>>> survey-version of/ regress/. Does anybody know a simple solution to this?
>>>>>> I've already tried running the model without svy, but specifying pweight and
>>>>>> vce(cluster clustervar), but then I don't get reliable confidence intervals.
>>>>>> Grateful for any answers (in simple language for a non-statician)
>>>>>>
>>>>>> Best wishes,
>>>>>>
>>>>>> Rune Nielsen
>>>>>>
>>>>>> ---
>>>>>> Rune Nielsen, MD, research fellow
>>>>>> Institute of Medicine, Bergen, Norway
>>>>>
>>>>> --
>>>>> Michael I. Lichter, Ph.D. <[email protected]
>>>>> <mailto:[email protected]>>
>>>>> Research Assistant Professor & NRSA Fellow
>>>>> UB Department of Family Medicine / Primary Care Research Institute
>>>>> UB Clinical Center, 462 Grider Street, Buffalo, NY 14215
>>>>> Office: CC 126 / Phone: 716-898-4751 / FAX: 716-898-3536
>>>>>
>>>>> *
>>>>> * 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/
>>>>
>>>
>>> --
>>> Michael I. Lichter, Ph.D. <[email protected]>
>>> Research Assistant Professor & NRSA Fellow
>>> UB Department of Family Medicine / Primary Care Research Institute
>>> UB Clinical Center, 462 Grider Street, Buffalo, NY 14215
>>> Office: CC 126 / Phone: 716-898-4751 / FAX: 716-898-3536
>>>
>>> *
>>> * 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/
>
> --
> Michael I. Lichter, Ph.D. <[email protected]>
> Research Assistant Professor & NRSA Fellow
> UB Department of Family Medicine / Primary Care Research Institute
> UB Clinical Center, 462 Grider Street, Buffalo, NY 14215
> Office: CC 126 / Phone: 716-898-4751 / FAX: 716-898-3536
>
> *
> * 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/
>
--
Steven Samuels
[email protected]
18 Cantine's Island
Saugerties NY 12477
USA
845-246-0774
*
* 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/