Announcement

Collapse
No announcement yet.
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Standard deviation over 3 and 5 years

    Hi all,

    I have been able to calculate t-1 and average of the previous 2 years (t-1 + t-2). However, I would need SD over 3 and 5 years of
    Webit_asset
    Wni_asset
    i2a_bhy_l


    Can anyone help me with that?

    My code is the following:
    Code:
    tab year, gen (yd_)
    
    destring sic, replace
    
    gen sic2=int(sic/100)
    label var sic2 "2-digit SIC code"
    
    gen sic3=int(sic/10)
    label var sic3 "3-digit SIC code"
    
    tab sic2, gen(id_)
    
    sort gvkey year
    
    by gvkey: gen lag_at = at[_n-1]
    label var lag_at "totals assets t-1"
    
    by gvkey: gen lag_at_t2 = at[_n-2]
    label var lag_at_t2 "totals assets t-2"
    
    by gvkey: gen lag_at_avg = (lag_at + lag_at_t2)/2
    label var lag_at_avg "totals assets average 2 years"
    
    gen ln_at=log(lag_at)
    label var ln_at "LN(Total assets) in t-1"
    
    gen ln_at_avg=log(lag_at_avg)
    label var ln_at_avg "LN(Total assets) average 2 years"
    
    
    by gvkey: gen ebit_asset = ebit[_n-1]/at[_n-1]
    by gvkey: gen ebit_asset_t2 = ebit[_n-2]/at[_n-2]
    by gvkey: gen ebit_asset_avg = (ebit_asset + ebit_asset_t2)/2
    
    by gvkey: gen ni_asset = ni[_n-1]/at[_n-1]
    by gvkey: gen ni_asset_t2 = ni[_n-2]/at[_n-2]
    by gvkey: gen ni_asset_avg = (ni_asset + ni_asset_t2)/2
    
    winsor ebit_asset, gen(Webit_asset) p(0.01)
    winsor ebit_asset_avg, gen(Webit_asset_avg) p(0.01)
    
    winsor ni_asset, gen(Wni_asset) p(0.01)
    winsor ni_asset_avg, gen(Wni_asset_avg) p(0.01)
    
    
    by gvkey: gen ly_bhr = y_bhr[_n-1]
    label var ly_bhr "BHR t-1"
    
    by gvkey: gen ly_bhr_t2 = y_bhr[_n-2]
    label var ly_bhr_t2 "BHR t-2"
    
    
    * Weighted industry return
    * 2-digit level
    
    egen t_2_mv = sum(mkvalt), by(sic2 year)
    gen w_2_sic = mkvalt/t_2_mv
    gen w_2_bhr = w_2_sic*y_bhr
    egen ind2_bhr = sum(w_2_bhr), by(sic2 year)
    
    by gvkey: gen l_ind2_bhr = ind2_bhr[_n-1]
    
    gen i2a_bhy_l = ly_bhr-l_ind2_bhr
    label var i2a_bhy_l "Lagged BHR adjusted by MCAP weighted mean BHR at 2-digit"
    
    
    by gvkey: gen l_ind2_bhr_t2 = ind2_bhr[_n-2]
    
    gen i2a_bhy_l_t2 = ly_bhr_t2-l_ind2_bhr_t2
    label var i2a_bhy_l_t2 "t-2 BHR adjusted by MCAP weighted mean BHR at 2-digit"
    
    
    gen i2a_bhy_l_avg = (i2a_bhy_l + i2a_bhy_l_t2)/2
    label var i2a_bhy_l_avg "Average 2 years BHR adjusted by MCAP weighted mean BHR at 2-digit"

  • #2
    anyone here, who can help me

    Comment


    • #3
      Abdullah:
      you posted a very log code supported by no data (please, see the FAQ on how to share excerpt/example of your dataset via -dataex-. Thanks).
      As you can easily envisage, even the most interested lister couldn't reply to your query.
      Kind regards,
      Carlo
      (StataNow 19.0)

      Comment


      • #4
        Hi Carlo, thank you very much - you are rihgt. It is a quite long code. However, this would be easier now hopefully.

        I did already the calculation of 2 years average.

        I need to calculate the SD over 3 years and 5 years of the following:
        ebit_asset

        Code:
        by gvkey: gen ebit_asset = ebit[_n-1]/at[_n-1]
        by gvkey: gen ebit_asset_t2 = ebit[_n-2]/at[_n-2]
        by gvkey: gen ebit_asset_avg = (ebit_asset + ebit_asset_t2)/2

        Same for
        ni_asset
        Code:
        by gvkey: gen ni_asset = ni[_n-1]/at[_n-1]
        by gvkey: gen ni_asset_t2 = ni[_n-2]/at[_n-2]
        by gvkey: gen ni_asset_avg = (ni_asset + ni_asset_t2)/2

        Comment


        • #5
          Abdullah:
          thanks for providing clearer codes.
          Perhaps you can get what you're after by tweaking the following toy-example (tailored on a two-year timespan):
          Code:
          use "http://www.stata-press.com/data/r15/nlswork.dta"
          bysort idcode: g flag=_n
          bysort idcode: egen var1=mean(year) if flag<=2
          bysort idcode: egen var2=sd(year) if flag<=2
          bysort idcode: sum var1 var2
          Kind regards,
          Carlo
          (StataNow 19.0)

          Comment


          • #6
            Thank you Carlo. I tried another way and hope it will work somehow

            Comment


            • #7
              See also rangestat (SSC): search for mentions here.

              Comment


              • #8
                Thanks a lot Nick!

                Comment

                Working...
                X