Here is the program:
var xs = [0, 1, 2, 3];
var ys = [0, 1, 4, 6];
var model = function() {
var m = gaussian(0, 2);
var b = gaussian(0, 2);
var sigma = gamma(1, 1);
var f = function(x) {
return m * x + b;
};
map2(
function(x, y) {
observe(Gaussian({mu: f(x), sigma: sigma}, y));
},
xs,
ys);
return f(4);
}
viz(Infer({model, method: 'MCMC', samples: 10000}));