Exemplo n.º 1
0
 public function testChiSquareSimple()
 {
     $this->assertEquals(1.44, PearsonChiSquare::chiSquare(array(44, 56), array(0.5, 0.5)), '', 1.0E-5);
     $this->assertEquals(4.54, PearsonChiSquare::chiSquare(array(14, 21, 25), array(0.167, 0.483, 0.35)), '', 0.01);
     $this->assertEquals(135.93, PearsonChiSquare::chiSquare(array(700, 790, 30, 40), array(0.54, 0.4, 0.05, 0.01)), '', 0.01);
     $this->assertEquals(0.35, PearsonChiSquare::chiSquare(array(423, 133), array(0.75, 0.25)), '', 0.1);
 }
 /**
  * Checks that resulting distribution of binary values is
  * approximately same.
  *
  * @param string $bytes to check
  */
 public static function pvalue($bytes)
 {
     $hist = array();
     // histogram
     $freq = array();
     // expected frequency
     $N = 256;
     for ($i = 0; $i < $N; $i++) {
         $hist[$i] = 0;
         $freq[$i] = 1.0 / $N;
     }
     foreach (unpack('C*', $bytes) as $char) {
         $hist[$char]++;
     }
     $chisqr = PearsonChiSquare::chiSquare($hist, $freq);
     return PearsonChiSquare::pvalue($N - 1, $chisqr);
 }