def loglike(self, beliefs, meta, state, var_value, params, latents, pos): assert self.name in ['own_noise', 'meta_noise'] beliefs_indiv = [bel[:, pos:pos+1] for bel in beliefs] meta_indiv = [met[:, pos:pos+1] for met in meta] var_value = [var_value] expertise = get_expertise(state, params.use_expertise) if self.name == "own_noise": rll = [scoring.reports_ll_marg(bel, met, lat['world'], lat['sm'], lat['wp'], var_value, state.meta_noise[pos:pos+1], expertise, params, lat['bm'], lat['mm']) for bel, met, lat in zip(beliefs_indiv, meta_indiv, latents)] elif self.name == "meta_noise": rll = [scoring.reports_ll_marg(bel, met, lat['world'], lat['sm'], lat['wp'], state.own_noise[pos:pos+1], var_value, expertise, params, lat['bm'], lat['mm']) for bel, met, lat in zip(beliefs_indiv, meta_indiv, latents)] return np.sum(rll)
def loglike(self, beliefs, meta, state, var_value, params, latents, _): assert self.name in ['own_noise', 'meta_noise'] expertise = get_expertise(latents, params.use_expertise) if self.name == "own_noise": rll = scoring.reports_ll_marg(beliefs, meta, state.world, state.sm, state.wp, var_value, state.meta_noise, expertise, params) elif self.name == "meta_noise": rll = scoring.reports_ll_marg(beliefs, meta, state.world, state.sm, state.wp, state.own_noise, var_value, expertise, params) return rll
def loglike(self, beliefs, meta, state, var_value, params, latents, _): lpw = scoring.log_prob_world(state.wp, var_value) own_noise, meta_noise = get_noise(state, latents, self.noise_in_state) expertise = get_expertise(latents, params.use_expertise) rll = scoring.reports_ll_marg(beliefs, meta, var_value, state.sm, state.wp, own_noise, meta_noise, expertise, params) return lpw + rll
def loglike(self, beliefs, meta, state, var_value, params, latents, _): #assert var_value[0, 0] > var_value[0, 1], "Invalid signal matrix" lp_sm = 0 own_noise, meta_noise = get_noise(state, latents, self.noise_in_state) expertise = get_expertise(latents, params.use_expertise) rll = scoring.reports_ll_marg(beliefs, meta, state.world, var_value, state.wp, own_noise, meta_noise, expertise, params) return lp_sm + rll
def loglike(self, beliefs, meta, state, var_value, params, latents, _): if var_value[0] > 1 or var_value[0] < 0: return -np.inf #Original code had checks for bijection and kind of prior. lpw = scoring.log_prob_world(var_value, state.world) expertise = get_expertise(latents, params.use_expertise) own_noise, meta_noise = get_noise(state, latents, self.noise_in_state) rll = scoring.reports_ll_marg(beliefs, meta, state.world, state.sm, var_value, own_noise, meta_noise, expertise, params) return lpw + rll
def loglike(self, beliefs, meta, state, var_value, params, latents, pos): beliefs_indiv = [bel[:, pos:pos+1] for bel in beliefs] meta_indiv = [met[:, pos:pos+1] for met in meta] var_value = [var_value] rll = [scoring.reports_ll_marg(bel, met, lat['world'], lat['sm'], lat['wp'], state['own_noise'][pos:pos+1], state['meta_noise'][pos:pos+1], var_value, params, lat['bm'], lat['mm']) for bel, met, lat in zip(beliefs_indiv, meta_indiv, latents)] return np.sum(rll)
def loglike(self, beliefs, meta, state, var_value, params, latents, _): assert self.name in ["own_noise", "meta_noise"] expertise = get_expertise(latents, params.use_expertise) bias = get_bias(latents, params.use_bias) lp = self.noise_log_prior(var_value) if self.name == "own_noise": own_noise = var_value meta_noise = state.meta_noise else: own_noise = state.own_noise meta_noise = var_value rll = scoring.reports_ll_marg( beliefs, meta, state.world, state.sm, state.wp, own_noise, meta_noise, expertise, bias, params ) return lp + rll
def loglike(self, beliefs, meta, state, var_value, params, latents, _): # assert var_value[0, 0] > var_value[0, 1], "Invalid signal matrix" lp_sm = 0 own_noise, meta_noise = get_noise(state, latents, self.noise_in_state) expertise = get_expertise(latents, params.use_expertise) bias = get_bias(latents, params.use_bias) # sm = np.array([[.66, .34], [.34, .66]]) # wp = np.array([.43, .57]) # world = 1 # sm0 = np.array([[.7, .36], [.3, .64]]) # wp0 = np.array([.56, .44]) # world0 = 0 # blah = scoring.reports_ll_person(beliefs, meta, world, sm, wp, own_noise, # meta_noise, expertise, bias, params, debug=1) rll = scoring.reports_ll_marg( beliefs, meta, state.world, var_value, state.wp, own_noise, meta_noise, expertise, bias, params ) return lp_sm + rll