这个问题不太可能对任何未来的访客有帮助;它只与一个较小的地理区域、一个特定的时间点或一个非常狭窄的情况相关,通常不适用于全世界的互联网受众。为了帮助使这个问题更广泛地适用,访问帮助中心 /help/reopen-questions 。
GBM 的基本模拟似乎不起作用。我究竟做错了什么?以下代码始终输出小于 1e-20 的值,而不是随机分布在 1.0 附近的值:
import math
import random
p = 1
dt = 1
mu = 0
sigma = 1
for k in range(100):
p *= math.exp((mu - sigma * sigma / 2) * dt +
sigma * random.normalvariate(0, dt * dt))
print(p)
我在跑:
ActivePython 3.1.2.3(ActiveState Software Inc.)基于
Python 3.1.2(r312:79147,2010 年 3 月 22 日,12:30:45)[MSC v.1500 64 位(AMD64)]
win32
我的操作系统是 i7-930 CPU(64 位)上的 Windows 7 Professional。
我很乐意在我的机器上运行任何其他测试来隔离问题。
我找到了答案。代码没有问题。只是生成的对数正态分布具有巨大的尺度参数 = 1 * sqrt(100) = 10。尺度为 10 时,偏度非常严重。
因此,即使分布的平均值是 1.0,也需要数十亿次迭代(如果不是数十亿亿 ) 查看大于 1.0 的单个数字。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)