【问题标题】:Create and sample joint distribution from two variables从两个变量创建和采样联合分布
【发布时间】:2021-07-30 19:21:58
【问题描述】:

有个问题一直困扰着我。

我有一个 pandas 数据框,其中两列对应于 a 和 b 系数,它们取决于每一行(它们不是独立的):

            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

这些可以绘制为:

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

【问题讨论】:

    标签: python pandas numpy statistics distribution


    【解决方案1】:

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

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

    【讨论】:

    • 哇,这是一个简短、直接、准确的答案!非常感谢!
    猜你喜欢
    • 2021-08-13
    • 1970-01-01
    • 1970-01-01
    • 2016-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多