= 1) { return 1; } return 1 - $p; } /** * Get mode. * * @param float $p Value p * * @return int * * @since 1.0.0 */ public static function getMode(float $p) : int { if ($p === 0.5) { return 0; } elseif ($p > 0.5) { return 1; } return 0; } /** * Get expected value. * * @param float $p Value p * * @return float * * @since 1.0.0 */ public static function getMean(float $p) : float { return $p; } /** * Get median. * * @param float $p Value p * * @return float * * @since 1.0.0 */ public static function getMedian(float $p) : float { if ($p === 0.5) { return 0.5; } elseif ($p > 0.5) { return 1; } return 0.0; } /** * Get variance. * * @param float $p Value p * * @return float * * @since 1.0.0 */ public static function getVariance(float $p) : float { return $p * (1 - $p); } /** * Get standard deviation. * * @param float $p Value p * * @return float * * @since 1.0.0 */ public static function getStandardDeviation(float $p) : float { return \sqrt(self::getVariance($p)); } /** * Get moment generating function. * * @param float $p Value p * @param float $t Value t * * @return float * * @since 1.0.0 */ public static function getMgf(float $p, float $t) : float { return (1 - $p) + $p * \exp($t); } /** * Get skewness. * * @param float $p Value p * * @return float * * @since 1.0.0 */ public static function getSkewness(float $p) : float { return (1 - 2 * $p) / \sqrt($p * (1 - $p)); } /** * Get entropy. * * @param float $p Value p * * @return float * * @since 1.0.0 */ public static function getEntropy(float $p) : float { return -(1 - $p) * \log(1 - $p) - $p * \log($p); } /** * Get Fisher information. * * @param float $p Value p * * @return float * * @since 1.0.0 */ public static function getFisherInformation(float $p) : float { return 1 / ($p * (1 - $p)); } /** * Get Ex. kurtosis. * * @param float $p Value p * * @return float * * @since 1.0.0 */ public static function getExKurtosis(float $p) : float { return (1 - 6 * $p * (1 - $p)) / ($p * (1 - $p)); } }