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

多数值响应变量场景下stablelearner包stabletree函数报错如何处理

核心报错原因

你拟合的是双响应变量的ctree模型,stablelearner包的stabletree()虽然可以成功生成稳定性计算对象,但内置的summary()和barplot()方法暂未适配多响应树模型的后处理逻辑,无法正确提取数值型稳定性指标,因此触发上述报错。

解决方法

路径1:拆分单响应模型分别评估(推荐)

分别为两个响应变量拟合独立的单输出ctree,再做稳定性分析,可直接使用内置的后处理函数:

# 拟合DensitePf对应的单响应树模型
paluTree.pf <- partykit::ctree(I(DensitePf^.25) ~ Age + sexe + Temperature + Moustiquaire + Objet_gites + PrvPalu + RetenuEau + IndVegetation,
                              data = subset.df,
                              minsplit = 75,
                              minbucket = 75,
                              maxdepth = 4)
# 评估单响应模型稳定性
diag.pf <- stablelearner::stabletree(paluTree.pf, B = 100)
# 正常运行统计输出和可视化
summary(diag.pf)
barplot(diag.pf)

# 同理处理DensitePm对应的模型
paluTree.pm <- partykit::ctree(I(DensitePm^.25) ~ Age + sexe + Temperature + Moustiquaire + Objet_gites + PrvPalu + RetenuEau + IndVegetation,
                              data = subset.df,
                              minsplit = 75,
                              minbucket = 75,
                              maxdepth = 4)
diag.pm <- stablelearner::stabletree(paluTree.pm, B = 100)
summary(diag.pm)
barplot(diag.pm)

路径2:保留多响应模型,手动提取结果

如果必须保留多响应模型的联合拟合结构,可直接从stabletree返回的对象中提取原始稳定性数据,自行计算指标和绘图:

# 查看稳定树对象的原始结果结构
str(diag.stabilite)
# 提取变量稳定性的原始统计值
var_stab <- diag.stabilite$vartab
# 手动处理后绘制稳定性柱状图
barplot(var_stab$similarity, names.arg = rownames(var_stab), las = 2)
注意事项
  • 运行前先检查建模用的subset.df是否存在缺失值,缺失值会导致重采样过程中生成无效树结构,也会触发同类报错。
  • 调试阶段可将重采样次数B调低到20,确认流程通畅后再调整为100或更高的数值,减少等待时间。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 19:45:03