我正在尝试使用可从以下网站获得的Texas.dta进行合成控制和安慰剂测试:
https://www.scunning.com/mixtape.html
我下载了合成文件texas13.dta,并使用readstata13
包进行了读取。到目前为止一切都很好。
我使用dataprep
创建了运行synth
所需的数据,因此以后可以使用generate.placebos
函数。后一个功能就是问题:
-我正在使用以下软件包:
install_github('bcastanho/SCtools')
library(SCtools)
这是创建用于随机推理的安慰剂的必需库。
当我尝试运行generate.placebos(基本上我认为这只是控件之间的排列)时,出现错误:
Error in svd(c) : infinite or missing values in 'x'
似乎仅在某些特定状态下会发生,因为它会在一系列排列后弹出。
我尝试更改正在使用的状态(即排除其中的某些状态)
我也手动地尝试了一次而不是使用安慰剂功能,而且在某些州(例如密歇根州)也中断了
dataprep.out = dataprep(
foo = texas,
predictors = c("income", "ur", "poverty"),
predictors.op = "mean",
time.predictors.prior = c(1985:1993),
special.predictors = list(
list("bmprison", c(1990,1992,1991,1988), "mean"),
list("alcohol", 1990, "mean"),
list("aidscapita", c(1990,1991), "mean"),
list("bmprison", c(1988,1990:1992), "mean"),
list("alcohol", 1990, "mean"),
list("aidscapita", 1990:1991, "mean"),
list("black", 1991:1992, "mean"),
list("perc1519", 1990, "mean")),
dependent = "bmprison",
unit.variable = "statefip",
unit.names.variable = "state",
time.variable = "year",
treatment.identifier = 48,
controls.identifier = statefiplist[!statefiplist %in% 48],
time.optimize.ssr = 1985:1993,
time.plot = 1985:2000
)
synth.out = synth(dataprep.out)
placebos = generate.placebos(dataprep.out, synth.out)
预期输出将包含我可以绘制的安慰剂数据。