从两个变量创建和采样联合分布
Create and sample joint distribution from two variables
有个问题一直困扰着我。
我有一个 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)
从正态分布为这些变量中的每一个生成随机样本。但是,在创建这些值之后,我不确定如何加入它们。
在这方面的任何想法都会非常有用。
此致
您需要对多元正态分布进行采样的函数。此函数需要一个一维均值数组和一个二维协方差数组,这两者都很容易从您的数据框中计算出来:
numpy.random.multivariate_normal(df.mean(), df.cov())
#array([11.69993186, 1.64400885])
有个问题一直困扰着我。
我有一个 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)
从正态分布为这些变量中的每一个生成随机样本。但是,在创建这些值之后,我不确定如何加入它们。
在这方面的任何想法都会非常有用。
此致
您需要对多元正态分布进行采样的函数。此函数需要一个一维均值数组和一个二维协方差数组,这两者都很容易从您的数据框中计算出来:
numpy.random.multivariate_normal(df.mean(), df.cov())
#array([11.69993186, 1.64400885])