def computeCore(self, data, tRange): [obsP, p] = Bs.getP(data, tRange) bs = np.nan*np.zeros(len(p), 'float') meanObs = np.mean(obsP) for i in range(0, len(self._edges)-1): I = np.where((p >= self._edges[i]) & (p < self._edges[i+1]))[0] if(len(I) > 0): meanObsI = np.mean(obsP[I]) bs[I] = (meanObsI - meanObs)**2 return Common.nanmean(bs)
def computeCore(self, data, tRange): [obsP,p] = Bs.getP(data, tRange) # Break p into bins, and comute reliability bs = np.nan*np.zeros(len(p), 'float') for i in range(0, len(self._edges)-1): I = np.where((p >= self._edges[i]) & (p < self._edges[i+1]))[0] if(len(I) > 0): meanObsI = np.mean(obsP[I]) bs[I] = (np.mean(p[I]) - meanObsI)**2 return Common.nanmean(bs)
def computeCore(self, data, tRange): [obsP,p] = Bs.getP(data, tRange) bs = np.nan*np.zeros(len(p), 'float') for i in range(0, len(self._edges)-1): I = np.where((p >= self._edges[i]) & (p < self._edges[i+1]))[0] if(len(I) > 0): bs[I] = (np.mean(p[I]) - obsP[I])**2 bs = Common.nanmean(bs) bsunc = np.mean(obsP)*(1-np.mean(obsP)) if(bsunc == 0): bss = np.nan else: bss = (bsunc - bs)/bsunc return bss
def computeCore(self, data, tRange): # Compute probabilities based on thresholds p0 = 0 p1 = 1 if(tRange[0] != -np.inf and tRange[1] != np.inf): var0 = data.getPvar(tRange[0]) var1 = data.getPvar(tRange[1]) [obs, p0, p1] = data.getScores(["obs", var0, var1]) elif(tRange[0] != -np.inf): var0 = data.getPvar(tRange[0]) [obs, p0] = data.getScores(["obs", var0]) elif(tRange[1] != np.inf): var1 = data.getPvar(tRange[1]) [obs, p1] = data.getScores(["obs", var1]) obsP = self.within(obs, tRange) p = p1 - p0 # Prob of obs within range bs = np.nan*np.zeros(len(p), 'float') # Split into bins and compute Brier score on each bin for i in range(0, len(self._edges)-1): I = np.where((p >= self._edges[i]) & (p < self._edges[i+1]))[0] if(len(I) > 0): bs[I] = (np.mean(p[I]) - obsP[I])**2 return Common.nanmean(bs)