单位系统内部征文,领导找了多年前文章出来投稿,原始数据找不到了,需要给编一份。 已知样本数、平均值和标准差,求原始数据,哪位高手能给个 excel 公式?
目前搜集到信息,湾湾某网站有大神做出来公式,但时间久远,网站不开放注册,下载不到。 附上网址: http://f.pil.tw/thread-48818-1-1.html 内容: [求助] 有"給平均值和標準差之後,隨機給予一群數字"的軟體嗎??
如 aia 所說,平均數可以用平移法修正,其實標準差也可以用縮放法修正 大家別忘了,標準差的意義是距離平均值的離散程度 所以我們只要以平均值為中心對所有數據作縮放,就可以自由的操控標準差了。
附件的 excel 檔是我試作出來的試算表,只要輸入樣本數、平均值及標準差就可以自動產生數據了,有興趣的人可以自行參考公式(有設保護,但沒設密碼) 原本只是覺得好玩,剛剛突然發現這個表格也可以用來掰數據唬爛客戶,真是不錯
1
gwy15 2019-12-27 16:50:16 +08:00
……你自己稍微看看公式不就行了?
随便生成一组随机数,调整平均值到 0,比例缩放调整标准差到你的要求,再加上平均值 |
2
dbw9580 2019-12-27 16:51:11 +08:00 via Android
需要知道是什么类型的分布,然后从平均值和标准差算出分布的参数
|
3
NullErro 2019-12-27 17:01:05 +08:00
听我的,就算你是随便编的数,也没有人知道
|
4
ipwx 2019-12-27 17:02:57 +08:00
你先确定一个分布族,然后根据平均值和标准差(即二阶矩)估一下分布族的参数,然后根据分布族来产生数据不就得了。标准做法,有啥神不神的。
至于局限于使用 excel 公式,那是你自己找麻烦。 |
6
gwy15 2019-12-27 17:12:57 +08:00
代码给你
a = np.random.rand(N) a = avg + (a - a.mean()) * (std / (a - a.mean()).std()) |
7
green15 2019-12-27 17:28:11 +08:00 via iPhone 2
额……经常逆( zao )推( jia )数据。
确定随机分布类型,样本个数,标准差,均值;四个关键点就行了。像楼主这样默认正态分布就行了,真不难 |
11
lithiumii 2019-12-27 19:53:08 +08:00
import random
import numpy as np # 假定你要搞的数据是 样本数 = 50 平均值 = 77.98 标准差 = 10.344 # 假定都是整数,另外有个取值范围 取值范围 = (0, 100) # 随机一个看看 数据 = [random.randint(取值范围[0], 取值范围[1]) for i in range(样本数)] # 准备一个函数判断随机结果对不对(回复会吞空格,缩进用下划线代替空格表示) def 符合条件(数据, 平均值 = 平均值, 标准差 = 标准差): ____实际均值 = np.mean(数据) ____实际标准差 = np.std(数据) ____if 实际均值 == 平均值 and 实际标准差 == 标准差: ________return True ____else: ________return False # 不断随机,直到数据符合条件 while not 符合条件(数据): ____数据 = [random.randint(取值范围[0], 取值范围[1]) for i in range(样本数)] # 运气好的话,在天荒地老之前就可以得到符合条件的数据了! |
12
xiri 2019-12-27 20:01:14 +08:00 via Android
先确定分布类型,然后按这个分布随机生成一组均值为 0 的数据,最后再根据需要的均值做偏移就行了
|
13
yiqiok 2019-12-27 20:19:46 +08:00
|
14
green15 2019-12-27 21:12:31 +08:00 via iPhone
@Findurway 看你领导要求,常用那几款统计软件都行,也可以外挂 excel 插件,不过简单的,用 minitab 就可以了。你这 8 个样本量太小,做抽样统计就无所谓准不准了→_→只能说一定程度满足分布。
|
15
manhan9100 2019-12-28 00:03:58 +08:00 via iPhone
|