Ejemplo n.º 1
0
 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)
Ejemplo n.º 2
0
    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)
Ejemplo n.º 3
0
 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
Ejemplo n.º 4
0
    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)