You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用twang包构建倾向得分时遇non-conformable arrays错误求助

解决twang包ps函数报错:non-conformable arrays

这个错误源于矩阵维度不匹配,twang在计算诊断统计量时无法完成数组运算。结合你的情况,按以下步骤排查:

1. 检查处理变量与样本分布

首先确认处理变量Cardioversione的分组样本量:

table(prova$Cardioversione)

如果其中一组样本量≤1,会直接导致后续矩阵计算维度不兼容,这是最常见的原因。你需要确保处理组和对照组都有足够样本(至少2个以上)。

2. 验证协变量的有效性

  • 检查因子变量Sesso的水平数:
table(prova$Sesso)

如果Sesso只有单一水平,它对倾向得分建模无意义,反而会干扰矩阵运算,建议移除该变量后重试。

  • 确认age的数值类型:用str(prova$age)检查,确保它是numeric而非character类型。

3. 调整ps函数参数

默认的10000棵树可能过度拟合,且步长设置可能不适合小样本。尝试调整参数:

ps.TPSV.gbm = ps(Cardioversione ~ Sesso + age,
                 data = prova,
                 n.trees = 5000,  # 减少树数量
                 interaction.depth = 1,  # 限制交互深度,适合少变量场景
                 shrinkage = 0.001)  # 减小步长

4. 逐步简化模型排查

先只用单一协变量建模,确认基础模型是否正常:

# 先仅用age
ps_test = ps(Cardioversione ~ age, data = prova)
# 再加入Sesso
ps_test2 = ps(Cardioversione ~ Sesso + age, data = prova)

如果单一变量模型正常,多变量报错,说明协变量组合存在隐性维度冲突,可尝试对Sesso重新编码:

prova$Sesso = as.factor(prova$Sesso)  # 强制转为因子,确保是两水平

5. 更新twang包

旧版本twang可能存在小样本场景下的bug,更新到最新版本:

update.packages("twang")

内容的提问来源于stack exchange,提问作者Lorenzo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 01:00:55