- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我尝试执行 Hampel tanh estimators规范化高度不对称的数据。为此,我需要执行以下计算:
给定 x
- 一个排序的数字列表和 m
- x
的中位数,我需要找到 a
这样 x
中大约 70% 的值落在 (m-a; m+a)
范围内。我们对 x
中值的分布一无所知。我使用 numpy 在 python 中编写,我最好的想法是编写某种随机迭代搜索(例如,如 Solis and Wets 所描述的),但我怀疑有更好的方法,或者是更好的算法或作为现成的功能。我搜索了 numpy 和 scipy 文档,但找不到任何有用的提示。
编辑
Seth suggested使用 scipy.stats.mstats.trimboth,但是在我的偏态分布测试中,这个建议没有用:
from scipy.stats.mstats import trimboth
import numpy as np
theList = np.log10(1+np.arange(.1, 100))
theMedian = np.median(theList)
trimmedList = trimboth(theList, proportiontocut=0.15)
a = (trimmedList.max() - trimmedList.min()) * 0.5
#check how many elements fall into the range
sel = (theList > (theMedian - a)) * (theList < (theMedian + a))
print np.sum(sel) / float(len(theList))
输出是 0.79(~80%,而不是 70)
最佳答案
您首先需要通过将所有小于均值的值折叠到右侧来使您的分布对称。然后你可以在这个单边分布上使用标准的 scipy.stats
函数:
from scipy.stats import scoreatpercentile
import numpy as np
theList = np.log10(1+np.arange(.1, 100))
theMedian = np.median(theList)
oneSidedList = theList[:] # copy original list
# fold over to the right all values left of the median
oneSidedList[theList < theMedian] = 2*theMedian - theList[theList < theMedian]
# find the 70th centile of the one-sided distribution
a = scoreatpercentile(oneSidedList, 70) - theMedian
#check how many elements fall into the range
sel = (theList > (theMedian - a)) * (theList < (theMedian + a))
print np.sum(sel) / float(len(theList))
这将根据需要给出 0.7
的结果。
关于python - 寻找合适的截止值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5218048/
我正在使用 Skrollr 插件,它在桌面上运行良好。但在 iPad 上,我的文档的高度被 chop 了。我尝试删除所有 skrollr 数据属性,但问题仍然存在,我注意到只需激活插件就会遇到此问题。
我正在使用顶部栏作为我的顶部导航设置一个新站点。我的代码在空白页面上运行,所以我知道菜单结构是正确的,但是当我将它集成到我的网站设计中时,下拉菜单被截断/隐藏在主要内容后面。 未剪裁: 剪辑: 最佳答
这个问题已经有答案了: Unknown Column In Where Clause (16 个回答) 已关闭 5 年前。 当我在 MySQL 中尝试这个时: select make,count(*)
当 navController 出现在 UIPopoverController 中时,我的 UIBarButtonItem 在导航栏中被截断。知道是什么原因造成的吗? 问题截图:http://www.
我是一名优秀的程序员,十分优秀!