정확합니다 - randint.ppf는주의하지 않는 방식으로 구현됩니다. 여기에 (scipy 0.9.0에서) scipy/통계/distributions.py에서 CDF 및 PPF에 대한 코드입니다 :
def _cdf(self, x, min, max):
k = floor(x)
return (k-min+1)*1.0/(max-min)
def _ppf(self, q, min, max):
vals = ceil(q*(max-min)+min)-1
vals1 = (vals-1).clip(min, max)
temp = self._cdf(vals1, min, max)
return where(temp >= q, vals1, vals)
당신이 볼 수 있듯이이 경우 -1을 돌려줍니다 PPF에서 Q = 0. 또한 ppf (0.01) = 0 (-inf 여야 함) 및 ppf (0.51) = 1 (0이어야 함)에 유의하십시오.
이 ppf는 실제로 손상되었거나 엄격한 정의에 대한 고려없이 작성되었다고 말하는 것이 더 자선입니다. 사용 가능한 문서에 따르면 ppf는 "cdf의 역"이지만 cdf가 1 대 1이 아닌 경우에는 의미가 없습니다.