Log CDF
Код: Выделить всё
# Naive Python implementation of the function I need
import scipy
import numpy as np
def t_log_cdf(x, df):
p = scipy.stats.t.cdf(x, df=df)
return np.log(p)
Код: Выделить всё
>>> import scipy
>>> import numpy as np
>>> scipy.stats.t.logcdf(np.linspace(0, 60, 5), df=15)
array([-6.93147181e-01, -9.70638014e-11, -4.21884749e-15, 0.00000000e+00,
0.00000000e+00])
Код: Выделить всё
# R code
> pt(seq(0, 60, length.out = 5), df = 15, log.p = TRUE)
[1] -6.931472e-01 -9.706380e-11 -4.157404e-15 -1.012752e-17 -1.384523e-19
Я не смог найти реализацию в PyTorch (который вообще не предлагает CDF дистрибутива t).
Функция квантиля, основанная на логарифмической вероятности:
Код: Выделить всё
# Naive Python implementation of the function I need
import scipy
import numpy as np
def t_log_ppf(log_p, loc, scale):
p = np.exp(log_p)
return scipy.stats.t.ppf(p, df=df))
Подробнее здесь: https://stackoverflow.com/questions/788 ... distributi