问题描述
我有一个包含 3465 个观察值和 5 个变量的数据集,如下(命名为:数据集)
变量
$ Treat --> factor(3 level: "1","2","3")
$ Age --> 整数(例如 24,54 等)
$ Mortality --> integer(0=no,1= yes)
$ LDL --> 整数(例如 200,120,143 等)
$ 吸烟 --> 整数(0=否,1= 是)
我在 twang 包中使用了 mnps 函数来根据treat 对我的观察进行加权
mnps 代码
mnps.dataset <- mnps(treat ~ Age + LDL + Smoking,data = dataset,estimand = "ATE",stop.method = c("es.mean","ks.mean"),n.trees=3000)
`` ### 阴谋 ###
然后我使用plot函数来评估加权后的数据的平衡。
图 1 和图 2 没有问题(平衡每次迭代的处理和处理的倾向得分分布。)
情节代码
plot(mnps.dataset,plots = 1)
plot(mnps.dataset,plots = 2)
但是当我想为绝对标准化差异运行图 3 时,它出现了一些警告和一个空图的错误:
警告错误
plot(mnps.dataset,plots = 3)
警告信息:
1: In order(as.numeric(x)) : NAs introduced by coercion
2: In split(as.numeric(x) [ord],gg[ord]) : NAs introduced by coercion
3: ...(same as error 1)
4: ... (same as error 2)
5: ... (same as error 1)
6: ... (same as error 2)
7: ... (same as error 1)
8: ... (same as error 2)
9: In panel.superpose(x,y,type = type,groups = groups,... : NAs introduced by coercion
10: ...
11: ...
12: ...
___________________
注意:“...”表示重复之前的错误
Image of empty plot generated by mnps plot=3
解决方法
这是 twang
中的一个错误(我能够在我自己的数据集上复制它)。对此您无能为力。
您可以改用 cobalt
包,它有助于平衡检查并与来自 twang
的对象兼容。传达与类型 3 情节相同信息的情节是爱情情节,可以使用 love.plot()
中的 cobalt
调用。
如果您运行 love.plot(mnps.dataset,which.treat = .all)
,您可以看到所有成对比较的标准化平均差异。有关如何使用它的详细信息,请参阅 multi-category treatments 上的 cobalt
小插图中的部分。