如何获取R中Synth包生成的合成控制结果变量各时期估计值?
获取Synth包合成估计量的各时间点数值
先把
synth()的运行结果存成对象(如果还没存的话):synth.out <- synth(dataprep.out)计算合成控制组各时间点的结果变量估计值:
合成值是对照组结果矩阵和权重矩阵的乘积,用下面的代码计算:synthetic_values <- dataprep.out$Y0 %*% synth.out$solution.w把时间标签和合成值配对,生成易读的数据框:
时间信息存在dataprep.out$time里,合并后就能直接查看每个时间点的具体数值:synthetic_results <- data.frame( 时间 = dataprep.out$time, 合成估计值 = as.vector(synthetic_values) ) print(synthetic_results)如果需要对比处理组真实值和合成值,直接把处理组数据也加进去:
full_results <- data.frame( 时间 = dataprep.out$time, 处理组真实值 = dataprep.out$Y1, 合成估计值 = as.vector(synthetic_values) ) print(full_results)注意:
synth.out$solution.path是预测变量的权重,不是结果变量的时间点估计值,别搞混了。
内容的提问来源于stack exchange,提问作者Edison Jinzo
相关产品推荐
相关产品推荐

