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

R语言MSM包设置不同sex协变量时qmatrix.msm输出一致问题

你遇到的问题核心是qmatrix.msm的covariates参数取值与数据集中sex变量的实际类型、取值不匹配,函数无法识别你传入的自定义值,会默认采用协变量的均值/参考水平计算,因此两次调用返回的矩阵完全一致。

排查与解决步骤
  1. 确认sex变量的类型和取值
    运行以下代码查看数据集中sex的结构:
str(panel_data$sex)

根据输出结果调整调用方式:

  • 若为数值型(通常0编码男性、1编码女性):你传入的字符型"M"、"F"会被忽略,改为传入对应数值即可:
# 0对应男性、1对应女性的场景
qmatrix.msm(model_object, covariates = list(sex = 0))
qmatrix.msm(model_object, covariates = list(sex = 1))
  • 若为因子型:检查因子水平是否与你传入的"M"、"F"完全匹配,大小写、前后空格都会被判定为不同取值,需传入和水平完全一致的内容。
  • 若为字符型:先确认取值和你传入的"M"、"F"完全匹配,也建议先将该变量转为因子型后重新拟合模型,减少后续参数提取的匹配错误。
  1. 验证模型协变量纳入结果
    运行print(model_object)查看模型输出的sex协变量系数,确认系数值和hazard.msm返回的风险比匹配(风险比=exp(协变量系数)),确保协变量确实成功纳入模型。
可选优化

如果上述排查无问题,可在调用qmatrix.msm时显式指定ci = "none"参数,排除置信区间计算的干扰:

qmatrix.msm(model_object, covariates = list(sex = "M"), ci = "none")
qmatrix.msm(model_object, covariates = list(sex = "F"), ci = "none")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 12:39:04