在使用ebal创建平衡表时获得0和t测试以及KS测试pvalues

时间:2018-05-05 04:07:42

标签: r matching balance

我尝试使用此代码创建余额表:

library(ebal)
library(matching)
mout <- MatchBalance(DV ~ someIVs, data=dataset)
balance.test <- baltest.collect(matchbal.out=mout, var.names=colnames(dataset)[-c(unnecessary_variables)], after=FALSE)
balance.test

bal.output <- round(balance.test[,c("mean.Tr","mean.Co","T pval","KS pval")],2)
stargazer(bal.output,title = "Balance Test on Olken Data", type = "text")

现在我已将此代码用于其他数据,并且工作正常。然而,这一次,我收到了有意义的&#34; mean .Tr&#34; (治疗的意思)和&#34; mean.Co&#34; (对照的平均值)但t检验和KS检验的p值报告为0。一些KS测试p值被报告为NA或(作为观察者输出它们)作为空白单元。

输出表如下所示:

Balance Test

         mean.Tr   mean.Co   T pval KS pval

IV1      25.820     34.850       0       0   
IV2      10.350     12.120       0       0   
IV3      0.840      0.250        0           
IV4      0.060      0.030        0.130         
IV5      0.190      0.870        0           
IV6      2,095.570  19,428.750   0       0   
IV7      1,532.060  19,063.340   0       0   
IV8      0.710      0.090        0           
IV8      0.600      0.100        0           

我知道上传一些样本数据是最容易的,但不幸的是,我不能用伪造的数据复制这个结果。因此,我的问题是,我的数据(或我的代码)中可能会导致此行为?

1 个答案:

答案 0 :(得分:1)

因此经过大量的谷歌搜索后,我发现平衡测试中的0只是极低p值的结果。空白/ NA是KS测试不适用于虚拟变量的结果(我想我应该已经明确空白只显示虚拟变量)。

不幸的是,我仍然不明白为什么KS测试不能为二元变量产生有意义的p值。二元变量也有分布,不是吗?如果一个二进制变量的分布与另一个二进制变量的分布相匹配,为什么不能进行KS测试呢?

即使我已经回答了我自己的问题,我仍然会对这个问题的回答表示赞赏。