我正在使用ps()包的倾向评分加权twang函数来平衡两组在许多方面不同的活跃劳动力市场计划参与者。其中一个不同之处在于,为了这个问题,我将教育水平重新划分为两个层次:一个是至少接受小学教育的人,另一个是接受过最多小学教育的人。
当我将此变量作为因子包括时:
ALMP$Education_f2 = factor(ALMP$Education_f2, levels = c(„at.least.primary“, „at.most.primary“), ordered = TRUE)R在迭代期间开始抱怨Chi-squared approximation may be incorrect。
当我将教育变量包含为整数时
ALMP$Education_int = as.integer(ALMP$Education_int)没有任何警告。
Griffin等人说这里说twang包可以处理分类变量:
没有必要在公式中指定交互条件。也没有必要--而且可能适得其反--创建表示分类协变量的指示符或“虚拟编码”变量,前提是将分类变量存储为一个因子或按顺序存储(更多细节请参见帮助(因子))。
如果这是真的,那R为什么要抱怨呢?这是我该担心的吗?
我还读过这里,通常情况下,如果任何类别的观察结果少于5个,则奇方会抱怨。这不是我的情况,因为如果我在教育和课程类型上运行一个(2x2)交叉选项卡,一个分组的参与者的最低比例是2810 (占所有案例的8%)。
当然,我可以将教育变量保持为整数(0/1),但我提出这个问题是因为,如果可能的话,我想对这个变量进行细化,并将它包含在两个以上的层次(例如:没有教育、小学、中学、高等教育),在那里显然一个整数变量将不再起作用。
我在数据框架中总共有大约35000个观察,并且正在使用3.4.2。在Windows7Professional (x64)上的R (x64)版本。
这些数据来自带有一些保密规则的公共注册表数据库,因此遗憾的是,我无法共享它,但我很乐意更详细地描述任何有助于澄清情况的特性。
先谢谢你。
发布于 2018-06-01 11:48:55
我想我已经找到问题了。我正在使用R,这与我是用还是用R脚本编写代码有关。
只有当我将一个因子变量传递给R Markdown中的ps函数时,问题才会发生,如下所示:
library(twang)
data("lalonde")
lalonde$college = ifelse(lalonde$educ<13, 0, 1)
lalonde$college_f = factor(lalonde$college, ordered = TRUE)
ps.lalonde_f = ps(treat ~ age + college_f + black + hispan + nodegree + married + re74 + re75,
data = lalonde,
n.tree = 1000,
interaction.depth = 2,
shrinkage = 0.01,
perm.test.iters = 0,
stop.method = c("es.mean", "ks.max"),
estimand = "ATT",
verbose = FALSE)当我将college_f参数替换为ps()函数中的数字college时,就不再收到卡方警告。另外,如果我只是将上面的代码传递给一个R脚本,那么警告也不会出现。
(我使用的是版本1.1.442。)
https://stackoverflow.com/questions/50452989
复制相似问题