Announcement

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

  • Boone indicator for measuring competition in microfinance

    Hi everyone

    To start, this is my first post on Statalist, so apologies if I miss anything in my post or my post is too detailed!

    I am currently writing my master thesis on the effect of competition, regulation and profit orientation on the social and financial performance of microfinance institutions. To measure the competition I am using the Boone indicator. My sample exists of 9800 observations in total, over the period of 10 years and around 1500 different microfinance institutions (thus I have an unbalanced panel data).
    I am trying to derive the Boone value for every firm for every year (so essentially for every observation), which is estimated by: ln πit=α+β*ln(MCit)+αt*dt+μ.
    where π represents the profit of MFI i at time t (measured with ROA), β is the Boone indicator and d is the time dummy.

    When I conducted the hausman, it tells me to go with random effects (p=1.000).
    Code:
    xtreg lnROA lnMCtime i.year i.firm, fe
    estimates store grunfe
    
    xtreg lnROA lnMCtime i.year i.firm, re
    estimates store grunre
    
    hausman grunfe grunre, sigmamore
    And also when I conduct the Lagrange multiplier test (xttest0) for random effects, I get the p=1.000.

    Code:
    xtreg lnROA lnMCtime i.year i.firm, re
    xttest0
    where lnMCtime is the lnMC*trend variable

    Output:
    Breusch and Pagan Lagrangian multiplier test for random effects

    lnROA[firm,t] = Xb + u[firm] + e[firm,t]

    Estimated results:
    Var sd = sqrt(Var)
    ---------+-----------------------------
    lnROA 1.342632 1.15872
    e .6613944 .8132616
    u 0 0

    Test: Var(u) = 0
    chibar2(01) = 0.00
    Prob > chibar2 = 1.0000

    This indicates that I should go for random effects model, if I am correct?


    So I have to estimate the model and from that I have to estimate the Boone indicator. However, when I try to do that for every year, I do not get it for every year.
    This is the command I eventually use:
    Code:
    xtreg lnROA lnMCtime i.year i.firm, re
    I get the Boone values for every year from 2004 on, while my data is from 2001 on. How can this be the case?
    And in addition, I get the values for every firm. But I would like to have the values for every firm for every year, is that possible to obtain?

    I would really appreciate any help!

    Thanks in advance!

    Best,

    Iris



  • #2
    Welcome to Statalist. You didn't get a quick answer. I appreciate you providing the code and output. Your question is a bit long - do try to pare things down a bit. Also assume we don't know your area.

    If (as I think you should) you set xtset firm year [i.e., identified the panel as firm year data], you cannot include i.firm in the xtreg. The reason you're getting such an odd outcome from Hausman is that there is nothing for the panel effects to explain once you include i.firm in the model. i.firm in the model even with ols gives you results identical to xtreg, fe when the panel is firm.

    I'm not sure what the Boone thing means. In the text it seems like it is a parameter on a variable, but you say you want that parameter to vary for every firm-year. This doesn't make sense - allowing a different parameter for every firm year makes the model unestimable (since that parameter alone will explain all the variation in y by definition).

    So, fix the i.firm in the xtreg, clarify what you really want to estimate in the Boone thing, and get back to us. You might start a new thread.

    Comment


    • #3
      Iris:
      welcome to the list.
      As an aside to Phil's helpful insights, please note that this is a multidisciplinary forum (as reminded by the FAQ): so please provide full reference about Boone (which is familiar to you but obscure to me and, I would assume, to many on the list despite their good wiling to help you out).
      As far as the weird results from -xttest0- and -hausman- are concerned, I find a p-value of 1 after -hausman- quite worrisome about the model specification ( as Phil pointed out, I would consider including both -i.firm.- and -i.time- quite unusual; however, you do not tell us how your data were -xtset-).
      Eventually, I would investigate whether the F-test appearing as a footnote to the -xtreg, fe- outcome table fails to reach statistical significance: if that were the case, a pooled OLS (perhaps with -i.time- among the predictors) can possibly get you where you want to.
      Kind regards,
      Carlo
      (Stata 18.0 SE)

      Comment


      • #4
        Dear Carlo and Phil,

        Thank you for your responses! I appreciate your help on my topic and your guidance on how to post on Stata list. I will try to explain it further, when I don't succeed now I will make a new thread concerning the Boone indicator where I try to use different wording and explain the matter more clearly.
        The Boone indicator measures competition in the market, so for every year and for every firm I would have to estimate the Beta (which is the coefficient when having Stata output, and is proxy for the Boone). The numbers do not necessarily have to change every year, but there should be numbers for every year and every firm (assuming that no missings occur for that firm in that year).

        Originally posted by Phil Bromiley View Post
        I'm not sure what the Boone thing means. In the text it seems like it is a parameter on a variable, but you say you want that parameter to vary for every firm-year. This doesn't make sense - allowing a different parameter for every firm year makes the model unestimable (since that parameter alone will explain all the variation in y by definition).
        In addition, Phil, I was wondering what you mean by this. For the Boone indicator; the Boone indicator is one of my independent variables. I want to look at the effect of competition on the social and financial performance of MFIs, and the Boone indicator is my proxy for competition. So if I have outcomes from my -xtreg- the coefficient values will be taken as value for the Boone. How would that make my model unestimable?

        For the -hausman- and -xttest0- outcomes, my command for xtset is;
        Code:
        xtset firm year
        So I understand now that it would be odd to account for i.firm and i.year in the xtreg, since that is how I specified my panel data. However, how can I otherwise get the outcome for every firm and every year? I already tried to make dummies for the years but that did not work.
        In addition I tried this command, but I assume that would have the same constraints as my other command?
        Code:
        xtreg lnROA lnMCtime yr2001#i.firm, re
        In addition, my F-test appearing in the footnote is significant. However, most of the firms are omitted because of multicollineairity (which might be caused by the fact that I specify my model this way).

        I hope this clears things up a bit! It is hard for me to explain it, since everything makes very much sense for me but it may not for others.

        Thanks again for your help,

        Iris


        Comment


        • #5
          Hello Carlo,

          I would try to explain this question as I am facing the similar problem. I have an unbalanced data of say 10 industries that incorporates several firms (firm is the panel id). The data spans for 20 years. Let us say, in a simplified way;

          I estimate: Yitj = a +Betat(log xitj) +epsilon; where i is firm id, t is time and j represents industry. Here Betat is the Boone Indiactor that represents product market competition for all the firms in a specific year for one industry.


          My purpose is to get this value of Beta for each year, industry wise. Please someone help in this.It is very important for me to get this resolved.



          Comment


          • #6
            Mohina:
            do you mean something along the following lines?
            Code:
            use "http://www.stata-press.com/data/r15/grunfeld.dta", replace
            g industry=1 if company<=5
            replace industry=2 if company>5
            bysort year industry: reg invest mvalue kstock, vce(cluster company)
            ---------------------------------------------------------------------------------------------------------------------
            -> year = 1935, industry = 1
            
            Linear regression                               Number of obs     =          5
                                                            F(2, 4)           =      87.17
                                                            Prob > F          =     0.0005
                                                            R-squared         =     0.8071
                                                            Root MSE          =     80.483
            
                                            (Std. Err. adjusted for 5 clusters in company)
            ------------------------------------------------------------------------------
                         |               Robust
                  invest |      Coef.   Std. Err.      t    P>|t|     [95% Conf. Interval]
            -------------+----------------------------------------------------------------
                  mvalue |   .0986707     .01069     9.23   0.001     .0689904    .1283509
                  kstock |  -.0752358   .3558901    -0.21   0.843    -1.063345    .9128735
                   _cons |   11.26277   35.39116     0.32   0.766    -86.99885    109.5244
            ------------------------------------------------------------------------------
            
            ---------------------------------------------------------------------------------------------------------------------
            -> year = 1935, industry = 2
            
            Linear regression                               Number of obs     =          5
                                                            F(2, 4)           =       2.66
                                                            Prob > F          =     0.1842
                                                            R-squared         =     0.6980
                                                            Root MSE          =      7.617
            
                                            (Std. Err. adjusted for 5 clusters in company)
            ------------------------------------------------------------------------------
                         |               Robust
                  invest |      Coef.   Std. Err.      t    P>|t|     [95% Conf. Interval]
            -------------+----------------------------------------------------------------
                  mvalue |   .0543462   .0634809     0.86   0.440    -.1219051    .2305975
                  kstock |   .0654296    .063664     1.03   0.362    -.1113299    .2421891
                   _cons |   4.127383   11.06661     0.37   0.728    -26.59844    34.85321
            ------------------------------------------------------------------------------
            
            ---------------------------------------------------------------------------------------------------------------------
            -> year = 1936, industry = 1
            
            Linear regression                               Number of obs     =          5
                                                            F(2, 4)           =      25.61
                                                            Prob > F          =     0.0052
                                                            R-squared         =     0.5737
                                                            Root MSE          =     161.25
            
                                            (Std. Err. adjusted for 5 clusters in company)
            ------------------------------------------------------------------------------
                         |               Robust
                  invest |      Coef.   Std. Err.      t    P>|t|     [95% Conf. Interval]
            -------------+----------------------------------------------------------------
                  mvalue |   .0689635    .022866     3.02   0.039     .0054774    .1324495
                  kstock |  -.3732534   .7994167    -0.47   0.665     -2.59279    1.846283
                   _cons |   83.70136   152.3136     0.55   0.612    -339.1889    506.5916
            ------------------------------------------------------------------------------
            
            ---------------------------------------------------------------------------------------------------------------------
            -> year = 1936, industry = 2
            
            Linear regression                               Number of obs     =          5
                                                            F(2, 4)           =       1.44
                                                            Prob > F          =     0.3371
                                                            R-squared         =     0.5400
                                                            Root MSE          =     9.7849
            
                                            (Std. Err. adjusted for 5 clusters in company)
            ------------------------------------------------------------------------------
                         |               Robust
                  invest |      Coef.   Std. Err.      t    P>|t|     [95% Conf. Interval]
            -------------+----------------------------------------------------------------
                  mvalue |   .0429941   .0262893     1.64   0.177    -.0299966    .1159848
                  kstock |   .0443922   .0514938     0.86   0.437    -.0985776     .187362
                   _cons |   6.026905   13.15574     0.46   0.671    -30.49927    42.55308
            ------------------------------------------------------------------------------
            
            ---------------------------------------------------------------------------------------------------------------------
            -> year = 1937, industry = 1
            
            Linear regression                               Number of obs     =          5
                                                            F(2, 4)           =      19.49
                                                            Prob > F          =     0.0087
                                                            R-squared         =     0.4865
                                                            Root MSE          =     205.23
            
                                            (Std. Err. adjusted for 5 clusters in company)
            ------------------------------------------------------------------------------
                         |               Robust
                  invest |      Coef.   Std. Err.      t    P>|t|     [95% Conf. Interval]
            -------------+----------------------------------------------------------------
                  mvalue |   .0697443   .0124017     5.62   0.005     .0353116     .104177
                  kstock |   .2003083   .3884085     0.52   0.633    -.8780866    1.278703
                   _cons |   26.45288   121.3348     0.22   0.838    -310.4265    363.3322
            ------------------------------------------------------------------------------
            
            ---------------------------------------------------------------------------------------------------------------------
            -> year = 1937, industry = 2
            
            Linear regression                               Number of obs     =          5
                                                            F(2, 4)           =       3.51
                                                            Prob > F          =     0.1320
                                                            R-squared         =     0.7371
                                                            Root MSE          =      9.688
            
                                            (Std. Err. adjusted for 5 clusters in company)
            ------------------------------------------------------------------------------
                         |               Robust
                  invest |      Coef.   Std. Err.      t    P>|t|     [95% Conf. Interval]
            -------------+----------------------------------------------------------------
                  mvalue |   .0397972   .0152998     2.60   0.060    -.0026819    .0822762
                  kstock |    .089566    .058423     1.53   0.200    -.0726423    .2517742
                   _cons |   6.211304   11.39503     0.55   0.615    -25.42638    37.84899
            ------------------------------------------------------------------------------
            
            *Displayed outcome covers 1935-1937 timespan*
            Kind regards,
            Carlo
            (Stata 18.0 SE)

            Comment


            • #7
              Thank you so much Carlo, It is a very elegant way of doing it. I am reading about it more so that I can have more clarity regarding the technical concept here and can be more clear in my questions.

              Meanwhile, I need to clarify something, since I am dealing with unbalanced panel data, where each firm is not available in all years unlike the example data set that contains every company's data that is available for equal number of years. So in my data set should I be using xtreg along with fixed effects (I had checked the applicability of RE vs FE through Hausman Test). In that scenario, should I go for:

              bysort year industry: xtreg invest mvalue kstock, fe robust
              Or since this process involves doing regression separately of 1 industry in a specific time period for various cross sectional units, it precisely boils down to simple regression. So we can safely go for OLS. Please shed some light here.

              Also, more importantly, as I have 25 Industries that spans for 20 years, so 25*20 =500 Betas and 500 output tables. Is there any way to put these Betas as one of the Stata columns directly so that all firms in a specific industry for a particular year can have a corresponding Beta tagged to them? Or do I have to fetch it manually from such 500 regression tables (this could be very time consuming) and then create a column.

              Please help!

              regards,

              Mohina

              Comment


              • #8
                Mohina:
                have you taken a look at -statsby-?
                Kind regards,
                Carlo
                (Stata 18.0 SE)

                Comment


                • #9
                  Hello Carlo,

                  Thank you so much. Yes, statsby is the key; solves all.

                  Regards,
                  Mohina

                  Comment


                  • #10
                    Hello all,
                    I am attempting too to estimate a Boone index across 50 states and over 40 quarterly-time periods of an unbalanced panel. My variation is across individual banks. My regression is very similar as in the earlier post (which is copied here for clarity). Estimate: Yitj = a +Betat(log xitj) +epsilon; where here i is bank id, t is time and j represents the state. Betat is the Boone Indicator that represents market competition for all the banks in a specific quarter for one state.

                    The syntax I have is:
                    .xtset id_rssd date, quarterly
                    panel variable: id_rssd (unbalanced)
                    time variable: date, 2010q1 to 2019q4, but with gaps
                    delta: 1 quarter

                    .tempfile results
                    .statsby, saving(`results') by(state_cd date): xtreg profit lncost, fe robust

                    I am running into problems!

                    When I tried:
                    .statsby, saving(`results') by(state_cd): xtreg profit lncost, fe robust
                    I do get the value of Beta for each state (50 beta's) so I am suspecting that my problem in getting the year-state wise beta's is in the defenition of the time id. I am new to Stata, so I have no prior experiance with Panel regressions.
                    This is a sample of the data:

                    id_rssd(long) date(float) dt(long) profit(float) lncost (float) state_cd(str2)
                    37 2010q1 20100331 .001772 6.199535 13
                    37 2010q2 20100630 .0036179 6.854897 13
                    37 2010q3 20100930 .0062348 7.250288 13
                    37 2010q4 20101231 .00734 7.517258 13
                    37 2011q1 20110331 .0013705 6.024779 13
                    37 2011q2 20110630 .0029926 6.697708 13
                    37 2011q3 20110930 .0055623 7.097991 13
                    37 2011q4 20111231 .0059348 7.35022 13
                    37 2012q1 20120331 .0015855 5.839438 13
                    37 2012q2 20120630 .0028474 6.515626 13
                    37 2012q3 20120930 .0038415 6.897328 13
                    37 2012q4 20121231 .0057994 7.153543 13
                    242 2010q1 20100331 .0046575 4.832296 17
                    242 2010q2 20100630 .008056 5.535547 17
                    242 2010q3 20100930 .0140775 5.923023 17
                    242 2010q4 20101231 .0160276 6.189451 17
                    242 2011q1 20110331 .0036305 4.749807 17
                    242 2011q2 20110630 .0067787 5.440682 17
                    242 2011q3 20110930 .011257 5.848109 17
                    242 2011q4 20111231 .0135711 6.115035 17
                    242 2012q1 20120331 .0045096 4.677575 17
                    242 2012q2 20120630 .0075672 5.330699 17
                    242 2012q3 20120930 .0113705 5.722231 17
                    242 2012q4 20121231 .0128181 5.995524 17


                    "dt" was used to create "date" using yd(year, quarter) as in the example above. When I run the regression I have a different beta coefficient for every state and many numbers (maybe underlining the date variable) but it is over 2000 groups, where I should have 50*40 coefficients.

                    Any help or guidance will be greatly appreciated

                    Comment

                    Working...
                    X