Вот пример с MCVE.
Как объяснено в файле справки, pre_limit_mult(K)
исключит состояния плацебо из логического вывода , если качество совпадения этого состояния (измеренное по среднеквадратичной прогнозной ошибке до обработки) больше K раз соответствие качества обработанной единицы. Это не влияет на то, какие линии плацебо наносятся на график, а только снижает значения p.
Однако вы можете просто отбросить те, которые вы не хотите показывать на графике, например:
use "smoking.dta", clear
tsset state year
local K = 2 // pre_limit_mult factor
/* all 38 placebos */
synth_runner cigsale beer(1984(1)1988) lnincome(1972(1)1988) retprice age15to24 cigsale(1988) cigsale(1980) cigsale(1975), trunit(3) trperiod(1989) gen_vars
di e(n_pl) // The number of placebo averages used for comparison
di e(avg_pre_rmspe_p) // The proportion of placebos that have a pre-treatment RMSPE at least as large as the average of the treated units
single_treatment_graphs
graph export "raw_all.pdf", name(raw) replace
drop pre_rmspe post_rmspe lead effect cigsale_synth
/* same as above, but p-values change when we exclude 17 states */
synth_runner cigsale beer(1984(1)1988) lnincome(1972(1)1988) retprice age15to24 cigsale(1988) cigsale(1980) cigsale(1975), trunit(3) trperiod(1989) gen_vars pre_limit_mult(`K')
di e(n_pl) // The number of placebo averages used for comparison
di e(avg_pre_rmspe_p) // The proportion of placebos that have a pre-treatment RMSPE at least as large as the average of the treated units
single_treatment_graphs
graph export "raw_all2.pdf", name(raw) replace
/* exclude 17 states from graph */
preserve
sum pre_rmspe if state=="California":state, meanonly
gen in_sample = cond(pre_rmspe < = r(mean)*`K',1,0)
distinct state if in_sample == 1 // CA is counted as in sample, so this matches 21 above
drop if in_sample == 0
single_treatment_graphs
graph export "raw_limited.pdf", name(raw) replace
restore
Альтернативой может быть написание оболочки для графовых команд, которая сделает это за вас и примет опцию if
. Может стоить ваших усилий, если вы планируете делать это много.
Возможно, вам потребуется ssc install distinct
, поскольку это пользовательская команда.