python - 如何从具有给定均值、方差、偏度和峰度的正态分布中提取随机数
问题描述
我正在尝试从具有给定mean、variance、skewness和kurtosis的正态分布中提取随机数。
我的第一次尝试是使用 numpy 函数 random.normal 但是对于这个函数,据我所知,我只能传递一个位置(均值)和一个比例(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 函数,请参阅此.
推荐阅读
- google-chrome - 使用 Google 脚本自动化 Chrome?
- python - 在python中编写库时如何处理异常
- angular - 如何设置 mat-grid-tile 的宽度
- .htaccess - .htaccess 到 web.config 问题
- python - 使用线程 python 发送和接收不起作用
- python - Python数据框操作
- java - 合并从类型中获取列表的方法
- javascript - 无法在 Android 的 WebView 中检索 Javascript 方法/对象值
- php - 即使用户输入整数,我可以格式化小数点吗?
- c# - 用 Html 页面或 Javascript 值填充 Html.BeginForm 路由值(不是按模型值)