繁体   English   中英

如何从具有给定均值,方差,偏度和峰度的正态分布中提取随机数

[英]How to draw random numbers from a normal distribution with given mean, variance, skewness and kurtosis

我正在尝试从给定的均值方差偏度峰度的正态分布中提取随机数。

我的第一次尝试是使用numpy函数random.normal但是据我了解,我只能传递一个location( mean )和scale( std )参数。

第二次尝试是从间隔[0,1]中的均匀分布中提取随机数,然后将它们传递给scipy.stats.norm方法ppf。 我看到scipy具有处理偏斜度和峰度的能力,但是我看不到如何将偏斜度和峰度值传递给函数。

如果问题应该以完全不同的方式解决,请告诉我。

尝试1:

import numpy as np

def draw_normal():
    return np.random.normal(loc=0, scale=1) # how to pass skew and kurtosis (excess kurtosis) to the function 

尝试2

import numpy as np
from scipy.stats import norm


def draw_uniform():
    return np.random.uniform(0,1)

def draw_normal_alt():
    return norm.ppf(draw_uniform(),loc=0, scale=1) #how to pass skew and kurtosis (excess kurtosis) to func

您想要的不再是正态分布。 您应该研究其他种类的分布。
注意,许多分布具有相同的均值,方差,偏度和峰度。
有关生成所需内容的python函数,请参见this

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM