首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >数据丢失时置信限中的scipy.mstats.theilslopes错误

数据丢失时置信限中的scipy.mstats.theilslopes错误
EN

Stack Overflow用户
提问于 2015-05-21 22:51:35
回答 1查看 389关注 0票数 3

如果在缺少值的数据集中使用scipy.mstats.theilslopes例程,则斜率估计的下界和上界的结果是不正确的。上限通常/总是(?)NaN,而下界是完全错误的。之所以会发生这种情况,是因为它们的斜坡例程将索引计算到排序的斜率数组中,而这个数组包含了不应该丢失的值的斜率。

解决方案是在分析之前删除丢失的值,但这是没有文档记录的。

为了演示这个问题,下面是一个简单的代码片段:从scipy.stats导入mstats将numpy导入为np

代码语言:javascript
运行
AI代码解释
复制
x = np.arange(12)
y = np.array([28.9, 26.2, 27.2, 26.5, 28.4, 25.3, 26.1, 24.8, 27.7,
              np.nan, np.nan, 29.6])

slope, intercept, lo_slope, up_slope = mstats.theilslopes(y, x,
                                                          alpha=0.1)
print "incorrect: ", slope, lo_slope, up_slope

idx = [0, 1, 2, 3, 4, 5, 6, 7, 8, 11]
x = x[idx]   # equivalent to pandas series.dropna()
y = y[idx]

slope, intercept, lo_slope, up_slope = mstats.theilslopes(y, x,
                                                          alpha=0.1)
print "correct: ", slope, lo_slope, up_slope
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-22 05:42:06

mstats模块的scipy.stats中,“缺失值”是使用蒙面阵列处理的。nan并不表示缺少值。

下面展示了如何将数组y (它使用nan来表示缺失的值)转换为蒙面数组my

代码语言:javascript
运行
AI代码解释
复制
In [48]: x = np.arange(12)

In [49]: y = np.array([28.9, 26.2, 27.2, 26.5, 28.4, 25.3, 26.1, 24.8, 27.7, np.nan, np.nan, 29.6])

In [50]: my = np.ma.masked_array(y, mask=np.isnan(y))

In [51]: my
Out[51]: 
masked_array(data = [28.9 26.2 27.2 26.5 28.4 25.3 26.1 24.8 27.7 -- -- 29.6],
             mask = [False False False False False False False False False  True  True False],
       fill_value = 1e+20)

In [52]: slope, intercept, lo_slope, up_slope = mstats.theilslopes(my, x, alpha=0.1)

In [53]: print "correct: ", slope, lo_slope, up_slope
correct:  -0.125 -0.48 0.3875

顺便说一句,请确保您正在使用的是至少0.15.0版本的you。旧版本的theilslopes有一些bug:https://github.com/scipy/scipy/pull/3574

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30390131

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档