【发布时间】:2021-06-28 08:45:48
【问题描述】:
我进行了一项实验,其中我得到了 6 个不同数量级的大小,现在我想看看我的观察是否有意义。我必须执行 MC 模拟以获得 p 值,以查看我的观察值与 null 相比是异常大还是异常小。
我需要:
- 设置顺序 1 为 0 到 1/6,顺序 2 为 1/6- 到 2/6,顺序 3 为 2/6 到 3/6 的方案
- 生成 20 个介于 0 和 1 之间的随机数并将它们分配给这些 bin。如果数字 if
我应该有 6 个新数字,每个 bin 一个,加起来是 20,但我的输出是 0。我是 python 新手,我做错了什么?
我的代码在这里:
from random import randint
from random import seed
# seed random number generator
seed(1)
counter = 0
chi_sq_values = []
# want 10,000 simulations
while counter < 10000:
# will eventually mimic your real six orders of size
sim_orders = [0, 0, 0, 0, 0, 0]
# generating 20 random numbers
for i in range(20):
numbers = randint(0, 1)
if 0 <= numbers <= 1 / 6:
numbers += sim_orders[0]
if 1 / 6 <= numbers <= 2 / 6:
numbers += sim_orders[1]
if 2 / 6 <= numbers <= 3 / 6:
numbers += sim_orders[2]
if 3 / 6 <= numbers <= 4 / 6:
numbers += sim_orders[3]
if 4 / 6 <= numbers <= 5 / 6:
numbers += sim_orders[4]
if 5 / 6 <= numbers <= 6 / 6:
numbers += sim_orders[5]
print(sim_orders)
【问题讨论】:
-
这段代码有很多地方是错误的。
counter += 1没有被写入,sim_orders = [0, 0, 0, 0, 0, 0]它们都是 0,而且你永远不会改变它们的值,那么print(sim_orders)将如何提供除了[0,0,0,0,0,0]之外的任何东西
标签: python statistics montecarlo