因果关系库。
cause-effect的Python项目详细描述
安装它
您可以通过以下方式安装cause_effect:
$ pip install cause_effect
或者,您可以直接从代码库安装:
$ pip install hg+http://bitbucket.org/hyllos/cause_effect
核心功能
- pareto(values)
- 数字列表是否存在pareto分布(ratio<;=1)?
- mccauses(values)
- 哪些原因具有最高浓度(秩*值)?
- mceffects(values)
- 哪个效应的浓度最高?
- separator(values)`
- 最高浓度从哪个值(包括)开始?
- causes(values, effects=0.8)
- 确定特定影响份额的原因。
- effects(values, causes=0.2)
- 确定特定部分原因的影响。
次要功能
- ratio(values)
- entropy除以control_limit。
- entropy(values)
- 计算值的熵。
- control_limit(count)
- 计算count个元素(长度values)的控制熵。
三级函数
- make_causes(count)
- 返回原因列表,该列表是元素数量的累积百分比count。
- make_effects(values)
- 返回值累积百分比的效果列表。
- make_concentration(values)
- 返回排名*值的values列表的浓度列表。
- sort_list(values)
- 返回已排序的号码列表。
参数
values是一个数字列表。 effects和causes必须是介于0和1(包括)之间的数字。 count是values列表的长度
使用它
函数pareto告诉您数字列表是否存在pareto分布:
fromparetoimportpareto,mccauses,mceffectspareto([789,621,109,65,45,30,27,15,12,9])True
这里,我们有一个帕累托分布。 那是少数人造成的大多数影响。
但是哪个少数人导致哪个多数人呢?
mccauses([789,621,109,65,45,30,27,15,12,9])0.2mceffects([789,621,109,65,45,30,27,15,12,9])0.818815331010453
20%的原因影响82%的结果。
但是那20%是多少呢?
separator([789,621,109,65,45,30,27,15,12,9])621
所有大于或等于621的值都是导致82%结果的20%。
就这样。
深入挖掘
只有90%的效果需要多少原因?
fromparetoimportcauses,effectscauses([789,621,109,65,45,30,27,15,12,9],0.9)0.4
40%
只有10%的原因背后有多少影响?
effects([789,621,109,65,45,30,27,15,12,9],0.1)0.458
45.8%。
它是如何工作的?
pareto计算效果列表的entropy:
fromparetoimportentropy,control_limit,ratioentropy([789,621,109,65,45,30,27,15,12,9])1.9593816735406657
它计算由10个元素组成的控制组的熵。这是我们名单的长度。
control_limit(10)2.7709505944546686
然后检查entropy是否小于或等于control_limit。
这可以简化为:
values=[789,621,109,65,45,30,27,15,12,9]entropy(values)/control_limit(len(values))<=1
比较的左侧由ratio完成。 因此,如果您想了解您离p are to分布有多远或多远,请执行以下操作:
ratio([109,65,45,30,27,15,12,9])1.051
如果删除前两个效果,值将超过control_limit。 因此,我们在这里了解到帕累托分布在前两种效应下消失了
mccauses和mceffects返回浓度(秩*值)最高的原因和影响的各自份额。
历史
0.2.0(2016年10月21日)
- 添加函数分隔符()。
- 简化测试
0.1.0(2016年10月20日)
- pypi上的第一个版本。