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 Util.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 Util.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 = Util.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 Util.nanmean(bs)