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: Running Product Function
From
Yuval Arbel <[email protected]>
To
[email protected]
Subject
Re: st: Running Product Function
Date
Mon, 10 Dec 2012 00:14:41 +0200
Note also that the geometric mean of this series is 25. This implies
that while the arithmetic mean gives more weight to earlier periods,
the geometric mean gives more weight to latter periods.:
ameans(reduct_per)if appt==2862
Variable | Type Obs Mean [95% Conf. Interval]
-------------+----------------------------------------------------------
reduct_per | Arithmetic 37 8.108108 4.152295 12.06392
| Geometric 12 25 25 25
| Harmonic 12 25 25 25
------------------------------------------------------------------------
On Mon, Dec 10, 2012 at 12:06 AM, Yuval Arbel <[email protected]> wrote:
> Eventually, I improved the system and put:the following commands:
>
> by appt: replace reduct_per=1 if reduct_per==0
> by appt: gen y1=exp(sum(ln(reduct_per)))
>
> I got the following table, which is exactly what I need (I don't want
> the geometric mean to be set to zero):
>
> . list reduct_per y3 if appt==2862
>
> +---------------------+
> | reduct~r y3 |
> |---------------------|
> 30. | 1 1 |
> 31. | 1 1 |
> 32. | 1 1 |
> 33. | 1 1 |
> 34. | 1 1 |
> |---------------------|
> 35. | 1 1 |
> 36. | 1 1 |
> 37. | 1 1 |
> 38. | 1 1 |
> 39. | 1 1 |
> |---------------------|
> 40. | 1 1 |
> 41. | 1 1 |
> 42. | 1 1 |
> 43. | 1 1 |
> 44. | 1 1 |
> |---------------------|
> 45. | 1 1 |
> 46. | 1 1 |
> 47. | 1 1 |
> 48. | 1 1 |
> 49. | 1 1 |
> |---------------------|
> 50. | 1 1 |
> 51. | 1 1 |
> 52. | 1 1 |
> 53. | 1 1 |
> 54. | 1 1 |
> |---------------------|
> 55. | 25 25 |
> 56. | 25 625 |
> 57. | 25 15625 |
> 58. | 25 390625 |
> 59. | 25 9765625 |
> |---------------------|
> 60. | 25 2.44e+08 |
> 61. | 25 6.10e+09 |
> 62. | 25 1.53e+11 |
> 63. | 25 3.81e+12 |
> 64. | 25 9.54e+13 |
> |---------------------|
> 65. | 25 2.38e+15 |
> 66. | 25 5.96e+16 |
> +---------------------+
>
>
> On Sun, Dec 9, 2012 at 11:56 PM, Nick Cox <[email protected]> wrote:
>> That is reasonable if and only if zero is in effect a code for missing
>> in your situation.
>>
>> (In terms of your earlier reference, -prod()- is a user-written -egen-
>> function which must be installed from
>>
>> STB-51 dm71 . . . . . . . . . . . . Calculating the product of observations
>> (help prod if installed) . . . . . . . . . . . . . . . . . . P. Ryan
>> 9/99 pp.3--4; STB Reprints Vol 9, pp.45--48
>> extension to egen for producing the product of observations
>>
>> Please remember to explain _where_ you obtained user-written code.)
>>
>> Nick
>>
>> On Sun, Dec 9, 2012 at 9:40 PM, Yuval Arbel <[email protected]> wrote:
>>> I don't have negative values, but I have zeros, in which case I can
>>> replace them by one and then take the -ln()-
>>>
>>> On Sun, Dec 9, 2012 at 11:31 PM, Nick Cox <[email protected]> wrote:
>>>> Oddly enough I was thinking earlier today about how you would
>>>> generalise this if any values were not positive.
>>>>
>>>> If any value is zero, then the product becomes zero; otherwise one
>>>> would need to separate out products of -abs()- and -sign()-.
>>>>
>>>> Nick
>>>>
>>>> On Sun, Dec 9, 2012 at 9:19 PM, Yuval Arbel <[email protected]> wrote:
>>>>
>>>>> Please ignore my previous e-mails regarding this question
>>>>>
>>>>> After a short additional search, I found a very nice (and well known)
>>>>> trick proposed by Nick Cox to address the problem (which, from some
>>>>> reason did not come to my mind):
>>>>>
>>>>> bysort group : gen prod = sum(ln(x))
>>>>> by group : replace prod = exp(prod[_N])
>>>>>
>>>>> On Sun, Dec 9, 2012 at 11:05 PM, Yuval Arbel <[email protected]> wrote:
>>>>>> P.S. According to stata's help, the details of the author of the
>>>>>> -prod()- function is:
>>>>>>
>>>>>> Philip Ryan
>>>>>> Department of Public Health
>>>>>> University of Adelaide
>>>>>> South Australia
>>>>>> [email protected]
>>>>
>>>>
>>>> On Sun, Dec 9, 2012 at 10:53 PM, Yuval Arbel <[email protected]> wrote:
>>>>
>>>>>>> I appreciate very much your assistance in the following question:,
>>>>>>>
>>>>>>> I'm looking for an equivalent function for -gen y1=sum()- which will
>>>>>>> calculate running product for each point in time
>>>>>>>
>>>>>>> In fact, what I would like to calculate is a running geometric mean
>>>>>>>
>>>>>>> Note also that -gen y2=prod()- does not work (i.e., stata does not
>>>>>>> identify the function). Only -egen y2=prod()- works, but it generates
>>>>>>> only one product for each panel, and this is not what I need.
>>>>>>>
>>>>>>> Finally, I tried the -amean- command,, but it simply gives summary
>>>>>>> statistics of different means, and it is not a function..
>> *
>> * 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/
>
>
>
> --
> Dr. Yuval Arbel
> School of Business
> Carmel Academic Center
> 4 Shaar Palmer Street,
> Haifa 33031, Israel
> e-mail1: [email protected]
> e-mail2: [email protected]
--
Dr. Yuval Arbel
School of Business
Carmel Academic Center
4 Shaar Palmer Street,
Haifa 33031, Israel
e-mail1: [email protected]
e-mail2: [email protected]
*
* 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/