【问题标题】:Chi-square warning in propensity score weighting倾向得分加权中的卡方警告
【发布时间】:2018-10-31 08:30:52
【问题描述】:

我正在使用twang 软件包的倾向得分加权ps() 函数来平衡两组在许多方面不同的积极劳动力市场计划 (ALMP) 参与者。差异之一是教育水平,为了这个问题,我将其重新编码为两个级别:一个值适用于至少受过小学教育的人,另一个适用于至少受过小学教育的人。

当我将这个变量作为因素包括在内时:

 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)

R 不发出警告。

Griffin 等人说 here twang 包可以处理分类变量:

公式中无需指定交互项。那里 也没有必要——而且可能适得其反——创造 表示分类的指标或“虚拟编码”变量 协变量,前提是分类变量存储为一个因子 或按顺序(有关详细信息,请参阅帮助(因子))。

如果这是真的,那么为什么 R 会抱怨呢?这是我应该担心的事情吗?

我还读到here,作为一般规则,如果任何类别的观测值少于 5,卡方就会抱怨。这不是我的情况,因为如果我对教育和项目类型运行 (2x2) 交叉表,则一个子组中参与者的最小份额为 2810(占所有案例的 8%)。

当然,我可以将教育变量保留为整数 (0/1),但我提出这个问题是因为,如果可能的话,我想改进变量并将其包含在两个以上的级别中(例如:没有教育,小学,中学,大学),显然整数变量将不再起作用。

我在数据框中总共有大约 35,000 个观察值,并且正在使用 3.4.2。 Windows 7 Professional (x64) 上的 R (x64) 版本。

数据来自具有一些保密规则的公共注册数据库,所以很遗憾我不能分享它,但很高兴更详细地描述任何有助于澄清情况的功能。

提前非常感谢您。

【问题讨论】:

  • 您不需要分享您的数据,但您应该努力分享一个最少的、可重现的问题示例。
  • 是的,我正在研究它,但我想请您耐心等待,因为我需要了解如何在两组中重新创建具有不同偏态分布的样本协变量。谢谢!
  • 抱歉,我一直在尝试重新编码我的数据集,以便我可以将匿名版本发布到 SO,当我在我的新 df 上重新运行 ps 函数时,警告没有再次出现。我不明白发生了什么。 (我的旧 dfs 和新 dfs 的一个区别是前者包含一个带有东欧变音符号的字符串变量 - 也许这可能会导致问题?)无论如何,现在一切都很好。请让我知道我是否应该对这篇文章做任何事情。我不想收到反对票。感谢您的理解。
  • 别担心,我很高兴你已经解决了。 ;)

标签: r ps chi-squared gbm


【解决方案1】:

我想我找到了问题所在。我正在使用 R Studio,这与我是用 R Markdown 还是 R Script 编写代码有关。

只有当我将因子变量传递给 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)

当我在 ps() 函数中将 college_f 参数替换为数字 college 时,我不再收到卡方警告。另外,如果我只是将上述代码传递给 R 脚本,也不会出现警告。

(我使用的是 R-Studio 版本 1.1.442。)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多