如何从给定均值,方差,偏度和峰度的正态分布中绘制随机数

问题描述 投票:0回答:1

我试图从给定均值,方差,偏度和峰度的正态分布中抽取随机数。

我的第一次尝试是使用numpy函数random.normal但是对于这个函数,据我所知,我只能传递一个位置(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 numpy random scipy normal-distribution
1个回答
3
投票

你想要的不再是正常的分布。你应该研究其他类型的发行版。 请注意,有许多分布具有相同的均值,方差,偏度和峰度。 对于生成所需内容的python函数,请参阅this

© www.soinside.com 2019 - 2024. All rights reserved.