probplot#
- scipy.stats.probplot(x, sparams=(), dist=: ограничение для обеспечения, что они лежат между, fit=True, plot=None, rvalue=False)[источник]#
Вычислить квантили для вероятностного графика и, опционально, показать график.
Создает вероятностный график выборочных данных против квантилей указанного теоретического распределения (по умолчанию нормального распределения).
probplotопционально вычисляет линию наилучшего соответствия для данных и строит результаты с использованием Matplotlib или заданной функции построения.- Параметры:
- xarray_like
Данные выборки/ответа, из которых
probplotсоздаёт график.- sparamsкортеж, необязательный
Параметры формы, специфичные для распределения (параметры формы плюс параметры положения и масштаба).
- diststr или экземпляр stats.distributions, опционально
Название распределения или функции распределения. По умолчанию 'norm' для нормальной вероятностной диаграммы. Объекты, которые достаточно похожи на экземпляр stats.distributions (т.е. имеют
ppfметод) также принимаются.- fitbool, необязательно
Подогнать линию регрессии методом наименьших квадратов (наилучшего соответствия) к выборочным данным, если True (по умолчанию).
- plotобъект, опционально
Если задано, строит квантили. Если задано и
fitесли True, также строит график аппроксимации методом наименьших квадратов. plot является объектом, который должен иметь методы "plot" и "text".matplotlib.pyplotмодуль или объект Matplotlib Axes можно использовать, или пользовательский объект с теми же методами. По умолчанию None, что означает, что график не создается.- rvaluebool, необязательно
Если plot предоставлен и
fitравно True, установка rvalue в True включает коэффициент детерминации на графике. По умолчанию False.
- Возвращает:
- (osm, osr)кортеж ndarrays
Кортеж теоретических квантилей (osm, или медианы порядковых статистик) и упорядоченных ответов (osr). osr является просто отсортированным входом x. Подробности о том, как osm рассчитывается, см. раздел Примечания.
- (slope, intercept, r)кортеж из чисел с плавающей точкой, опционально
Кортеж, содержащий результат подгонки методом наименьших квадратов, если она выполняется с помощью
probplot. r является квадратным корнем коэффициента детерминации. Еслиfit=Falseиplot=None, этот кортеж не возвращается.
Примечания
Даже если plot указан, рисунок не отображается и не сохраняется
probplot;plt.show()илиplt.savefig('figname.png')должен использоваться после вызоваprobplot.probplotгенерирует вероятностный график, который не следует путать с Q-Q или P-P графиком. Statsmodels имеет более обширную функциональность этого типа, см.statsmodels.api.ProbPlot.Формула, используемая для теоретических квантилей (горизонтальная ось графика вероятностей), — это оценка Филибена:
quantiles = dist.ppf(val), for 0.5**(1/n), for i = n val = (i - 0.3175) / (n + 0.365), for i = 2, ..., n-1 1 - 0.5**(1/n), for i = 1
где
iуказывает i-е упорядоченное значение иnявляется общим количеством значений.Примеры
>>> import numpy as np >>> from scipy import stats >>> import matplotlib.pyplot as plt >>> nsample = 100 >>> rng = np.random.default_rng()
Распределение t с малым числом степеней свободы:
>>> ax1 = plt.subplot(221) >>> x = stats.t.rvs(3, size=nsample, random_state=rng) >>> res = stats.probplot(x, plot=plt)
Распределение t с большим числом степеней свободы:
>>> ax2 = plt.subplot(222) >>> x = stats.t.rvs(25, size=nsample, random_state=rng) >>> res = stats.probplot(x, plot=plt)
Смесь двух нормальных распределений с вещанием:
>>> ax3 = plt.subplot(223) >>> x = stats.norm.rvs(loc=[0,5], scale=[1,1.5], ... size=(nsample//2,2), random_state=rng).ravel() >>> res = stats.probplot(x, plot=plt)
Стандартное нормальное распределение:
>>> ax4 = plt.subplot(224) >>> x = stats.norm.rvs(loc=0, scale=1, size=nsample, random_state=rng) >>> res = stats.probplot(x, plot=plt)
Создать новую фигуру с распределением loggamma, используя
distиsparamsключевые слова:>>> fig = plt.figure() >>> ax = fig.add_subplot(111) >>> x = stats.loggamma.rvs(c=2.5, size=500, random_state=rng) >>> res = stats.probplot(x, dist=stats.loggamma, sparams=(2.5,), plot=ax) >>> ax.set_title("Probplot for loggamma dist with shape parameter 2.5")
Показать результаты с помощью Matplotlib:
>>> plt.show()