Hi, I want to model a problem where I only see a yes/no answer (w), and I ask questions (z) in a given context (x). I want to learn something that influences the answer w.
- a and b are two random variables, and I want to learn about them
- x is known
- I can make a “question” z
Now suppose:
y ~ a + b + x
But I only get to see whether z > y, let’s call it w:
w = z > y
So I observe x, propose z, and observe w = 1 iff z > y.
By proposing different z’s for different x’s I should be able to learn about a and b.
I was trying to express that problem in PyMC3 going along the following lines:
import pymc3 as pm
a_guess = 4
b_guess = 5
x = np.random.uniform(100, 200, 100)
z = a_guess + b_guess * x
with pm.Model() as model:
a = pm.Uniform('a', lower=-10, upper=10)
b = pm.Uniform('b', lower=-10, upper=10)
y = a + b * x
w = z > y
But I found no way to provide what w
values I actually observe, in order to be able to sample from a posterior distribution of a
and b
.
I think I might be missing something fundamental here… Can some one help me?