def calculate_log_likelihood(x, w, y): latent_pred = x @ w log_lik_elementwise = (y * norm.logcdf(latent_pred) + (1 - y) * norm.logcdf(-latent_pred)) return np.sum(log_lik_elementwise)
def _log_1m_sf(self, params, T, Xs): mu_params = params["mu_"] mu_ = np.dot(Xs["mu_"], mu_params) sigma_params = params["sigma_"] log_sigma_ = np.dot(Xs["sigma_"], sigma_params) sigma_ = np.exp(log_sigma_) Z = (np.log(T) - mu_) / sigma_ return norm.logcdf(Z)
def _log_1m_sf(self, params, T, *Xs): mu_params = params[self._LOOKUP_SLICE["mu_"]] mu_ = np.dot(Xs[0], mu_params) sigma_params = params[self._LOOKUP_SLICE["sigma_"]] log_sigma_ = np.dot(Xs[1], sigma_params) sigma_ = np.exp(log_sigma_) Z = (np.log(T) - mu_) / sigma_ return norm.logcdf(Z, loc=0, scale=1)
def _log_1m_sf(self, params, times): mu_, ln_sigma_, lambda_ = params sigma_ = safe_exp(ln_sigma_) ilambda_2 = 1 / lambda_**2 Z = (log(times) - mu_) / sigma_ clipped_exp = np.clip(safe_exp(lambda_ * Z) * ilambda_2, 1e-15, 1e20) if lambda_ > 0: v = gammaincln(1 / lambda_**2, clipped_exp) elif lambda_ < 0: v = gammainccln(1 / lambda_**2, clipped_exp) else: v = norm.logcdf(Z) return v
def logpx(x, mu=0.0, log_std=1.0, alpha=10.0): return norm.logpdf(x, mu, np.exp(log_std)) + \ norm.logcdf(alpha * x, mu, np.exp(log_std)) + \ np.log(2)
def _log_1m_sf(self, params, times): mu_, sigma_ = params Z = (np.log(times) - mu_) / sigma_ return norm.logcdf(Z, loc=0, scale=1)
def probit_log_lik(fi, fj): return norm.logcdf(fi - fj)