如何计算Python中两个二项分布变量的联合概率分布?

时间:2015-06-05 20:37:20

标签: python scipy probability

是否有一个现有的公式,也许在scipy.stats中,它允许我计算两个二项式变量的联合概率,如下图所示?

enter image description here

我想做的是测试联合概率与1相比是否具有统计显着性。

我不确定要使用哪个测试(binom.pmf,binom.sf,binom.cdf)才能执行此操作。

编辑1:

举一个我想如何应用它的例子。考虑一个在趋势向上和向下趋势的市场交易的交易者。交易者可以购买资产或卖空资产。因此,如果他在市场处于上升趋势(下降趋势)时买入(卖出)该资产,那么交易者将获利($ \ pi $),如果他在市场买入时卖出(卖出)该资产,他将会亏损。处于下降趋势(上升趋势)。因此,我有兴趣计算联合概率,使得交易者在上升趋势和下降趋势市场中的随机概率超过50%。换句话说:

$$ \ text {H $ _0 $:Pr}(i \ in Buy | profit> 0)+ \ text {Pr}(i \ in Sell | profit> 0)= 1 $$

如果交易者能够在上升趋势和下降趋势市场中进行有利可图的交易,那么交易者就被认为是技术熟练的,因此在重要性检验中概率的总和超过1。

编辑2

也许第一张桌子有点令人困惑。如果我要绘制前一个例子的列联表,它将如下:

        Uptrend             Downtrend
Buy     profit>0 (Success)  profit<0 (Failure)
Sell    profit<0 (Failure)  profit>0 (Success)

我对上升趋势和下降趋势市场的成功联合概率感兴趣。

1 个答案:

答案 0 :(得分:0)

您给出的公式表明任何特定y_1&amp;的联合概率密度。 y_2只是y_1的概率和y_2的概率(即事件是独立的)的乘积。如果要以编程方式实现此方法以获取概率的二维矩阵,则需要两个向量的外积,其给出y_1和y_2的概率分布。 例如:

from scipy.stats import binom
import numpy
n1, p1 = 10, 0.3
n2, p2 = 15, 0.8
pdf1 = binom(n1, p1).pmf(numpy.arange(0, n1+1))
pdf2 = binom(n2, p2).pmf(numpy.arange(0, n2+1))
joint_pdf = numpy.outer(pdf1, pdf2)