def predict(self, xpred): """ Realize the GP using the current values of the hyperparameters at values x=xpred. Used for making GP plots. Wrapper around `celerite.GP.predict()`. Args: xpred (np.array): numpy array of x values for realizing the GP Returns: tuple: tuple containing: np.array: numpy array of predictive means \n np.array: numpy array of predictive standard deviations """ self.update_kernel_params() # build celerite kernel with current values of hparams kernel = celerite.terms.JitterTerm( log_sigma=np.log(self.params[self.jit_param].value)) for i in np.arange(self.kernel.num_terms): kernel = kernel + celerite.terms.ComplexTerm( log_a=self.kernel.hparams[i, 0], log_b=self.kernel.hparams[i, 1], log_c=self.kernel.hparams[i, 2], log_d=self.kernel.hparams[i, 3]) gp = celerite.GP(kernel) gp.compute(self.x, self.yerr) mu, var = gp.predict(self.y - self.params[self.gamma_param].value, xpred, return_var=True) stdev = np.sqrt(var) return mu, stdev
def predict(self,xpred): """ Realize the GP using the current values of the hyperparameters at values x=xpred. Used for making GP plots. Wrapper for `celerite.GP.predict()`. Args: xpred (np.array): numpy array of x values for realizing the GP Returns: tuple: tuple containing: np.array: numpy array of predictive means \n np.array: numpy array of predictive standard deviations """ self.update_kernel_params() B = self.kernel.hparams['gp_B'].value C = self.kernel.hparams['gp_C'].value L = self.kernel.hparams['gp_L'].value Prot = self.kernel.hparams['gp_Prot'].value # build celerite kernel with current values of hparams kernel = celerite.terms.JitterTerm( log_sigma = np.log(self.params[self.jit_param].value) ) kernel += celerite.terms.RealTerm( log_a=np.log(B*(1+C)/(2+C)), log_c=np.log(1/L) ) kernel += celerite.terms.ComplexTerm( log_a=np.log(B/(2+C)), log_b=-np.inf, log_c=np.log(1/L), log_d=np.log(2*np.pi/Prot) ) gp = celerite.GP(kernel) gp.compute(self.x, self.yerr) # mu, var = gp.predict(self.y-self.params[self.gamma_param].value, xpred, return_var=True) mu, var = gp.predict(self._resids(), xpred, return_var=True) stdev = np.sqrt(var) return mu, stdev