scipy.special.fdtrc#

scipy.special.fdtrc(dfn, dfd, x, выход=None) = 'fdtrc'>#

F функция выживания.

Возвращает дополнительную функцию распределения F-распределения (интеграл плотности от x до бесконечности).

Параметры:
dfnarray_like

Первый параметр (положительное число с плавающей точкой).

dfdarray_like

Второй параметр (положительное число с плавающей запятой).

xarray_like

Аргумент (неотрицательное число с плавающей точкой).

выходndarray, необязательно

Необязательный выходной массив для значений функции

Возвращает:
yскаляр или ndarray

Дополненная функция распределения Фишера с параметрами dfn и dfd в x.

Смотрите также

fdtr

Функция кумулятивного распределения распределения Фишера

fdtri

Обратная функция распределения F-распределения

scipy.stats.f

F-распределение

Примечания

Используется регуляризованная неполная бета-функция, согласно формуле,

\[F(d_n, d_d; x) = I_{d_d/(d_d + xd_n)}(d_d/2, d_n/2).\]

Обертка для Cephes [1] рутина fdtrc. Распределение Фишера также доступно как scipy.stats.f. Вызов fdtrc напрямую может улучшить производительность по сравнению с sf метод scipy.stats.f (см. последний пример ниже).

Ссылки

[1]

Библиотека математических функций Cephes, http://www.netlib.org/cephes/

Примеры

Вычислить функцию для dfn=1 и dfd=2 в x=1.

>>> import numpy as np
>>> from scipy.special import fdtrc
>>> fdtrc(1, 2, 1)
0.42264973081037427

Вычислить функцию в нескольких точках, предоставив массив NumPy для x.

>>> x = np.array([0.5, 2., 3.])
>>> fdtrc(1, 2, x)
array([0.5527864 , 0.29289322, 0.22540333])

Построить график функции для нескольких наборов параметров.

>>> import matplotlib.pyplot as plt
>>> dfn_parameters = [1, 5, 10, 50]
>>> dfd_parameters = [1, 1, 2, 3]
>>> linestyles = ['solid', 'dashed', 'dotted', 'dashdot']
>>> parameters_list = list(zip(dfn_parameters, dfd_parameters,
...                            linestyles))
>>> x = np.linspace(0, 30, 1000)
>>> fig, ax = plt.subplots()
>>> for parameter_set in parameters_list:
...     dfn, dfd, style = parameter_set
...     fdtrc_vals = fdtrc(dfn, dfd, x)
...     ax.plot(x, fdtrc_vals, label=rf"$d_n={dfn},\, d_d={dfd}$",
...             ls=style)
>>> ax.legend()
>>> ax.set_xlabel("$x$")
>>> ax.set_title("F distribution survival function")
>>> plt.show()
../../_images/scipy-special-fdtrc-1_00_00.png

F-распределение также доступно как scipy.stats.f. Использование fdtrc напрямую может быть намного быстрее, чем вызов sf метод scipy.stats.f, особенно для небольших массивов или отдельных значений. Для получения одинаковых результатов необходимо использовать следующую параметризацию: stats.f(dfn, dfd).sf(x)=fdtrc(dfn, dfd, x).

>>> from scipy.stats import f
>>> dfn, dfd = 1, 2
>>> x = 1
>>> fdtrc_res = fdtrc(dfn, dfd, x)  # this will often be faster than below
>>> f_dist_res = f(dfn, dfd).sf(x)
>>> f_dist_res == fdtrc_res  # test that results are equal
True