Announcement

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

  • Calculating Adult Equivalence Scale

    Dear all
    I need to calculate Adult Equivalence Scale to calculate cal intake per adult. How can I get number of adults per household if I have ages of all household members
    data is like

    household age gender
    1111100101 37 2
    1111100101 12 2
    1111100101 9 1
    1111100101 7 1
    1111100101 5 2
    1111100101 3 2
    1111100101 1 1
    1111100102 42 1
    1111100102 13 1
    1111100102 38 2
    1111100103 30 2
    1111100103 5 1
    1111100103 3 1

    label gender 1 "male", 2 "female"

    nad = 0.68nc0-5 + 0.71nc5-10 + 0.91nm10-15 + 1.07nm15-25 + nm25-65 + 0.85nmg65 + 0.88nf10-15 + 0.83nf15-25 + 0.85nf25-40 + 0.74nfg40.

    Where
    nad = Adult Equivalent Household size.
    nc0-5 = No. of Children between the age of 0 and 5
    nc5-10 = No. of Children between the age of 5 and 10.
    nm10-15 = No. of Male between the age of 10 and 15.
    nm15-25 = No. of Male between the age of 15 and 25.
    nm25-65 = No. of Male between the age of 25 and 65.
    nmg65 = No. of Male the age greater than 65.
    nf10-15 = No. of Female between the age of 10 and 15.
    nf15-25 = No. of Female between the age of 15 and 25.
    nf25-40 = No. of Female between the age of 25 and 40.
    nfg40 = No. of Female the age greater than 40.

    Thank you


  • #2
    Here is some simple code that may do what you need.
    Code:
    * Example generated by -dataex-. To install: ssc install dataex
    clear
    input str10 household int(age gender)
    "1111100101" 37 2
    "1111100101" 12 2
    "1111100101"  9 1
    "1111100101"  7 1
    "1111100101"  5 2
    "1111100101"  3 2
    "1111100101"  1 1
    "1111100102" 42 1
    "1111100102" 13 1
    "1111100102" 38 2
    "1111100103" 30 2
    "1111100103"  5 1
    "1111100103"  3 1
    end
    label values gender mf
    label def mf 1 "male", modify
    label def mf 2 "female", modify
    
    generate ae = .
    replace ae = 0.68 if inrange(age,0,5)
    replace ae = 0.71 if inrange(age,6,10)
    replace ae = 0.91 if inrange(age,11,15) & gender==1
    replace ae = 1.07 if inrange(age,16,25) & gender==1
    replace ae = 1.00 if inrange(age,26,65) & gender==1
    replace ae = 0.85 if inrange(age,65,999) & gender==1
    replace ae = 0.88 if inrange(age,11,15) & gender==2
    replace ae = 0.83 if inrange(age,16,25) & gender==2
    replace ae = 0.85 if inrange(age,26,40) & gender==2
    replace ae = 0.74 if inrange(age,41,999) & gender==2
    assert ae!=.
    
    generate seq = _n
    bysort household: egen nad = total(ae)
    sort seq
    drop seq
    list, sepby(household) noobs
    Code:
    . list, sepby(household) noobs
    
      +----------------------------------------+
      |  household   age   gender    ae    nad |
      |----------------------------------------|
      | 1111100101    37   female   .85   5.19 |
      | 1111100101    12   female   .88   5.19 |
      | 1111100101     9     male   .71   5.19 |
      | 1111100101     7     male   .71   5.19 |
      | 1111100101     5   female   .68   5.19 |
      | 1111100101     3   female   .68   5.19 |
      | 1111100101     1     male   .68   5.19 |
      |----------------------------------------|
      | 1111100102    42     male     1   2.76 |
      | 1111100102    13     male   .91   2.76 |
      | 1111100102    38   female   .85   2.76 |
      |----------------------------------------|
      | 1111100103    30   female   .85   2.21 |
      | 1111100103     5     male   .68   2.21 |
      | 1111100103     3     male   .68   2.21 |
      +----------------------------------------+

    Comment


    • #3
      Thank you dear
      and extremely very sorry for such a late response

      Comment


      • #4
        Nadeem Sarwar could you please share you do file?

        Comment

        Working...
        X