已知均值、标准差和样本个数如何模拟一组数据?
已知均值、标准差和样本个数如何模拟一组数据?
朋友要模拟这种数据,她自己查了一个r语言函数rnorm,不懂代码让我帮他模拟一下,我运行完之后发现生成的并不是完全按要求指定均值和标准差的数组,所以我又自己找了一个python代码。在原博主的代码上又改了一下。可以肯定的是我看到的网站是用爬虫在Stack Overflow上爬下来机翻成中文发布的,原Stack Overflow网址:https://stackoverflow.com/questions/51515423/generate-sample-data-with-an-exact-mean-and-standard-deviation
他的做法是:先生成一些具有所需标准偏差的虚假的零均值样本(此时只是接近0但是并不为0)。然后样本数组所有数减去样本均值,使其变成真正为零均值数组。然后缩放样本,使标准偏差准确无误,然后添加所需的平均值。这样就得到了最终所需要的模拟出的数据组。
和原回答不同的是,原回答使用的标准差计算法是np.std(samples)
,也就是整体标准差。
公式:
然而我们一般需要的是样本标准差,
公式:
所以我改成了np.std(samples,ddof=1)
,这样就可以指定为样本标准差。最终能够得到精确结果。
import numpy as npnum_samples = 3
desired_mean = 0.571
desired_std_dev = 0.045samples = np.random.normal(loc=0.0, scale=desired_std_dev, size=num_samples)actual_mean = np.mean(samples)
actual_std = np.std(samples,ddof=1)
print("Initial samples stats : mean = {:.4f} stdv = {:.4f}".format(actual_mean, actual_std))zero_mean_samples = samples - (actual_mean)zero_mean_mean = np.mean(zero_mean_samples)
zero_mean_std = np.std(zero_mean_samples,ddof=1)
print("True zero samples stats : mean = {:.4f} stdv = {:.4f}".format(zero_mean_mean, zero_mean_std))scaled_samples = zero_mean_samples * (desired_std_dev/zero_mean_std)
scaled_mean = np.mean(scaled_samples)
scaled_std = np.std(scaled_samples,ddof=1)
print("Scaled samples stats : mean = {:.4f} stdv = {:.4f}".format(scaled_mean, scaled_std))final_samples = scaled_samples + desired_mean
final_mean = np.mean(final_samples)
final_std = np.std(final_samples,ddof=1)
print("Final samples stats : mean = {:.4f} stdv = {:.4f}".format(final_mean, final_std))print(final_samples)
print(np.mean(final_samples))
print(np.std(final_samples,ddof=1))
已知均值、标准差和样本个数如何模拟一组数据?相关推荐
- 算法2.2 已知线性表LA和LB中的数据元素按值非递减有序排列,现要求将LA和LB归并为一个新的线性表LC,且LC中的数据元素仍按值非递减有序排列。
数据结构(C语言版)严蔚敏 吴伟民 算法2.2 已知线性表LA和LB中的数据元素按值非递减有序排列,现要求将LA和LB归并为一个新的线性表LC,且LC中的数据元素仍按值非递减有序排列.例如,设 LA= ...
- 已知线性表LA和LB中的数据元素按值非递减有序排列,现要求将LA和LB归并为一个新的线性表LC,且LC中的数据元素仍按值非递减有序排列。例如,设 LA=(3,5,8,11) LB=(2,6,8,9,1
已知线性表LA和LB中的数据元素按值非递减有序排列,现要求将LA和LB归并为一个新的线性表LC,且LC中的数据元素仍按值非递减有序排列.例如,设 LA=(3,5,8,11) LB=(2,6,8,9,1 ...
- R计算已知 总体标准差 ,均值 , N 求 置信区间
葡萄酒进口商需要报告某国葡萄酒瓶中酒的平均度数.根据以往葡萄酒的经验,进口商认为酒的度数呈正态分布,总体标准差为12%.进口商随机抽取了60瓶新酒,得出样本均值X=93%.给出所有新酒瓶中酒的度数的9 ...
- 单个正态总体均值的区间估计_总体均值的区间估计 (正态总体: σ2 已知实例).pdf...
总体均值的区间估计 (正态总体: σ2 已知实例) 总体均值的区间估计 (正态总体:σ2已知实例) [1]某种零件 2 解:已知X~N(μ,0.15 ) , ⎯x =2.14, n=9, 长度服从正态 ...
- numpy实现K-means聚类算法(可选是否已知类别数)和VQ-LBG矢量量化算法以及散点数据生成(含完整实验报告)
numpy实现K-means聚类算法(可选是否已知类别数)和VQ-LBG矢量量化算法以及散点数据生成(含完整实验报告) 实验报告完整,质量不低,加上你学校的封面就能交,也可用来交流学习: (20条消息 ...
- 均值已知检验方差_χ2检验教案:独立性检验的z统计量
摘要:「如无必要勿增实体」. 独立性检验在统计教学场合可以替代为 T 检验.F 检验,在研究应用场合应当替代为Odds Ratio置信区间的Fisher检验.或者独立两样本均值之差置信区间(连续性校正 ...
- R语言使用dplyr包使用group_by函数、summarise函数和mutate函数计算分组下的均值、标准差、样本个数、以及分组均值的95%执行区间对应的下限值和上限值(Calculate CI)
R语言使用dplyr包使用group_by函数.summarise函数和mutate函数计算分组下的均值.标准差.样本个数.以及分组均值的95%执行区间对应的下限值和上限值(Calculate 95% ...
- R语言使用psych包的describeBy函数计算不同分组(group)的描述性统计值(样本个数、均值、标准差、中位数、剔除异常均值、最小最大值、数据范围极差、偏度、峰度、均值标准差等)
R语言使用psych包的describeBy函数计算不同分组(group)的描述性统计值(Summary statistics by group using describe.by() in the ...
- 假设检验 - 区间估计 (总体标准差σ已知)
标准正态分布表(带x) 1.所谓的正态分布表都是标准正态分布表(n(0,1) [标准差=1,平均值=0],通过查找实数x的位置,从而得到p(z<=x). 2.表的纵向代表x的整数部分和小数点后第 ...
最新文章
- 图像配准----NCC
- gitee markdown 笔记_picGo+github+坚果云打造自己的云笔记
- 【 FPGA 】数字系统设计方法的演变
- Mysql无法创建外键的原因
- 钉钉宜搭邀您体验全新升级的数据管理页
- gcc 的visibility
- 机器学习流行算法一览
- Codeforces Round #736 (Div. 1Div2)
- python三维数据本地保存_如何将3D Python/NumPy数组保存为文本文件?
- php边框的颜色 怎么设置,网页中table表格如何修改边框颜色
- 数学计算机电路基础,2019上“计算机电路基础”作业(五大题共16小题).docx
- 企业需要安全人,看微软对员工的十个安全原则
- indesign教程,如何创建对齐参考线?
- 阶段1 语言基础+高级_1-3-Java语言高级_06-File类与IO流_02 递归_4_练习_递归打印多级目录...
- pytorch DataLoader 自定义 sampler
- MATLAB的Monte Carlo方法,Monte Carlo的某些用法总结_monte carlo
- 2021-08-23:启动idea项目时,控制台显示java程序包不存在,解决办法:Error:java xxxx 程序包不存在
- 水管工游戏(随机地图版)
- 20150802厦门大学华为校园提前批招聘机试体验题三:Word Maze(单词迷宫)
- 艰难2020:人工智能的应用是否已停滞不前?