微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从两个变量创建和采样联合分布

如何解决从两个变量创建和采样联合分布

我有一个一直困扰着我的问题。

我有一个 Pandas 数据框,其中两列对应于 ab 系数,这些系数取决于每一行(它们不是独立的):

            a          b
0   13.967158   2.370449
1   12.375649   2.199846
2   12.005615   2.268646
3   12.030142   1.542835
4   12.119529   1.570510
... ... ...
63  12.215212   1.677631
64  12.221597   1.483855
65  12.758342   2.311847
66  11.712199   2.505323
67  12.393513   1.402272

这些可以绘制为:

joint distribution

由此,我需要从 ab 变量的联合分布中生成随机样本,但我不知道该怎么做。我尝试使用 np.random.normal(mean_variable,sd_variable,1000) 从每个变量的正态分布中生成随机样本。但是,在创建这些值之后,我不确定如何加入它们。 在这方面的任何想法都会非常有用。 问候

解决方法

您需要对多元正态分布进行采样的函数。这个函数需要一个一维均值数组和一个二维协方差数组,这两者都可以很容易地从你的数据帧中计算出来:

numpy.random.multivariate_normal(df.mean(),df.cov())
#array([11.69993186,1.64400885])

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。