Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
268 views
in Technique[技术] by (71.8m points)

simulation - Is there a python function similar to np.random.multivariate_normal that generates NON-NORMAL distribution?

Python function np.random.multivariate_normal(mean, cov, n) generates NORMAL random series with given covariance and mean. I would like to generate random series with given covariance and mean, but NOT NORMAL. Is there such a funcion IN PYTHON?

In my case I have time series for 10 stock returns. Those returns are not normal-distributed. I want to simulate 5000 returns for each stock, in such a way that they have same mean and covariance as my original stocks returns. I don't want those simulated returns to be normal-distributed, but rather to have a distribution similar to the original stocks.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

You can reach a random distribution you'd like by mapping a uniform distribution to an inverse CDF function (edit: if it has a closed form CDF, like @pjs mention below) of your distribution.

here is a good SO resource. and here is a good explanation how to do it


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...