我需要在Python中从零均值和单位方差的Burr-Type XII分布中采样。在scipye中有scipy.stats.burr12
,这似乎是正确的选择。但是,我不清楚如何设置参数c,d,loc和scale以使分布具有零均值和单位方差。
我试过设置c=1和d=2.1,用mean,var=burr12.stats(c,d,moments='mv')
计算均值和方差,并尝试用x=(burr12.rvs(c,d)-mean)/np.sqrt(var)
重新调整样本。然而,如果我用1000个这样的随机样本制作直方图,它看起来不像有0个均值和单位方差。
我应该如何设置c、d、loc和scale,以使样本的均值为零,方差为单位?
非常感谢提前。
1条答案
按热度按时间nx7onnlm1#
我应该如何设置c、d、loc和scale,以使样本的均值为零,方差为单位?
首先,我将回答这个问题:“我应该如何设置c,d,loc和scale,以便 * 分布 * 具有零均值和单位方差?”
简而言之,使用
root
来求解所需的参数。字符串
您可以确认随机变量的PDF和直方图彼此非常一致。
型
的数据
直方图中的轻微过量是由直方图在[0,1]而不是[0,oo]上归一化的事实解释的。
尽管如此,* 样本 * 均值和 * 样本 * 方差并不完全符合您的预期。
型
这是不可避免的,除非你可以画一个无限大的样本。分布是重尾的,所以当考虑整个总体时,有一些罕见但非常大的值会增加方差,但你观察到的样本方差会倾向于更小的值。
除此之外,由于样本服从分布,因此还需要确定样本的均值和单位方差为零的含义。如果希望它们每次都恰好为0和1,则可以从样本中减去样本均值,然后除以样本标准差。