mirror of
https://github.com/SheffieldML/GPy.git
synced 2026-05-18 13:55:14 +02:00
confidence interval fixed
This commit is contained in:
parent
b856c60d30
commit
b3fd843d33
2 changed files with 18 additions and 6 deletions
|
|
@ -279,6 +279,18 @@ class NoiseModel(object):
|
||||||
var_exp = exp_exp2 - predictive_mean**2
|
var_exp = exp_exp2 - predictive_mean**2
|
||||||
return exp_var + var_exp
|
return exp_var + var_exp
|
||||||
|
|
||||||
|
def _predictive_percentiles(self,p,mu,sigma):
|
||||||
|
"""
|
||||||
|
Percentiles of the predictive distribution
|
||||||
|
|
||||||
|
:parm p: lower tail probability
|
||||||
|
:param mu: cavity distribution mean
|
||||||
|
:param sigma: cavity distribution standard deviation
|
||||||
|
:predictive_mean: output's predictive mean, if None _predictive_mean function will be called.
|
||||||
|
"""
|
||||||
|
qf = stats.norm.ppf(p,mu,sigma)
|
||||||
|
return self.link.inv_transf(qf)
|
||||||
|
|
||||||
def _nlog_joint_predictive_scaled(self,x,mu,sigma):
|
def _nlog_joint_predictive_scaled(self,x,mu,sigma):
|
||||||
"""
|
"""
|
||||||
Negative logarithm of the joint predictive distribution (latent variable and output).
|
Negative logarithm of the joint predictive distribution (latent variable and output).
|
||||||
|
|
@ -340,8 +352,8 @@ class NoiseModel(object):
|
||||||
for m,s in zip(mu,np.sqrt(var)):
|
for m,s in zip(mu,np.sqrt(var)):
|
||||||
pred_mean.append(self.predictive_mean(m,s))
|
pred_mean.append(self.predictive_mean(m,s))
|
||||||
pred_var.append(self.predictive_variance(m,s,pred_mean[-1]))
|
pred_var.append(self.predictive_variance(m,s,pred_mean[-1]))
|
||||||
q1.append(self.predictive_mean(stats.norm.ppf(.025,m,s**2),s))
|
q1.append(self._predictive_percentiles(.025,m,s))
|
||||||
q3.append(self.predictive_mean(stats.norm.ppf(.975,m,s**2),s))
|
q3.append(self._predictive_percentiles(.975,m,s))
|
||||||
pred_mean = np.vstack(pred_mean)
|
pred_mean = np.vstack(pred_mean)
|
||||||
pred_var = np.vstack(pred_var)
|
pred_var = np.vstack(pred_var)
|
||||||
q1 = np.vstack(q1)
|
q1 = np.vstack(q1)
|
||||||
|
|
|
||||||
|
|
@ -27,15 +27,15 @@ class Poisson(NoiseModel):
|
||||||
super(Poisson, self).__init__(link,analytical_moments)
|
super(Poisson, self).__init__(link,analytical_moments)
|
||||||
|
|
||||||
def _preprocess_values(self,Y): #TODO
|
def _preprocess_values(self,Y): #TODO
|
||||||
self.scale = .5*Y.max()
|
#self.scale = .5*Y.max()
|
||||||
self.shift = Y.mean()
|
#self.shift = Y.mean()
|
||||||
return (Y - self.shift)/self.scale
|
return Y #(Y - self.shift)/self.scale
|
||||||
|
|
||||||
def _mass(self,gp,obs):
|
def _mass(self,gp,obs):
|
||||||
"""
|
"""
|
||||||
Mass (or density) function
|
Mass (or density) function
|
||||||
"""
|
"""
|
||||||
obs = obs*self.scale + self.shift
|
#obs = obs*self.scale + self.shift
|
||||||
return stats.poisson.pmf(obs,self.link.inv_transf(gp))
|
return stats.poisson.pmf(obs,self.link.inv_transf(gp))
|
||||||
|
|
||||||
def _nlog_mass(self,gp,obs):
|
def _nlog_mass(self,gp,obs):
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue