Announcement

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

  • Loop over all possible pairs of (g, t)

    Hello, I am having some trouble writing a loop and would greatly appreciate any help.

    I would like to create a loop where g takes the values from yexp2: 2014, 2015, 2016, 2017, 2019, 3000. And t is a year indicator where 2008<=t<=2019.

    *****
    For each pair of (g, t), I would like to do the following:

    sum dins if year == (t-1) & treated==0 & yexp2=g
    loc dins0_g_(t-1) = r(mean)

    sum dins if year == t & treated==0 & yexp2=g
    loc dins_0_g_t = r(mean)

    sum dins if year == (t-1) & treated == 1 & yexp2=g
    loc dins_1_g_(t-1) = r(mean)

    sum dins if year == t & treated == 1 & yexp2=g
    loc dins_1_g_t = r(mean)

    loc att_g_t = (`dins_1_g_t' - `dins_1_g_(t-1)') - (`dins_0_g_t' - `dins_0_g_(t-1)')
    disp "ATT(g, t): `att_g_t'"
    ******

    I have the following but Stata won't produce anything:

    local t_start 2008
    local t_end 2019
    foreach g of local yexp2 {
    forval t = `t_start'/`t_end' {

    sum dins if year == (`t'-1) & treated == 0 & yexp2 == `g'
    loc dins0`g'`t-1' = r(mean)

    sum dins if year == `t' & treated == 0 & yexp2 == `g'
    loc dins0`g'`t' = r(mean)

    sum dins if year == (`t'-1) & treated == 1 & yexp2 == `g'
    loc dins1`g'`t-1' = r(mean)

    sum dins if year == `t' & treated == 1 & yexp2 == `g'
    loc dins1`g'`t' = r(mean)

    loc att_g_t = (dins1`g'`t' - dins1`g'`t-1') - (dins0`g'`t' - dins0`g'`t-1')

    di "ATT(g, t): `att_g_t'"
    }
    }
Working...
X