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: generating annualized standard deviation of returns from monthly data.


From   Nick Cox <[email protected]>
To   "[email protected]" <[email protected]>
Subject   Re: st: RE: generating annualized standard deviation of returns from monthly data.
Date   Thu, 27 Feb 2014 15:47:58 +0000

If you don't specify the year as a grouping variable, then values for
different years are lumped together; that is precisely as it should
be.

Otherwise, I can't make sense of the claim that you get missing for SD
with (e.g.) 6 non-missing values. -collapse- produces a missing SD if
all values (or all but one) values are missing in a group, but not
otherwise. (The "all but one" follows from the use of (n - 1) rather
than n in the formula for SD, n being sample size as usual.)

If you were expecting that missing values would be omitted from the
-collapse- results, that expectation was incorrect.

To make clear your perceived problem, we need to see data and output,
e.g. for examples like that below.

. clear

. input firm year return

          firm       year     return
  1. 1 2000 0.875
  2. 1 2000 1.2
  3. 1 2000 0.9
  4. 1 2000 0.35
  5. 1 2000 0.98
  6. 1 2000 1.4
  7. 1 2000  .
  8. 1 2000  .
  9. 1 2000  .
 10. 1 2000  .
 11. 1 2000  .
 12. 1 2000  .
 13. 1 2001  .
 14. 1 2001  .
 15. end

. collapse (sd) return, by(firm year)

. list

     +------------------------+
     | firm   year     return |
     |------------------------|
  1. |    1   2000   .3560957 |
  2. |    1   2001          . |
     +------------------------+

Nick
[email protected]


On 27 February 2014 15:28, Ikechukwu M. <[email protected]> wrote:
> Thanks. Apologies for incorrect attribution to Nick Cox. What I meant
> to say is that occurrence of missing values collapses to a missing,
> even though I expected the missings to be ignored.
> Thanks for the input - I have implemented what you both suggest and
> the good news is that it resolves to the same thing so it is working
> but not producing the desired output. I am ending up with missing
> values even for firms that have 6 monthly observations for the year.
>
> The collapse code I used is this:
> collapse (sd) sd_return=return, by(firm year)
>
> using bysort firm year: egen SD=sd(return)
>
> but when I omit the year, sd is appropriately computed but for all 10
> years of the data, not partitioned into years.
>
> When I include the year, I end up with lots of missing observations.
>
> Thanks
>
> On Thu, Feb 27, 2014 at 4:21 AM, Nick Cox <[email protected]> wrote:
>> There are various "Nick"s around here. In my case, I wouldn't offer
>> the explanation that the occurrence of missings will imply zero
>> standard deviations with -collapse-, because it isn't true. More
>> importantly, as you don't give the -collapse- code you used, we are
>> reduced to speculation that somehow your -collapse- produced a
>> collapse to constants, which have 0 SD.
>> Nick
>> [email protected]
>>
>>
>> On 27 February 2014 05:53, Ikechukwu M. <[email protected]> wrote:
>>> Thanks Kieran for your response. I tried that and it gives me all
>>> zeros. I think it has to do with how stata treats missing values in
>>> the collapse command. I had seen an earlier post by Nick regarding
>>> this.
>>>
>>> I used bys firm : egen sd=sd(return) and I get values but they are not
>>> partitioned by year. It gives me one SD for all the datapoints for the
>>> firm.
>>>
>>> thanks
>>>
>>> On Wed, Feb 26, 2014 at 11:23 PM, Kieran McCaul
>>> <[email protected]> wrote:
>>>> ...
>>>>
>>>> Like this?
>>>>
>>>> clear *
>>>>
>>>> input firm str7 date return
>>>> 1  "Jan2000"  0.875
>>>> 1  "Feb2000"  1.2
>>>> 1  "Mar2000"  0.9
>>>> 1  "Jan2001"  0.35
>>>> 1  "Feb2001"  0.98
>>>> 2  "Jan2000"  1.4
>>>> 2  "Feb2000"   .76
>>>> 2  "Mar2000"  1.34
>>>> end
>>>>
>>>> gen year = substr(date, 4,.)
>>>>
>>>> preserve
>>>>
>>>>    collapse (sd) sd_return=return, by(firm year)
>>>>    tempfile ttt
>>>>    save `ttt', replace
>>>>
>>>> restore
>>>>
>>>> merge m:1 firm year using `ttt'
>>>> list
>>>> bysort firm year: summ return

>>>> From: [email protected] [mailto:[email protected]] On Behalf Of Ikechukwu M.
>>>> Sent: Thursday, 27 February 2014 9:33 AM
>>>> To: [email protected]
>>>> Subject: st: generating annualized standard deviation of returns from monthly data.
>>>>
>>>> I am trying to compute standard deviation of returns for a panel data set and I am having a little difficulty.
>>>>
>>>> My data looks like this
>>>>
>>>> Firm    date                 return
>>>> 1         Jan2000              0.875
>>>> 1         Feb2000              1.2
>>>> 1        Mar2000               0.9
>>>> 1        Jan2001               0.35
>>>> 1        Feb2001               0.98
>>>> 2        Jan2000                1.4
>>>> 2        Feb2000                .76
>>>> 2        Mar2000                1.34
>>>>
>>>>
>>>> I would like to compute the annualized standard deviation of returns for each firm and return one number for each firm in each year.
*
*   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/


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