Существуют ли численно стабильные реализации Python функции логарифмического кумулятивного распределения (CDF) и функцийPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Существуют ли численно стабильные реализации Python функции логарифмического кумулятивного распределения (CDF) и функций

Сообщение Anonymous »

Мне нужны численно стабильные реализации функций, представленных ниже. Поскольку мое приложение касается распределения t, я использую здесь распределение t в качестве примера.
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)
В SciPy есть logcdf, но он недостаточно стабилен в числовом отношении. Сравните поведение функции scipy:

Код: Выделить всё

>>> 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:

Код: Выделить всё

# 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
Tensorflow Probability предлагает реализацию, но ее результаты напоминают результаты Scipy.
Я не смог найти реализацию в 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))
Мне не удалось найти функции квантиля, которые работают с вероятностями журнала в SciPy, PyTorch или Tensorflow Probability. >.

Подробнее здесь: https://stackoverflow.com/questions/788 ... distributi
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»