本文简要介绍 python 语言中 scipy.stats.ecdf
的用法。
用法:
scipy.stats.ecdf(sample)#
样本的经验累积分布函数。
经验累积分布函数 (ECDF) 是样本基础分布 CDF 的阶跃函数估计。该函数返回代表经验分布函数及其补充函数(经验生存函数)的对象。
- sample: 一维数组或
scipy.stats.CensoredData
除了 数组 之外,还支持包含未经审查的
scipy.stats.CensoredData
和 right-censored 观察值的实例。目前,scipy.stats.CensoredData
的其他实例将生成NotImplementedError
。
- sample: 一维数组或
- res:
ECDFResult
具有以下属性的对象。
- cdf
EmpiricalDistributionFunction
表示经验累积分布函数的对象。
- 顺丰
EmpiricalDistributionFunction
代表经验生存函数的对象。
cdf 和 sf 属性本身具有以下属性。
- 分位数 ndarray
样本中定义经验 CDF/SF 的唯一值。
- 概率 ndarray
与分位数对应的概率的点估计。
以及以下方法:
- 评估(x):
评估参数处的 CDF/SF。
- 绘图(轴):
在提供的轴上绘制 CDF/SF。
- confidence_interval(confidence_level=0.95):
计算分位数值处 CDF/SF 周围的置信区间。
- cdf
- res:
参数 ::
返回 ::
注意:
当样本的每次观测都是精确测量时,ECDF 在每次观测时都会增加
1/len(sample)
[1]。当观测值是下限、上限或同时是上限和下限时,数据被称为“censored”,并且样本可以作为一个实例提供
scipy.stats.CensoredData
.对于right-censored数据,ECDF由Kaplan-Meier估计器给出[2];目前不支持其他形式的审查。
置信区间根据 Greenwood 公式或更新的 “Exponential Greenwood” 公式计算,如 [4] 中所述。
参考:
[1] (1,2,3)康诺弗,威廉·杰伊。实用非参数统计。卷。 350. 约翰·威利父子公司,1999。
[2]卡普兰、爱德华·L.和保罗·迈尔。 “来自不完整观察的非参数估计。”美国统计协会杂志 53.282 (1958): 457-481。
[3]戈埃尔、曼尼什·库马尔、帕迪普·卡纳和朱加尔·基肖尔。 “了解生存分析:Kaplan-Meier 估计。”国际阿育吠陀研究杂志 1.4(2010):274。
[4]索耶、斯坦利. “生存分析中的格林伍德和指数格林伍德置信区间。”https://www.math.wustl.edu/~sawyer/handouts/greenwood.pdf
例子:
未经审查的数据
正如第 79 页 [1] 中的示例一样,从一所高中的学生中随机选择了 5 个男孩。他们的one-mile运行时间记录如下。
>>> sample = [6.23, 5.58, 7.06, 6.42, 5.20] # one-mile run times (minutes)
经验分布函数近似于对男孩进行抽样的总体 one-mile 运行时间的分布函数,计算如下。
>>> from scipy import stats >>> res = stats.ecdf(sample) >>> res.cdf.quantiles array([5.2 , 5.58, 6.23, 6.42, 7.06]) >>> res.cdf.probabilities array([0.2, 0.4, 0.6, 0.8, 1. ])
将结果绘制为阶跃函数:
>>> import matplotlib.pyplot as plt >>> ax = plt.subplot() >>> res.cdf.plot(ax) >>> ax.set_xlabel('One-Mile Run Time (minutes)') >>> ax.set_ylabel('Empirical CDF') >>> plt.show()
Right-censored数据
正如第 91 页 [1] 中的示例一样,测试了 10 个汽车风扇皮带的寿命。五项测试因所测试的风扇皮带断裂而结束,但其余测试因其他原因而结束(例如,该研究耗尽了资金,但风扇皮带仍然有效)。使用风扇皮带行驶的里程记录如下。
>>> broken = [77, 47, 81, 56, 80] # in thousands of miles driven >>> unbroken = [62, 60, 43, 71, 37]
测试结束时仍能发挥作用的风扇皮带的准确生存时间尚不清楚,但已知它们超过了
unbroken
中记录的值。因此,这些观测值被称为 “right-censored”,并且数据使用scipy.stats.CensoredData
表示。>>> sample = stats.CensoredData(uncensored=broken, right=unbroken)
经验生存函数计算如下。
>>> res = stats.ecdf(sample) >>> res.sf.quantiles array([37., 43., 47., 56., 60., 62., 71., 77., 80., 81.]) >>> res.sf.probabilities array([1. , 1. , 0.875, 0.75 , 0.75 , 0.75 , 0.75 , 0.5 , 0.25 , 0. ])
将结果绘制为阶跃函数:
>>> ax = plt.subplot() >>> res.cdf.plot(ax) >>> ax.set_xlabel('Fanbelt Survival Time (thousands of miles)') >>> ax.set_ylabel('Empirical SF') >>> plt.show()
相关用法
- Python SciPy stats.exponpow用法及代码示例
- Python SciPy stats.expon用法及代码示例
- Python SciPy stats.expectile用法及代码示例
- Python SciPy stats.entropy用法及代码示例
- Python SciPy stats.exponnorm用法及代码示例
- Python SciPy stats.energy_distance用法及代码示例
- Python SciPy stats.exponweib用法及代码示例
- 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用法及代码示例
- Python SciPy stats.bartlett用法及代码示例
- Python SciPy stats.levy_stable用法及代码示例
- Python SciPy stats.page_trend_test用法及代码示例
- Python SciPy stats.itemfreq用法及代码示例
- Python SciPy stats.gumbel_l用法及代码示例
- Python SciPy stats.chisquare用法及代码示例
- Python SciPy stats.semicircular用法及代码示例
- Python SciPy stats.gzscore用法及代码示例
- Python SciPy stats.gompertz用法及代码示例
- Python SciPy stats.normaltest用法及代码示例
注:本文由纯净天空筛选整理自scipy.org大神的英文原创作品 scipy.stats.ecdf。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。