# RE: st: RE: Creating a Non-Self Mean (Score)

 From "Nick Cox" To Subject RE: st: RE: Creating a Non-Self Mean (Score) Date Mon, 14 Jul 2008 13:08:45 +0100

```This could be condensed to three lines not four, with perhaps some gain
in clarity.

egen Sum = total(Response), by(Strata)
egen Count = count(Response), by(Strata)
gen MeanOthers = (Sum - Response) / (Count - 1)

In addition there is an -egen- function -sumoth()- in -egenmore- on SSC.

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

Nick Cox

You refer to the count option.

There is a -count- command and a -count()- function for -egen-.

I guess you mean the -count- command. As you say, it is not suitable for
this purpose. But the -count()- function for -egen- is.

In your example, the variable name -SumOthers- might confuse. I'll
rename it:

Obs   Strata  Response  MeanOthers

1      1        3            2
2      1        1
3      1        2
4      2        1
5      2        3
6      1        3

You want

egen Sum = total(Response), by(Strata)
replace Sum = Sum - Response
egen Count = count(Response), by(Strata)
gen MeanOthers = Sum / (Count - 1)

Another way to do it, which is explained in the FAQ cited, is

egen Count = total(Response < .), by(Strata)

For future publications note the tricky singular and plural, from Latin:
one stratum, two or more strata.

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

Chao Yawo

Thanks for the suggestions.  I was able to create (Sum of Others - This
Value), as suggested, hence I have the numerator for creating the Mean
of Others.  However, I am running into a bit of a problem creating the
denominator.

Here is what my data looks like at the moment:

Obs   Strata  SumOthers  MeanOthers

1      1        3            2
2      1        1
3      1        2
4      2        1
5      2        3
6      1        3

The Mean for observation 1 = ([3+1+2+3]-3 / 4 - 1) = 2.

That is, to the get the mean of others, I have to divide the "Sum of
Others - This Value"  by a denominator that counts the "number of
observations within each strata - 1". I looked at the Count option,
however, I realized that it saves it output as a scalar, hence I am
unable to get the denominator required.

> > From: Nick Cox <n.j.cox@durham.ac.uk>

> > This is a FAQ. See
> >
> > FAQ     . . Creating variables recording prop. of the
> other
> > members of a
> > group
> >         4/05    How do I create variables summarizing
> for
> > each
> >                 individual properties of the other
> members
> > of a
> >                 group?
> >
> > http://www.stata.com/support/faqs/data/members.html
> >
> > The key principle for sums is elementary
> >
> > Sum of others = Sum of all - This value
> >
> > And for means correspondingly
> >
> > Mean of others = (Sum of all - This value) / (Number
> in
> > group - 1)
> >
> > Other summary measures are more challenging, but the
> FAQ
> >
> > The only obvious complication is that you want to sum
> > across variables
> > before you summarize across the other members of this
> > group. That will
> > often be easiest through -egen, rowtotal()-.

Chao Yawo

> > I am examining the effect of stigmatizing attitudes of
> > specific health
> > behaviors, using a demographic health survey (DHS).
> DHS
> > respondents were
> > required to indicate (by a YES, NO, DONT KNOW)
> whether:
> >
> > (1) whether they would buy a vegetable from a vendor
> who
> > has HIV, (2)
> > whether they would keep their family member's HIV
> > infection a secret
> > (3) whether they would be willing to care for a
> relative
> > who is infected
> > with HIV
> > (4) wheether a female teacher infected with HIV should
> be
> > allowed to
> > continue teaching in school
> >
> > I want to calculate a summary score that reflects
> community
> > attitude
> > (the attitudes of all members of the community on
> these
> > variables ---
> > that is the score must EXCLUDE those of the
> respondent, and
> > INCLUDE
> > those of all others.  In some literature, this is
> referred
> > to as
> > non-self mean.
> >
> > Since in the DHS, clusters (V022) are the lowest level
> from
> > which a
> > sample of households is drawn (i.e. these are
> typically the
> > primary
> > sampling unit), I want a score based on the responses
> of
> > all people in
> > the same strata (PSU) as the respondent, but excluding
> the
> > respondent's
> > responses. For example, to compute this score for an
> > individual A who
> > resides in PSU B, we sum the stigma scores (over all
> the 4
> > variables) of
> > all individuals in PSU B, with the exceptoin of
> respondent
> > A.
> >
> > I would be very grateful if you could give me some
> pointers