【发布时间】:2021-10-30 07:13:09
【问题描述】:
我正在努力在 pymc3 中实现具有自定义可能性的线性回归。
我之前在 CrossValidated 上发布了这个问题,建议在此处发布,因为该问题更面向代码(已关闭帖子 here)
假设您有两个自变量 x1、x2 和一个目标变量 y,以及一个称为 delta 的指标变量。
- 当 delta 为 0 时,似然函数为标准最小二乘法
- 当 delta 为 1 时,只有当目标变量大于预测值时,似然函数才是最小二乘贡献
观察数据的示例 sn-p:
x_1 x_2 ???? observed_target
10 1 0 100
20 2 0 50
5 -1 1 200
10 -2 1 100
有谁知道如何在 pymc3 中实现这一点?作为起点...
model = pm.Model()
with model as ttf_model:
intercept = pm.Normal('param_intercept', mu=0, sd=5)
beta_0 = pm.Normal('param_x1', mu=0, sd=5)
beta_1 = pm.Normal('param_x2', mu=0, sd=5)
std = pm.HalfNormal('param_std', beta = 0.5)
x_1 = pm.Data('var_x1', df['x1'])
x_2 = pm.Data('var_x2', df['x2'])
mu = (intercept + beta_0*x_0 + beta_1*x_1)
【问题讨论】:
-
我认为
switch函数可以做到这一点。这是一个示例用法:discourse.pymc.io/t/… -
嗯 - 你能举个例子来说明如何将 switch 函数与自定义可能性一起使用吗?
-
愚蠢的问题:delta 与拥有第三个独立变量 x_3 有何不同?你不能用 3 个自变量得到准确的预测吗?
标签: python statistics bayesian pymc3