Hi, STATA people,
I have 12000 observation. I want to randomly assign a fake treatment value of 1 to the variables but cap different number of treatments to different years.
I want to cap
29 variables in 1990
42 variables in 1991
57 variables in 1992
To be more specific, of all the observations with year = YYYY, randomly assign some stipulated number of the observations to have the treatment variable set at 1, with the remainder set at 0."
I want to repeatedly run my regression command 1000 times while randomly assigning the treatment variable within a year, but keeping the stipulated within-year distribution on the treatment variable. I want to see how my parameter estimates and so forth vary across this random shuffling of the treatment variable.
I tried to simulate but STATA constantly issued --- " error in simulate". Given that I want to randomly shuffle assigning the treatment within years (by putting a cap) so I tried it with permute. However, the problem with permuting is it doesn't allow weights.
I would like to ask if permute is suitable for such a situation and how to go about with the weights as weights are not allowed with permuting. I did try using expand but it didn't work.
Your help is really appreciated
I have 12000 observation. I want to randomly assign a fake treatment value of 1 to the variables but cap different number of treatments to different years.
I want to cap
29 variables in 1990
42 variables in 1991
57 variables in 1992
To be more specific, of all the observations with year = YYYY, randomly assign some stipulated number of the observations to have the treatment variable set at 1, with the remainder set at 0."
I want to repeatedly run my regression command 1000 times while randomly assigning the treatment variable within a year, but keeping the stipulated within-year distribution on the treatment variable. I want to see how my parameter estimates and so forth vary across this random shuffling of the treatment variable.
I tried to simulate but STATA constantly issued --- " error in simulate". Given that I want to randomly shuffle assigning the treatment within years (by putting a cap) so I tried it with permute. However, the problem with permuting is it doesn't allow weights.
I would like to ask if permute is suitable for such a situation and how to go about with the weights as weights are not allowed with permuting. I did try using expand but it didn't work.
Your help is really appreciated
Code:
set matsize 8000, permanently set obs 12000 set seed 8600 generate random=uniform() gen byte treat= . sort year random by year: replace treat= (_n <=29) if (year == 1990) by year: replace treat= (_n <=42) if (year == 1991) by year: replace treat= (_n <=42) if (year == 1992) permute treat bt = _b[treat] se = _se[treat] p_value = (2*ttail(e(df_r), abs(_b[treat]/_se[treat])))r2 = e(r2), /// reps(1000) strata(year) saving("OutputFile.dta"): /// reg wheat treat i.country_id i.year i.country_id#c.line_time_trend [aw=ypop], cluster( country_id) clear use "OutputFile.dta"