顺便说一句,有人建议我可以在python中使用半正态分布来设置从0到无穷的最小和最大点:halfnorm.rvs()
0似乎切断了最小值,但是我不知道如何处理无穷大。
我想在正态分布内制作一个0到15的数字生成器,但是由于分布限制的性质,很难找到一个不会超过最大值或低于最小值的函数。
我会尝试使用beta发行版:https : //en.wikipedia.org/wiki/Beta_distribution。它非常简单(例如集成),并且能够拟合典型的反应时间分布。
现在的问题是如何针对固定的α和β参数有效地对其进行采样...scipy
已经为我们做到了:https : //docs.scipy.org/doc/scipy/reference/生成/scipy.stats.beta.html
编辑:出于评论和好奇心的动机,这里是一个示例,绘制了10个样本á1000值的直方图:
from scipy.stats import beta
from numpy import histogram
import pylab
max_time = 3
min_time = 0.5
a, b = 2, 7
dist = beta(a, b)
for _ in range(10):
sample = min_time + dist.rvs(size=1000) * (max_time - min_time)
his, bins = histogram(sample, bins=20, density=True)
pylab.plot(bins[:-1], his, ".")
pylab.xlabel("Reaction time [s]")
pylab.ylabel("Probability density [1/s]")
pylab.grid()
pylab.show()
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句