Stata The Stata listserver
[Date Prev][Date Next][Thread Prev][Thread Next][Date index][Thread index]

RE: st: Generate a new variable [four firm concentration ratio]


From   "Nick Cox" <n.j.cox@durham.ac.uk>
To   <statalist@hsphsun2.harvard.edu>
Subject   RE: st: Generate a new variable [four firm concentration ratio]
Date   Tue, 22 Nov 2005 13:27:29 -0000

I think you just need to change the 
variable names and how many of the 
first so many sorted variables you loop 
over with -forval-. 

I am currently extending -rowsort- to 
treat missings temporarily as a user- 
assigned value. 

Nick 
n.j.cox@durham.ac.uk 

ALICE DOBSON
 
> Thanks a lot Nick.
> This program calculates fourfirm concetration ratio in case 
> where there are 
> at least four data points available. Additionally, in cases 
> where there is 
> only one, two or three data point it returns a value of 100% for 
> "firstfour".  This is misleading because it gives a four firm 
> concentration 
> ratio as 100% whereas there are actually only one, two, or 
> three firms. I 
> would therefore like to have four different outcomes.
> How can I then obtain four different outcomes: "firstfour", 
> "firstthree", 
> "firsttwo", and "firstone" in case of rows with (a) four or 
> more firms, (b) 
> three firms, (c) two, and (d) one firm respectively.
 
Nick Cox

> >The line within the loop should be
> >
> >replace firstfour = firstfour + s`i' if s`i' >= 0

Nick Cox

> > > I think I follow some of this, although I cannot
> > > reproduce the capricious behaviour you seem
> > > to imply here. I would like to see a copy of
> > > (a subset of) your data that apparently produces
> > > this problem. Strictly, it implies a bug in Stata's
> > > -numlist- command, which does the sorting here.
> > >
> > > The help for -rowsort- indicates that missing values
> > > are allowed. If you sort seven values, some of which
> > > are missing, the missing values will not disappear!
> > > (Or did you expect they would?) Following usual Stata
> > > rules they will be sorted to high values.
> > >
> > > You are correct that this then will not be what you want.
> > >
> > > One way round this is to use -mvencode- to map
> > > missings to some negative number, say -999, presuming
> > > that is not a legitimate number of consumers. These
> > > will always sort lower than any legitimate number.
> > > Then the sum of the first four firms should trap
> > > any -999. However, if any of the first four firms
> > > is missing, and so mapped to -999, then the concentration
> > > ratio should presumably be 100%.
> > >
> > > drop s1-s7
> > > mvencode F?mt, mv(-999)
> > > rowsort F?_mt, gen(s1-s7) descend
> > >
> > > replace firstfour = 0
> > > forval i = 1/4 {
> > > 	replace firstfour = s`i' if s`i' >= 0
> > > }
> > > replace firstfour = 100 * firstfour / CONSUM_mt
> > >
> > > mvdecode F?mt, mv(-999)
> > >
> > > Nick
> > > n.j.cox@durham.ac.uk
> > >
> > > ALICE DOBSON
> > >
> > > > Thanks Nick. It works selectively as I am not getting
> > > > "firstfour" for all
> > > > rows.
> > > > This is probably because the rows have values for one to
> > > > seven firms and not
> > > > for all seven firms
> > > > Further, I checked the data editor and see that in such cases
> > > > where the data
> > > > is avaiable for less than seven firms the command arranges
> > > > the top four
> > > > values s1-s4 (arbitrarily) in columns for say s3-s6
> > > > Hence, I do not get firstfour for all such cases
> > >
> > > > >From: n j cox <n.j.cox@durham.ac.uk>
> > > > >Reply-To: statalist@hsphsun2.harvard.edu
> > > > >To: statalist@hsphsun2.harvard.edu
> > > > >Subject: Re: st: Generate a new variable [four firm
> > > > concentration ratio]
> > > > >Date: Mon, 21 Nov 2005 21:31:19 +0000
> > > > >
> > > > >If the number of consumers is integer, then
> > > > >just install -rowsort- from SSC.
> > > > >
> > > > >rowsort F?_mt, gen(s1-s7) descend
> > > > >gen firstfour = 100 * (s1 + s2 + s3 + s4) / CONSUM_mt
> > > > >
> > > > >Nick
> > > > >n.j.cox@durham.ac.uk
> > > > >
> > > > >ALICE DOBSON
> > > > >
> > > > >I use stata 9.1
> > > > >
> > > > >I have an unbalanced panel data of the type:
> > > > >
> > > > >geographical region (m = 1..1154)
> > > > >year (t = 1..7)
> > > > >
> > > > >with the following variables:
> > > > >
> > > > >total number of consumers in each region (CONSUM_mt)
> > > > >total number of consumers of seven firms in each region
> > > > (F1_mt, F2_mt,
> > > > >F3_mt, F4_mt, F5_mt, F6_mt, F7_mt)
> > > > >
> > > > >
> > > > >I want to calculate the four firm concentration ratio for
> > > > each region,
> > > > >C4_mt, which is the proportion of the number of consumers of
> > > > top four firms
> > > > >to the total number of consumers in that region, in percentage
> > > > >
> > > > >Could anyone be kind enough to help me with this simple
> > > calculation?
> > > > >
> > > > >GEOGREGN YEAR CONSUM F1 F2 F3 F4 F5 F6 F7 C4
> > > > >M1 1969
> > > > >M1 1970
> > > > >M1 1971
> > > > >M1 1972
> > > > >M1 1973
> > > > >M1 1974
> > > > >M1 1975
> > > > >M2 1969
> > > > >M2 1970
> > > > >M2 1971
> > > > >M2 1972
> > > > >.
> > > > >.

*
*   For searches and help try:
*   http://www.stata.com/support/faqs/res/findit.html
*   http://www.stata.com/support/statalist/faq
*   http://www.ats.ucla.edu/stat/stata/



© Copyright 1996–2014 StataCorp LP   |   Terms of use   |   Privacy   |   Contact us   |   What's new   |   Site index