首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >python中np.random.multinomial和size选项的问题

python中np.random.multinomial和size选项的问题
EN

Stack Overflow用户
提问于 2022-09-14 23:26:22
回答 1查看 57关注 0票数 0

我的问题是:我让N的人在三个对象之间进行选择-- [1,2,3]和概率[p_1,p_2,p_3],比如p_1+p_2+p_3=1。让我们将X_1,X_2,X_3称为N人员中一个示例中所选对象的计数(例如,X_1是选择对象1的人数)。

向量X_1,X_2,X_3服从多项式分布和维基百科一样。众所周知,cov(X_1,X_2) ( X_1,X_2)=-N*p_1*p_2

我想验证这个协方差公式。我做了两个实验得到了不同的结果。我不明白为什么。

尝试使用A I编码(使用p_1=0.4,p_2=0.2,p_3=0.4N=50):

代码语言:javascript
运行
复制
q=np.random.multinomial(50, [0.4,0.2,0.4],size=1000)
df=pd.DataFrame(q,columns=["X_1","X_2","X_3"])
cov_matrix=np.cov([df["X_1"],df["X_2"],df["X_3"]])

在我的具体例子中,我得到了cov(X_1,X_2)=-4.44586486:它非常类似于我所期望的-N*p_1*p_2=-50*0.4*0.2=-4

尝试B (在这里,我依次创建多项绘制的示例),我编码了:

代码语言:javascript
运行
复制
s=[1]*1000 # 1000 as the size
df["constant"]=s
df["X_1"]= df.apply(lambda x: np.random.multinomial(50, [0.4,0.2,0.4])[0],axis=1)
df["X_2"]= df.apply(lambda x: np.random.multinomial(50, [0.4,0.2,0.4])[1],axis=1)
df["X_3"]= df.apply(lambda x: np.random.multinomial(50, [0.4,0.2,0.4])[2],axis=1)
cov_matrix=np.cov([df["X_1"],df["X_2"],df["X_3"]])

在我的具体案例中,我得到了cov(X_1,X_2)=-0.087452:它与我所期望的(即4)非常不同。

在我看来,AB之间唯一的区别是,在A size=1000中,而在B中,我为数据数据的每一行创建了一个平局。

为什么我会得到不同的结果?我犯了哪些错误?有一个类似的问题这里,但答案并不是很有帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-09-15 00:19:57

在第二个示例中,每个列都是独立于其他列生成的,因此每一行不再是单个多项式分布的示例。(例如,请注意行的总和不是50。)实际上,每一列都是独立于其他列的二项式分布。

第二个例子与此等价(请注意,我使用的是较新的随机API):

代码语言:javascript
运行
复制
In [142]: rng = np.random.default_rng()

In [143]: p = rng.binomial(50, [0.4, 0.2, 0.4], size=(1000, 3))

In [144]: p
Out[144]: 
array([[15, 12, 20],
       [22,  6, 22],
       [17, 12, 17],
       ...,
       [20, 13, 17],
       [27,  9, 24],
       [25,  9, 22]])

In [145]: np.cov(p.T)
Out[145]: 
array([[13.09065465,  0.15038238, -0.22775375],
       [ 0.15038238,  7.85507107, -0.0142022 ],
       [-0.22775375, -0.0142022 , 11.87303203]])
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73724150

复制
相关文章

相似问题

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