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

从离散观测参数推断连续潜在参数的Stan实现方法问询

离散化连续潜在参数模型的Stan实现

我们要实现的是一类观测值由连续潜在参数离散化得到的模型,具体例子如下:
观测值$J_i$与潜在变量$L_i$满足映射关系:

J_i = 1  当 L_i >= 1
J_i = -1 当 L_i < -1
J_i = 0  当 -1 <= L_i < 1

其中潜在变量$L_i = \mu + \epsilon_i$($\epsilon_i$默认取标准正态分布,可按需调整),目标是推断参数$\mu$。

完整Stan代码

data {
  int<lower=0> N;  // 观测样本量
  int<lower=-1, upper=1> J[N];  // 离散观测值
}

parameters {
  real mu;  // 待推断的参数
}

model {
  // 先验分布:可根据实际需求调整,此处为弱信息先验
  mu ~ normal(0, 5);
  
  // 遍历每个观测值,计算对应区间的概率并累加至目标对数密度
  for (i in 1:N) {
    if (J[i] == 1) {
      target += 1 - normal_cdf(1, mu, 1);
    } else if (J[i] == -1) {
      target += normal_cdf(-1, mu, 1);
    } else {  // J[i] == 0
      target += normal_cdf(1, mu, 1) - normal_cdf(-1, mu, 1);
    }
  }
}

代码关键说明

  • 数据块:定义样本量N和离散观测数组J,限定J的取值范围为{-1,0,1},避免非法输入。
  • 参数块:仅定义待推断的核心参数$\mu$。
  • 模型块:
    1. 先验分布:这里给$\mu$设定了宽范围的正态先验normal(0,5),属于弱信息先验;若有领域知识支撑,可替换为更贴合实际的先验分布。
    2. 似然计算:针对每个观测值$J_i$的取值,利用正态分布累积分布函数normal_cdf()计算潜在变量$L_i$落在对应区间的概率,并累加到目标对数密度target中,以此构建模型的似然部分。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 18:57:43