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

R语言构建多变量依赖的条件概率表(CPT)实现方法咨询

R语言实现三依赖变量的条件概率表(CPT)构建

你要构建的P(A|G,Q,D)属于4维概率数组,逻辑和你已掌握的单依赖CPT完全一致,仅需扩展数组维度即可:

  1. 维度顺序默认按「结果变量在前,条件变量在后」排列,对应维度数值为:A(2个取值) × G(2个取值) × Q(2个取值) × D(4个取值)
  2. 数组内概率按维度顺序依次填充,每组条件下的录取、拒绝概率之和需为1

示例代码

# 变量取值定义(你已有的定义可直接复用)
A.lv <- c("录取", "拒绝")
G.lv <- c("M", "F")
Q.lv <- c("Q", "U")
D.lv <- c("A", "B", "C", "D")

# 构建P(A|G,Q,D)数组
A.prob <- array(
  # 按维度顺序依次填充:[A,G,Q,D],每组条件对应(录取概率,拒绝概率)
  data = c(
    0.9, 0.1, 0.8, 0.2, 0.7, 0.3, 0.6, 0.4, # G=M, Q=Q 四个部门的概率
    0.3, 0.7, 0.2, 0.8, 0.1, 0.9, 0.05, 0.95, # G=M, Q=U 四个部门的概率
    0.95, 0.05, 0.85, 0.15, 0.75, 0.25, 0.65, 0.35, # G=F, Q=Q 四个部门的概率
    0.35, 0.65, 0.25, 0.75, 0.15, 0.85, 0.1, 0.9 # G=F, Q=U 四个部门的概率
  ),
  dim = c(2, 2, 2, 4),
  dimnames = list(
    A = A.lv,
    G = G.lv,
    Q = Q.lv,
    D = D.lv
  )
)

# 展平为二维表查看核对
ftable(A.prob, row.vars = c("G", "Q", "D"), col.vars = "A")

核对输出示例

运行上述ftable代码后,会输出易读的条件概率表:

A   录取   拒绝
G Q D                
M Q A       0.90 0.10
    B       0.80 0.20
    C       0.70 0.30
    D       0.60 0.40
  U A       0.30 0.70
    B       0.20 0.80
    C       0.10 0.90
    D       0.05 0.95
F Q A       0.95 0.05
    B       0.85 0.15
    C       0.75 0.25
    D       0.65 0.35
  U A       0.35 0.65
    B       0.25 0.75
    C       0.15 0.85
    D       0.10 0.90

你可以根据实际业务的概率值替换data参数内的数值即可,只要保证每组条件下两个概率之和为1就能正常使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 09:39:03