相关疑难解决方法(0)

获取SciPy分位数以匹配Stata xtile函数

我继承了一些旧的Stata代码(Stata11),它使用xtile函数按照分位数对矢量中的观测值进行分类(在这种情况下,只有标准的5个五分位数,20%,40%,60%,80%,100%) .

我正在尝试用Python复制一段代码,我正在使用SciPy.stats.mstats函数mquantiles()进行计算.

尽管我从Stata文档和在线搜索中可以看出,Stata xtile方法试图反转数据的经验CDF,并使用CDF为平坦的所有观测值的等加权平均值来制作切点.这似乎是对分位数进行分类的一种非常差的方法,但它就是这样,我确信有些情况下这是正确的做法.

我的问题是如何使mquantiles()产品成为同类的破坏惯例.我注意到这个函数有两个参数,alphap并且betap(文档调用它们alpha,beta但是你需要额外的'p'来使它工作,至少我这样做...如果我只使用'alpha'和'我会收到错误beta'与Python 2.7.1和SciPy 0.10.0).但即使在SciPy文档中,我也看不出是否存在这些参数的组合产生平均CDF范围的平均值.

我看到计算的选项看起来像这个范围的中位数或模式,但不是平均值(也不清楚这些具有alpha和beta的SciPy中位数/模式选项是否被计算为观察的中位数/模式或者可产生平坦CDF值的范围.)

任何帮助消除这些不同选项的歧义并找到一些文档可以帮助我在Python中重新创建Stata约定会很棒.请不要只说"编写自己的分位数函数"的答案.首先,这并不能帮助我理解Stata或SciPy的惯例,其次,给定这些数值库,编写我自己的分位数函数应该是最后的手段.我当然可以做到,但如果我需要的话,它会很糟糕.

python scipy quantile stata

2
推荐指数
1
解决办法
1121
查看次数

标签 统计

python ×1

quantile ×1

scipy ×1

stata ×1