本文简要介绍 python 语言中 scipy.stats.probplot
的用法。
用法:
scipy.stats.probplot(x, sparams=(), dist='norm', fit=True, plot=None, rvalue=False)#
计算概率图的分位数,并可选择显示该图。
生成样本数据相对于指定理论分布(默认为正态分布)的分位数的概率图。
probplot
可选择计算数据的 best-fit 线,并使用 Matplotlib 或给定绘图函数绘制结果。- x: array_like
probplot
创建绘图的样本/响应数据。- sparams: 元组,可选
Distribution-specific 形状参数(形状参数加上位置和比例)。
- dist: str 或 stats.distributions 实例,可选
分布或分布函数名称。对于正态概率图,默认值为 ‘norm’。看起来足够像 stats.distributions 实例的对象(即它们具有
ppf
方法)也被接受。- fit: 布尔型,可选
如果为 True(默认),则将最小二乘回归 (best-fit) 线拟合到样本数据。
- plot: 对象,可选
如果给定,则绘制分位数。如果给出并且scipy.stats.fit为真,也绘制最小二乘拟合。阴谋是一个必须具有方法 “plot” 和 “text” 的对象。这
matplotlib.pyplot
可以使用模块或 Matplotlib Axes 对象,或具有相同方法的自定义对象。默认为无,这意味着不创建绘图。- rvalue: 布尔型,可选
如果阴谋提供和scipy.stats.fit为 True,设置右值to True 包括绘图上的决定系数。默认值为 False。
- (osm, osr): ndarray 的元组
理论分位数(osm,或顺序统计中位数)和有序响应(osr)的元组。 osr 是简单排序的输入 x。有关如何计算 osm 的详细信息,请参阅注释部分。
- (slope, intercept, r): 浮点数元组,可选
包含最小二乘拟合结果的元组(如果由以下方法执行)
probplot
.r是决定系数的平方根。如果fit=False
和plot=None
,这个元组不返回。
参数 ::
返回 ::
注意:
即使阴谋给出,该图不显示或保存
probplot
;plt.show()
或者plt.savefig('figname.png')
应该在调用后使用probplot
.probplot
生成概率图,不应与 Q-Q 或 P-P 图混淆。 Statsmodels 具有更广泛的此类函数,请参阅statsmodels.api.ProbPlot
。用于理论分位数的公式(概率图的横轴)是 Filliben 的估计:
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-th有序值,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)
使用
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()
相关用法
- Python SciPy stats.page_trend_test用法及代码示例
- Python SciPy stats.poisson用法及代码示例
- Python SciPy stats.poisson_means_test用法及代码示例
- Python SciPy stats.pareto用法及代码示例
- Python SciPy stats.planck用法及代码示例
- Python SciPy stats.ppcc_plot用法及代码示例
- Python SciPy stats.pointbiserialr用法及代码示例
- Python SciPy stats.powerlognorm用法及代码示例
- Python SciPy stats.ppcc_max用法及代码示例
- Python SciPy stats.pmean用法及代码示例
- Python SciPy stats.powerlaw用法及代码示例
- Python SciPy stats.power_divergence用法及代码示例
- Python SciPy stats.powernorm用法及代码示例
- Python SciPy stats.pearson3用法及代码示例
- Python SciPy stats.pearsonr用法及代码示例
- Python SciPy stats.percentileofscore用法及代码示例
- Python SciPy stats.permutation_test用法及代码示例
- Python SciPy stats.anderson用法及代码示例
- Python SciPy stats.iqr用法及代码示例
- Python SciPy stats.genpareto用法及代码示例
- Python SciPy stats.skewnorm用法及代码示例
- Python SciPy stats.cosine用法及代码示例
- Python SciPy stats.norminvgauss用法及代码示例
- Python SciPy stats.directional_stats用法及代码示例
- Python SciPy stats.invwishart用法及代码示例
注:本文由纯净天空筛选整理自scipy.org大神的英文原创作品 scipy.stats.probplot。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。