Announcement

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

  • Growth rate differences

    Hello all !

    I am wondering why I have different results when I use :

    Code:
    gen g_x = D.x / L.x
    or

    Code:
    gen g__x = ln(x) - L.ln(x)
    To calculate the growth rate of variable x.

    Thank you for your help !

    PS : Results are quite different, see :
    sum g_x g__x

    Code:
        Variable |       Obs        Mean    Std. Dev.       Min        Max
    -------------+--------------------------------------------------------
             g_x |       277    .1977073    1.858255  -.9708064   29.44279
            g__x |       277    -.002123    .5232963  -3.533804   3.415849
    Last edited by Morad Bali; 01 Sep 2018, 03:29.

  • #2
    Because they're not the same thing at all.

    ln(x) - L.ln(x) is the same as ln(x) - ln(L.x), which in turn equals ln(x/L.x). So it differs from your formula in two ways: first it the log of an expression involving x, not a direct expression in x, and second of all, the numerator is x itself, not the first difference in x.

    Comment


    • #3
      Thank you Clyde !

      Our Pr. always told us that to calculate a growth rate, we could use either =( x_t - x_t-1 ) / x_t-1 or = ln(x_t) - ln(x_t-1).

      I was surprised to see that it isn't working.

      I am a bit lost now. If I want to calculate a growth rate, what am I supposed to use ?

      Comment


      • #4
        In the course I can see :
        Click image for larger version

Name:	e.png
Views:	1
Size:	10.6 KB
ID:	1460545

        Comment


        • #5
          The key here is to note that the final step in this chain of equations is not an equality, it is an approximation. The approximation ln(1+u) is nearly equal to u is only useful when u is close to 0. It's a decent approximation for |x| < 0.1 (good to two decimal places). But it deteriorates quickly after that and is really not useful outside that range:
          Code:
          . forvalues i = 1/20 {
            2.         display %03.1f `=`i'/10' _col(12) %06.4f `=log((1+`i'/10))'
            3. }
          0.1        0.0953
          0.2        0.1823
          0.3        0.2624
          0.4        0.3365
          0.5        0.4055
          0.6        0.4700
          0.7        0.5306
          0.8        0.5878
          0.9        0.6419
          1.0        0.6931
          1.1        0.7419
          1.2        0.7885
          1.3        0.8329
          1.4        0.8755
          1.5        0.9163
          1.6        0.9555
          1.7        0.9933
          1.8        1.0296
          1.9        1.0647
          2.0        1.0986
          Added: this is similar, and related to, the frequent error where people have done a regression of log y on x, get a coefficient of b, and then (mis)interpret this as meaning that a unit change in x is associated with a 100*b percent increase in y. This, too, is based on an approximation that is only valid for b close to 0 (again, it works reasonably well when |b| < 0.1, but rapidly deteriorates outside that narrow range.
          Last edited by Clyde Schechter; 01 Sep 2018, 12:26.

          Comment


          • #6
            I see ... Thank you for these explanations.

            It means that I should use the "normal" version of variation rate I guess.

            Really helpful answers Clyde, thank you !

            Comment

            Working...
            X