簡體   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