2.11 生成可控的随机数据集合
1、首先我们需要了解一些术语
(1)分布或者概率分布:表示统计实验的结果和发生概率之间的联系。
(2)标准差:这个数值表示个体和群体之间的差异。如果差异很大,标准差会比较大;如果所有个体实验在整组范围内基本相同,标准差会比较小。
(3)方差:标准差的平方
(4)总体或者统计总体(Population or statisticalpopulation):所有潜在的可观测案例的集合
(5)样本:这是总体的子集
2、用Python的random模块生成一个简单的随机样本数据
import pylab
import random
SAMPLE_SIZE = 100
"""
种子随机发生器
如果没有提供参数
使用系统当前时间
"""
random.seed()
# 在此处存储生成的随机值
real_rand_vars = []
# 我们不需要迭代器值,我们把它叫做‘—’
for _ in range(SAMPLE_SIZE):
# 获取下一个随机值
new_value = random.random()
real_rand_vars.append(new_value)
# 从10个桶中的数据创建直方图
pylab.hist(real_rand_vars, 10)
# 定义x和y标签
pylab.xlabel("Number Range")
pylab.ylabel("Count")
pylab.show()
这是一个均匀分布的数据样本,可以运行看到如下图:
可以用random.randint(min, max)。这里的 min 和 max 指相应的下限和上限。如果想生成浮点数而不是整数的样本,可以用random.uniform(min, max)方法
3、生成虚拟价格增长数据的时序图,并加上一些随机噪声
代码实现如下:
"""
生成虚拟价格增长数据的时序图,并加上一些随机噪声
"""
import pylab
import random
# 生成数据的天数
duration = 100
# 平均值
mean_inc = 0.2
# standard deviation(标准差)
std_dev_inc = 1.2
# time series(时间序列)
x=range(duration)
y=[]
price_today=0
for i in x: