Beispiel #1
0
    def setBinomialDistrbutionScore(self):
        sizeOfDataSeries = self.genData.modelTargetData.size
        freqDataSeries, binDataSeries = np.histogram(
            self.genData.modelTargetData, bins=2)
        probabilityOfTest_01, probabilityOfTest_02 = freqDataSeries / sizeOfDataSeries
        expectedBinomialDistributionData_01 = stats.binom(
            sizeOfDataSeries,
            probabilityOfTest_01,
        )
        expectedBinomialDistributionData_02 = stats.binom(
            sizeOfDataSeries, probabilityOfTest_02)

        statistic_01, p_valueBinomial_01 = cvm_test(
            self.genData.modelTargetData, expectedBinomialDistributionData_01)
        statistic_01, p_valueBinomial_02 = cvm_test(
            self.genData.modelTargetData, expectedBinomialDistributionData_02)

        if p_valueBinomial_01 < 0.05 or p_valueBinomial_02 < 0.05:
            self.DistributionScoreBinomial = {
                'Binomial': (False, max(p_valueBinomial_01,
                                        p_valueBinomial_02))
            }
        else:
            self.DistributionScoreBinomial = {
                'Binomial': (True, min(p_valueBinomial_01, p_valueBinomial_02))
            }
Beispiel #2
0
 def setPoissonDistributionScore(self):
     mu = self.genData.modelTargetData.mean()
     expectedPoissonDistributionData = stats.poisson(mu)
     statistic, p_value = cvm_test(self.genData.modelTargetData,
                                   expectedPoissonDistributionData)
     if p_value < 0.05:
         self.DistributionScorePoisson = {'Poisson': (False, p_value)}
     else:
         self.DistributionScorePoisson = {'Poisson': (True, p_value)}
 def NZCVM(self):
   """                                                                              
   Compute the CramervonMises statistic and p-value for the
   two distributions of sumpz and true_z vector of spec-z's
   Parameters:                                                                      
   -----------
   using: string
   which parameterization to evaluate
   Returns:
   --------
   CvM statistic and pvalue
   """
   #copy the form of Rongpu's use of skgof functions
   #will have to use QPPDFCDF class, as those expect objects
   #that have a .cdf method for a vector of values
   tmpnzfunc = QPPDFCDF(self.stackpz)
   nzCvM = skgof.cvm_test(self.truth,tmpnzfunc)
   return nzCvM.statistic, nzCvM.pvalue
    def CvM(self, using, dx=0.0001):
        """
        Compute the Cramer-von Mises statistic and p-value for the PIT values
        by comparing with a uniform distribution between 0 and 1. 
        Parameters:
        -----------
        using: string
            which parameterization to evaluate
        dx: float
            step size for integral
        Returns:
        --------
        CvM statistic and pvalue

        """
        if self.pitarray is not None:
            pits = np.array(self.pitarray)
        else:
            pits = np.array(self.PIT(using=using,dx=dx))
            self.pitarray = pits
        cvm_result = skgof.cvm_test(pits, stats.uniform())
        return cvm_result.statistic, cvm_result.pvalue