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]
Re: st: predict, condpb
From
Richard Williams <[email protected]>
To
[email protected]
Subject
Re: st: predict, condpb
Date
Tue, 06 Aug 2013 12:13:25 -0500
In case it helps, here is what Stata 9.2 says about the syntax for
predict after running nlogit. The current syntax looks a lot simpler,
I suspect because of the new hlevel option. If this is hard to read
you may need to copy and paste using a fixed-width font.
Syntax for predict
predict [type] newvar [if] [in] [, statistic]
statistic description
-------------------------------------------------------------------------------------------------------------------------------------------------------------------
Main
pb predicted probability of choosing bottom-level, or
choice-set, alternatives; each alternative identified by altsetvarB;
the default
p1 predicted probability of choosing first-level
alternatives; each alternative identified by altsetvar1
p2 predicted probability of choosing second-level
alternatives; each choice identified by altsetvar2
...
p# predicted probability of choosing #-level
alternatives; each alternative identified by altsetvar#
xbb linear prediction for the bottom-level alternatives
xb1 linear prediction for the first-level alternatives
xb2 linear prediction for the second-level alternatives
...
xb# linear prediction for the #-level alternatives
condpb Pr(each bottom alternative|alternative is available
after all earlier choices)
condp1 Pr(each level 1 alternative) = p1
condp2 Pr(each level 2 alternative|alternative is
available after level 1 decision)
...
condp# Pr(each level # alternative|alternative is
available after all earlier choices)
ivb inclusive value for the bottom-level alternatives
iv2 inclusive value for the second-level alternatives
...
iv# inclusive value for the #-level alternatives
-------------------------------------------------------------------------------------------------------------------------------------------------------------------
The inclusive value for the first-level alternatives is not used
in estimation; therefore, it is not calculated.
These statistics are available both in and out of sample; type
predict ... if e(sample) ... if wanted only for the estimation sample.
Options for predict
Consider a nested logit model with 3 levels: Pr(ijk) =
Pr(k|ij)*Pr(j|i)*Pr(i), then
pb, the default, calculates the probability of choosing
bottom-level alternatives; pb = Pr(ijk).
p1 calculates the probability of choosing first-level
alternatives; p1 = Pr(i).
p2 calculates the probability of choosing second-level
alternatives; p2 = Pr(ij) = Pr(j|i)*Pr(i).
xbb calculates the linear prediction for the bottom-level alternatives.
xb1 calculates the linear prediction for the first-level alternatives.
xb2 calculates the linear prediction for the second-level alternatives.
condpb = Pr(k|ij).
condp1 = Pr(i).
condp2 = Pr(j|i).
ivb calculates the inclusive value for the bottom-level
alternatives: ivb = ln[sum{exp(xbb){c )-]), where xbb is the linear
prediction for the bottom-level
alternatives.
iv2 calculates the inclusive value for the second-level
alternatives: iv2 = ln[sum{exp(xb2 + tau_j*ivb)}], where xb2 is the
linear prediction for the second-level
alternatives, ivb is the inclusive value for the
bottom-level alternatives, and tau_j are the parameters for the
inclusive value.
Examples
. nlogit chosen (restaurant = cost rating distance) (type =
incFast incFancy kidFast kidFancy), group(family_id) nolog
. predict pb
. predict p1, p1
. predict condbp, condpb
. predict xbb, xbb
. predict xb1, xb1
. predict ivb, ivb
At 10:24 AM 8/6/2013, you wrote:
Richard, that was it!
Actually, there was another nlogit that I put under comment stars some
days ago because it would not run due to some syntax error. However,
obviously that one was written for Stata 9... I tried using that with
-version- and
version 9: nlogit ...
version 9: preditct x1, condpb
worked in the end.
thank you, stefan bernhard,
2013/8/6 Richard Williams <[email protected]>:
> Actually, I just checked my old copy of Stata 9.2, and condpb and pb were
> legitimate options for it (but apparently disappeared by Stata 10). So I
> think Nick had the right idea before but the version command was in the
> wrong place. Try something like
>
> version 9.2
> nlogit [whatever]
>
> predict x1, condpb
> predict x2, pb
>
> This underscores why it is a good idea to include version commands in your
> do files. If you don't, the command may not run correctly under future
> versions of Stata. Even in this case, it is possible that you should be
> using something earlier than 9.2.
>
> Alternatively, you could figure out exactly what each of these options did
> and then use whatever the current options are.
>
>
> At 09:20 AM 8/6/2013, Stefan Bernhard wrote:
>>
>> Thanks Nick and Richard (your example works fine), I did not know that
>> predict was specific to the previous estimation command. There's
>> something new to learn about stata every day...
>> Therefore the question is resolved.
>>
>> Well then the problem clearly is that in the do-file that I was given,
>> there is no nlogitrum at all, which is strange because why would there
>> be that specific predict for nlogitrum then...
>>
>> best, stefan bernhard,
>>
>> 2013/8/6 Richard Williams <[email protected]>:
>> > Works for me. travelmode is an auxiliary file that you can download
>> > along
>> > with the program:
>> >
>> > use "C:\StataData\travelmode.dta", clear
>> > nlogitrum mode asc_* hinc_* time_*, group(grp) nests(travel type)
>> >
>> > predict x1, condpb
>> > predict x2, pb
>> >
>> > Like Nick says we need to see the code. In particular, you have to run
>> > nlogitrum first before you run the predict commands. predict options are
>> > often specific to the estimation command that has just been run; they
>> > aren't
>> > going to work after every estimation command.
>> >
>> >
>> > At 08:37 AM 8/6/2013, Nick Cox wrote:
>> >>
>> >> I think you might need to tell us much more about your do-file and
>> >> what it runs immediately before it invokes -predict-.
>> >>
>> >> Earlier I was following your guess that something is no longer allowed
>> >> in newer versions of Stata (Stata 12 in your case) but on further
>> >> thought that's unlikely to be the problem.
>> >>
>> >> The key point here is that -predict- in itself does nothing much
>> >> except call up whatever prediction program is associated with the last
>> >> estimation command.
>> >>
>> >> It sounds as if you might need something user-written to be installed,
>> >> specifically -nlogitrum_p-, although the error
>> >> message remains a puzzle to me.
>> >> Nick
>> >> [email protected]
>> >>
>> >>
>> >> On 6 August 2013 14:16, Stefan Bernhard <[email protected]>
>> >> wrote:
>> >> > Yeah I did that because I thought maybe it does some alterations to
>> >> > -predict-, but that is not the case, still not allowed option :/
>> >> > best stefan bernhard,
>> >> >
>> >> > 2013/8/6 Kieran McCaul <[email protected]>:
>> >> >> ...
>> >> >>
>> >> >>
>> >> >> Looks like you have to download -nlogitrum-
>> >> >>
>> >> >> Type: search nlogitrum
>> >> >> And click on the link.
>> >> >>
>> >> >> -----Original Message-----
>> >> >> From: [email protected]
>> >> >> [mailto:[email protected]] On Behalf Of Stefan
>> >> >> Bernhard
>> >> >> Sent: Tuesday, 6 August 2013 8:00 PM
>> >> >> To: statalist
>> >> >> Subject: Re: st: predict, condpb
>> >> >>
>> >> >> Thanks for the reply nick,
>> >> >>
>> >> >> but I tried all version #: from 1 to 11 now and always the error
>> >> >> "option condpb not allowed".
>> >> >>
>> >> >> I found a stata-journal article from 2002 where the syntax of
>> >> >> predict
>> >> >> looks like this:
>> >> >>
>> >> >> predict type newvarname if exp in range , statistic
>> >> >>
>> >> >> Where the condpb and pb were set with statistic.
>> >> >>
>> >> >> http://www.stata-journal.com/sjpdf.html?articlenum=st0017
>> >> >>
>> >> >> It seems like that was for Stata 7 and the predict command has
>> >> >> undergone significant changes sometime in between. Or could it have
>> >> >> to do
>> >> >> anything with having to run nlogitrum first? (In the do-file, the
>> >> >> predict is
>> >> >> after an nlogit)
>> >> >>
>> >> >> best, stefan bernhard,
>> >> >>
>> >> >> 2013/8/6 Nick Cox <[email protected]>:
>> >> >>> Try a prefix such as
>> >> >>>
>> >> >>> version 5: predict x1, condpb
>> >> >>>
>> >> >>> for any value of "5" that works.
>> >> >>>
>> >> >>> See also the -help- for -version-.
>> >> >>>
>> >> >>> Nick
>> >> >>> [email protected]
>> >> >>>
>> >> >>>
>> >> >>> On 6 August 2013 12:08, Stefan Bernhard
>> >> >>> <[email protected]>
>> >> >>> wrote:
>> >> >>>> dear statalisters,
>> >> >>>>
>> >> >>>> i have a do file that was written some time ago that contains
>> >> >>>>
>> >> >>>> predict x1, condpb
>> >> >>>> predict x2, pb
>> >> >>>>
>> >> >>>> apparently, the options condpb and pb are no longer allowed in
>> >> >>>> newer
>> >> >>>> versions of stata (I use stata 12).
>> >> >>>>
>> >> >>>> Is there any way to do whatever those options did before (I just
>> >> >>>> want
>> >> >>>> to replace these commands with something that gives me the same
>> >> >>>> output as those would have in an older version of stata)?
>> >> >>>>
>> >> >>>> best, stefan bernhard,
>> >> >>>> *
-------------------------------------------
Richard Williams, Notre Dame Dept of Sociology
OFFICE: (574)631-6668, (574)631-6463
HOME: (574)289-5227
EMAIL: [email protected]
WWW: http://www.nd.edu/~rwilliam
*
* For searches and help try:
* http://www.stata.com/help.cgi?search
* http://www.stata.com/support/faqs/resources/statalist-faq/
* http://www.ats.ucla.edu/stat/stata/