gpt4 book ai didi

python - 模拟满足协方差矩阵的时间序列

转载 作者:太空宇宙 更新时间:2023-11-03 20:16:05 25 4
gpt4 key购买 nike

如何生成具有与输入 df 相同协方差和均值的随机值的 df?

我有一个输入数据框:“my_input_df”,大小= (240, 8) 我想要一个大小为 (10,000 , 8) 的输出数据帧“my_output_df”,其中 10,000 行中的每一行都是相应列的随机抽取,例如 “my_output_df”的 cov 和平均值与协方差和平均值相同 “my_input_df”。

即:

my_input_df:

A B C D
a1 b1 c1 d1
a2 b2 c2 d2
a3 b3 c3 d3
....
a240 b240 c240 d240

my_output_df:
A B C D
rand_a1 rand_b1 rand_c1 rand_d1
rand_a2 rand_b2 rand_c2 rand_d2
rand_a3 rand_b3 rand_c3 rand_d3
...
rand_a10000 rand_b10000 rand_c10000 rand_d10000

My_ouput_df 的每列必须具有随机值,满足:

my_output_df.cov() = my_input_df.cov()

还有:

mean of my_output_df['A'] = mean of my_input_df['A']
mean of my_output_df['B'] = mean of my_input_df['B']
mean of my_output_df['C'] = mean of my_input_df['C']
.... Etc

我怀疑它与 numpy.random.multivariate_normal 有关,但事实并非如此 我清楚如何在数据框中使用它。

最佳答案

谢谢大家。答案很简单:

使用np.random.multivariate_normal并转换为df,如下:

dataNew = np.random.multivariate_normal(my_mean,cov,1000)
where my_mean=my_input_df.mean
and cov = my_input_df.cov()

要将 multivariate_normal 使用的结果转换为 df

my_output_df = pd.DataFrame(dataNew , columns= 'A', 'B', 'C'...)

这有效。再次感谢。

关于python - 模拟满足协方差矩阵的时间序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58440799/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com