def finalizeSampling(self): #from scikits.talkbox.tools.correlations import acorr from pyhrf.stats import acorr if 0 and self.smplHistory is not None: logger.info('Compute autocorrelation of %s samples, shape=%s', self.name, str(self.smplHistory.shape)) trajectory = self.smplHistory[self.samplerEngine.nbSweeps::2] self.autocorrelation = acorr(trajectory) sn = trajectory.shape[0] ** .5 t95 = 1.959963984540054 / sn self.autocorrelation_test = np.zeros(self.autocorrelation.shape, dtype=np.int32) self.autocorrelation_test[np.where(self.autocorrelation > t95)] = 1 self.autocorrelation_test[ np.where(self.autocorrelation < -t95)] = -1 self.autocorrelation_thresh = t95 from scipy.stats import norm self.autocorrelation_pvalue = np.zeros(self.autocorrelation.shape, dtype=np.float32) m_pos = np.where(self.autocorrelation > 0) if len(m_pos[0]) > 0: ac_pos = self.autocorrelation[m_pos] self.autocorrelation_pvalue[m_pos] = norm.sf(ac_pos * sn) m_neg = np.where(self.autocorrelation < 0) if len(m_neg[0]) > 0: ac_neg = self.autocorrelation[m_neg] self.autocorrelation_pvalue[m_neg] = norm.cdf(ac_neg * sn) logger.info('Compute posterior median for %s ', self.name) self.median = np.median(self.smplHistory, axis=0) self.check_final_value()
def finalizeSampling(self): #from scikits.talkbox.tools.correlations import acorr from pyhrf.stats import acorr if 0 and self.smplHistory is not None: logger.info('Compute autocorrelation of %s samples, shape=%s', self.name, str(self.smplHistory.shape)) trajectory = self.smplHistory[self.samplerEngine.nbSweeps::2] self.autocorrelation = acorr(trajectory) sn = trajectory.shape[0]**.5 t95 = 1.959963984540054 / sn self.autocorrelation_test = np.zeros(self.autocorrelation.shape, dtype=np.int32) self.autocorrelation_test[np.where(self.autocorrelation > t95)] = 1 self.autocorrelation_test[np.where( self.autocorrelation < -t95)] = -1 self.autocorrelation_thresh = t95 from scipy.stats import norm self.autocorrelation_pvalue = np.zeros(self.autocorrelation.shape, dtype=np.float32) m_pos = np.where(self.autocorrelation > 0) if len(m_pos[0]) > 0: ac_pos = self.autocorrelation[m_pos] self.autocorrelation_pvalue[m_pos] = norm.sf(ac_pos * sn) m_neg = np.where(self.autocorrelation < 0) if len(m_neg[0]) > 0: ac_neg = self.autocorrelation[m_neg] self.autocorrelation_pvalue[m_neg] = norm.cdf(ac_neg * sn) logger.info('Compute posterior median for %s ', self.name) self.median = np.median(self.smplHistory, axis=0) self.check_final_value()
def finalizeSampling(self): # from scikits.talkbox.tools.correlations import acorr from pyhrf.stats import acorr if 0 and self.smplHistory is not None: pyhrf.verbose( 3, "Compute autocorrelation of %s samples " ", shape=%s" % (self.name, str(self.smplHistory.shape)) ) trajectory = self.smplHistory[self.samplerEngine.nbSweeps :: 2] # print 'trajectory:', trajectory.shape self.autocorrelation = acorr(trajectory) # print 'self.autocorrelation:', self.autocorrelation sn = trajectory.shape[0] ** 0.5 t95 = 1.959963984540054 / sn self.autocorrelation_test = np.zeros(self.autocorrelation.shape, dtype=np.int32) # print 't95:', t95 self.autocorrelation_test[np.where(self.autocorrelation > t95)] = 1 self.autocorrelation_test[np.where(self.autocorrelation < -t95)] = -1 self.autocorrelation_thresh = t95 from scipy.stats import norm self.autocorrelation_pvalue = np.zeros(self.autocorrelation.shape, dtype=np.float32) # print 'self.autocorrelation ... :', self.autocorrelation m_pos = np.where(self.autocorrelation > 0) if len(m_pos[0]) > 0: ac_pos = self.autocorrelation[m_pos] self.autocorrelation_pvalue[m_pos] = norm.sf(ac_pos * sn) # print 'ac_pos:', ac_pos.shape # print ac_pos # print '--- * sn' # print ac_pos*sn # print 'norm.sf:' # print norm.sf(ac_pos * sn) m_neg = np.where(self.autocorrelation < 0) if len(m_neg[0]) > 0: ac_neg = self.autocorrelation[m_neg] # print 'ac_neg:', ac_neg.shape, (ac_neg*sn).mean() self.autocorrelation_pvalue[m_neg] = norm.cdf(ac_neg * sn) # print 'self.smplHistory:' # print self.smplHistory # print 'self.autocorrelation:', self.autocorrelation.shape # print self.autocorrelation pyhrf.verbose(3, "Compute posterior median for %s " % (self.name)) self.median = np.median(self.smplHistory, axis=0) self.check_final_value()