Bookmark and Share

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: Re: [question on -gammafit- and -pgamma-]


From   Nick Cox <[email protected]>
To   [email protected]
Subject   Re: st: Re: [question on -gammafit- and -pgamma-]
Date   Sun, 6 Mar 2011 08:44:08 +0000

You need [] not () before the equals sign  in commands like

  matrix results(`i',2)=e(beta)

i.e.

  matrix results[`i',2]=e(beta)

This was explicit in my first email and is explicit in the help for -matrix-.

You have to get used to copying syntax exactly, character by
character, until you have learned it!

Nick

On Sun, Mar 6, 2011 at 5:36 AM, Peter Maclean <[email protected]> wrote:
> I made the changes but there are still some errors.
>
> for:
>
> matrix results=J(10,3,.)
> egen group = group(n)
> su group, meanonly
> forval i = 1/`r(max)' {
> gammafit y if group == `i'
>   results(`i',1)=e(alpha)
>   results(`i',2)=e(beta)
>   results(`i',3)=e(alpha)*e(beta)
> }
>  gives:
> unrecognized command: results
> r(199);
>
>
> For:
>
> matrix results=J(10,3,.)
> egen group = group(n)
> su group, meanonly
> forval i = 1/`r(max)' {
> gammafit y if group == `i'
>   matrix results(`i',1)=e(alpha)
>   matrix results(`i',2)=e(beta)
>   matrix results(`i',3)=e(alpha)*e(beta)
> }
>
> gives:
>
> invalid syntax
> r(198);
>
>
>
> ----- Original Message ----
> From: Kieran McCaul <[email protected]>

>
> (1) get rid of the comma after the gammafit and put the -if- on the same line.
>     gammafit y if group == `i'
> (2) the matrix "results" is not the same as the matrix "Results".  Pick one name
> or the other.
> (3) You need to preface the matrix assignments with the command -matrix-.
>
> [mailto:[email protected]] On Behalf Of Peter Maclean
>
> I tried use the following commnds:
>
> matrix results=J(10,3,.)
> egen group = group(n)
> su group, meanonly
> forval i = 1/`r(max)' {
>   gammafit y,
>     if group == `i'
>     Results(`i',1)=e(alpha)
>     Results(`i',2)=e(beta)
>     results(`i',3)=e(alpha)*e(beta)
> }
>
> I am still getting the following error
>
> { required
> r(100); and it the results is for all observations.

> ----- Original Message ----
> From: Nick Cox <[email protected]>
>
> Start with
>
> -help foreach-
>
> -help forval-
>
> If necessary, continue with
>
> SJ-2-2  pr0005  . . . . . .  Speaking Stata:  How to face lists with fortitude
>         . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  N. J. Cox
>         Q2/02  SJ 2(2):202--222                                (no commands)
>         demonstrates the usefulness of for, foreach, forvalues, and
>         local macros for interactive (non programming) tasks
>
> FAQ    . . . . . . . . . . Making foreach go through all values of a variable
>         . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  N. J. Cox
>         8/05    Is there a way to tell Stata to try all values of a
>                 particular variable in a foreach statement without
>                 specifying them?
>                 http://www.stata.com/support/faqs/data/foreach.html
>
> On Sat, Mar 5, 2011 at 10:25 PM, Peter Maclean <[email protected]> wrote:

>> Thanks Nick.
>> My question was actually setting up a loop over a group and save the results.
>> The number of group (n) is 600.
>> Hope you can help on that.
>>
>> ----- Original Message ----
>> From: Nick Cox <[email protected]>
>>
>> It is always helpful to specify a subject for your email.
>>
>> This question refers to -gammafit- and -pgamma- from SSC, which are
>> user-written programs.
>> Statalist etiquette is to explain where user-written programs referred
>> to come from.
>>
>> Peter quotes the syntax
>>
>> by n:gammafit y, level(95)
>>
>> which -gammafit- supports. However, as is standard with -by:- support,
>> this syntax is of limited use for _saving_ results, as after the
>> first, each invocation of -gammafit- stomps over the previous set of
>> saved results, so although parameter estimates are displayed in turn,
>> only the last such set is present in memory once all are done.
>>
>> Peter correctly reports that -pgamma- does not support the -by()-
>> option (nor does it support the -by:- prefix).
>>
>> I am not aware that Stata supports doubly subscripted variables.
>> Perhaps Peter means a Stata or Mata matrix.
>>
>> To get results for different groups and put them together, Peter has
>> to arrange that himself. But this code shows that the steps are
>> simple.
>>
>> sysuse auto, clear
>> matrix results = J(2,2,.)
>> gammafit mpg if foreign
>> matrix results[1,1] = e(alpha)
>> matrix results[1,2] = e(beta)
>> pgamma mpg if foreign, gen(tp1 ep1)
>> gammafit mpg if !foreign
>> matrix results[2,1] = e(alpha)
>> matrix results[2,2] = e(beta)
>> pgamma mpg if !foreign, gen(tp2 ep2)
>> matrix rownames results = Foreign Domestic
>> matrix colnames results = alpha beta
>> matrix li results
>> scatter tp1 ep1 || scatter tp2 ep2 , legend(order(1 "Foreign" 2 "Domestic"))
>>
>> For a group variable with many more than 2 classes, it would be better
>> to set up a loop over the groups.
>>
>> The help for -gammafit- includes a link to the help for -maximize-,
>> which explains how to set initial values.
>>
>> Nick
>>
>> On Sat, Mar 5, 2011 at 4:47 PM, Peter Maclean <[email protected]> wrote:
>>
>>> I am new is Stata modelling.
>>> I am running the following model:
>>>
>>> by n:gammafit y, level(95)
>>> pgamma y, gen(g_p e_p)
>>>
>>> where n is  a group variable.
>>> I would like to save the estimated parameters by gammafit
>>>(alpha,beta,alpha+beta
>>> and lower and upper limit of both alpha and beta) in a variable
> 'result(n,j).'
>>>
>>>
>>> Also, I would like pgamma to estimate the probabilities (g_p and e_p) by
>>> variable n.
>>> The pgamma module does not accept the 'by' option. In addition, is there a
> way
>>> to give starting values for the gammafit module?

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


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