-
用
excel
产生随机数
统计软件提供的随机数发生器可以使我们对抽样分布进行
计算机模拟,
对抽
样分布有更加直观的理解。
< br>Excel
的分析工具库中有一个
“随机数发生器”
p>
模块,
可以产生服从大部分常用分布的模拟数据,但没有提供直接产
生随机数的函数。
在
SPSS
中产生随
机数的函数在“
Randomnumbers
”类别中,相应的
函数都是以
Rv
开头的。
1
样本均值抽样分布的随机模拟
<
/p>
假总体的均值为
?
,标准差为
?
,则统计理论表明,不论总体的分布如何,
只要
样本容量
n
足够大,样本均值的分布总会趋向于正态分布,且均
值为
?
,标
准差为
?
n
。
例题:假设总体为均匀分布,模拟样本均值的抽样分布。
p>
假设总体的分布为
0-1
区间上的均匀分布
,则总体的均值为
0.5
,方差等于
1
/12
,标准差等于
0.288675
。现在,我们从总体中抽取
1000
个样本容量为
2
的样
本(有放回抽样),计算每个样本的样本均值
,然后观察样本均值的分布状况。
新建一个
< br>Excel
工作簿,单击“工具”
“数据分析”
“随机数发生器”,
在
弹出的对话框中把变量个数设为
2
,
随
机数个数为
1000
,
选择
0-1
区间的均匀分
布,
结果放在新工作表中
(图
1
)
。
把输出结果的每一行看作一个容量为
2
的样本,
共有
1000
个样本。在
C
列中计算每个样本的均值。接下来我们就可以分
析这
1000
个样本均值的分布状况了。
由于
SPSS
的直方图工具更为方便,
我们把相应的数据
复制到
SPSS
中
作直方图,结果如图
2
,抽样分布的均值为
0.5097
,标准差为
0.20345
< br>,理论值等于
0.288675/ 2
=0.20412
,两者差异不大。
图
1
随机数发生器对话框
图
2
样本均值的抽样分布,样本容量
=2
2
样本比例抽样分布的随机模拟
<
/p>
样本比例实质上就是指标数值只能取
0
和
1
时的样本均值。
由于在这种情况下<
/p>
总体的分布为
0-1
分布,因此在重复抽
样的条件下样本均值抽样分布的理论分布
是二项分布。中心极限定理表明当样本用量足够
大(能够保证
np
≥
5
,
nq
≥
5
< br>)时
二项分布可以用正态分布来近似。
[
例
]
假设
有大批零件,不合格率
p
为
0.2
p>
。随机模拟从总体中抽取样本容量
分别为
5
,
20
,
50
的
2000
个样本,分析样本比例
p>
p
? 的抽样分布。
新建一个工作表,在单元格中输入图
5-10
左上角所示的
信息作为总体:总体
中取值为
1
(不合
格)的概率为
0.2
,取值为
0
(合格)的概率为
0.8
。
< br>
图
3
二项分布的随机模拟
使用
Excel
的随机数发生器,在分布中选择“离
散”,数值与概率区域选为
$$A$$1:$$B$$2
,变量个数设为
5
,随机数设为
2000
(图
3
)。在输出数据中,把每一
< br>行看作一个随机样本,计算样本比例(均值)。在
SPSS
中作样本比例抽样分布的
直方图,如图
4
。
图
4
样本比例的抽样分布,样本容量
=5
这是百度知道一位同学的提问。要求生成范围为
1
到
50
的随机整数,并且,
1
-
15
的机率为
50%
,
16
-
< br>36
的机率为
30%
,
37
-
50
的机率为<
/p>
20%
。同时还要求
生成
500
组,每组
8
个。
我当时给出一个公式:
=if(rand(
)<0.5,round(rand()*14,0)+1,if(rand()<0.6,round(ran
d()*20,0)+
16,round(rand()*13,0)+37))
p>
这里说下用
round
和用
int
的区别,用
int
生成
16
-
36
的
随机数的话应该用
int(rand()*21+16)
,
p>
而用
round
可用
round(rand()*20+16)
,
这后面的
+16
放括
号里面外面都一样,因为取整操作
是由小数部分决定的。
还有我第二个
if
的判断用的是
rand()<0.6
而不是小于
0.3
,
这是因为第二个
if
会执行的机率是
50%
,
50%
乘以
0.6
p>
就是
30%
。
<
/p>
后来楼主同学又出怪招,
要求每组无重复数字,每组从小到大排列
。
这个只用单纯的公式的话不好办了。
我写了个
VBA
:
Sub madeRnd()
Dim i, j, k,
a(8), flag, t
Sheets(