Stata软件基本操作和数据分析入门 第三讲概率分布和抽样分布 概率分布累积函数 1.标准正态分布累积函数norm(X) 2.t分布右侧累积函数 tail(df,x),其中df是自由度 3.x2分布累积函数chi2(d,x),其中df是自由度 4.x2分布右侧累积函数 chitai(d,x),其中df是自由度 5.F分布累积函数F(dl,dn2,X),dfl为分子自由度,dn2为分母 自由度 6.F分布右侧累积函数Fdf1,dn,X),dl为分子自由度,dn为 分母自由度 累积函数的计算使用 正态分布计算 X服从N(0,1),计算概率P(X196),则 di 1-norm(1.96) 0249979即概率P(X>1.96)=0.0249979 x服从N(H),则y=x-~N0.D,因此对其他正态分布只要在函 数括号中插入一个上述表达式就可以得到相应概率
Stata 软件基本操作和数据分析入门 第三讲 概率分布和抽样分布 概率分布累积函数 1. 标准正态分布累积函数 norm(X) 2. t 分布右侧累积函数 ttail(df,X) ,其中 df 是自由度 3. χ2分布累积函数 chi2(df,X) ,其中 df 是自由度 4. χ2分布右侧累积函数 chi2tail(df,X) ,其中 df 是自由度 5. F 分布累积函数 F(df1,df2,X),df1 为分子自由度,df2 为分母 自由度 6. F 分布右侧累积函数 F(df1,df2,X),df1 为分子自由度,df2 为 分母自由度 累积函数的计算使用 正态分布计算 X 服从 N(0,1),计算概率 P(X1.96),则 . di 1- norm(1.96) .0249979 即概率 P(X>1.96)=0.0249979 X 服从 N(μ,σ 2 ),则 ~ (0,1) X Y N μ σ − = ,因此对其他正态分布只要在函 数括号中插入一个上述表达式就可以得到相应概率
例如:X服从N(100,62),计算概率P(X90),操作如下 dil-norm(90-100)6) 95220965 x2分布累积概率计算 设X服从自由度为1的x2分布,计算概率P(X>3.84),则操作如下 di1-chi2(1,3.84) 05004353 概率P(X>3.84)=0.05004353 设X服从自由度为3的x2分布,计算概率P(X3.84),则操作如下 di chi2tail(1, 3. 84) 05004353 概率P(X>3.84)=0.05004353 设X服从自由度为3的x2分布,计算概率P(X<5,则操作如下 . di chi2(3, 5) 82820288 概率P(X<5)=0.82820288
例如:X 服从 N(100,62 ),计算概率 P(X90),操作如下 . di 1-norm((90-100)/6) .95220965 χ2分布累积概率计算 设 X 服从自由度为 1 的χ2分布,计算概率 P(X>3.84),则操作如下 . di 1-chi2(1,3.84) .05004353 概率 P(X>3.84)=0.05004353 设 X 服从自由度为 3 的χ2分布,计算概率 P(X3.84),则操作如下 . di chi2tail(1,3.84) .05004353 概率 P(X>3.84)=0.05004353 设 X 服从自由度为 3 的χ2分布,计算概率 P(X<5),则操作如下 .di chi2(3,5) .82820288 概率 P(X<5)=0.82820288
t分布右侧累积概率计算 设t服从自由度为10的t分布,计算概率P(t>22),操作如下 di tail(10, 2.2) 02622053概率P(>22)=0.02622053(注意:这是右累积函数) 设t服从自由度为10的t分布,计算概率P(-2),操作如下 di l-ttail(10, -2) 03669402概率P(t3),操作如下: diI-F(4,40,3) 02954694 概率P(F>3)=0.02954694 F分布右侧累积概率计算 设F服从F(3,27),计算概率P(F3),操作如下: di tail(4, 40, 3) 02954694 概率P(F>3)=0.02954694
t 分布右侧累积概率计算 设 t 服从自由度为 10 的 t 分布,计算概率 P(t>2.2),操作如下 . di ttail(10,2.2) .02622053 概率 P(t>2.2)=0.02622053 (注意:这是右累积函数) 设 t 服从自由度为 10 的 t 分布,计算概率 P(t3),操作如下: . di 1-F(4,40,3) .02954694 概率 P(F>3)=0 .02954694 F 分布右侧累积概率计算 设 F 服从 F(3,27),计算概率 P(F3),操作如下: . di Ftail(4,40,3) .02954694 概率 P(F>3)=0 .02954694
概率分布的临界值计算 正态分布的临界值计算函数 Inhorn(P) 例如:双侧Ua0s(即:左侧累积概率为0975),操作如下 di invnorm(0.975) 1959964即U05=1959964 t分布的临界值计算函数 invttail(df, P) 例如计算自由度为28的右侧累积概率为0.025的临界值t2s,a,操作 如下 di invttail(28.,0.025) 2.0484071 临界值t2a=2.0484071 x2分布的临界值计算函数 inchi(dfP)或 invchi2 tail(df, P) 例如:计算自由度为1的x2右侧累积概率为005的临界值x2a05,操 作如下: di invchi2(1, 0.95) 3.8414591 临界值x20as=3.8414591 或者操作如下: di invchi2tail(1, 0.05) 3.8414591 临界值x20=3.8414591
概率分布的临界值计算 正态分布的临界值计算函数 invnorm(P) 例如:双侧 U0.05(即:左侧累积概率为 0.975),操作如下 . di invnorm(0.975) 1.959964 即 U0.05=1.959964 t 分布的临界值计算函数 invttail(df,P) 例如计算自由度为 28 的右侧累积概率为 0.025 的临界值 t28,α,操作 如下 . di invttail(28,0.025) 2.0484071 临界值 t28,α=2.0484071 χ2分布的临界值计算函数 invchi2(df,P) 或 invchi2tail(df,P) 例如:计算自由度为 1 的χ2右侧累积概率为 0.05 的临界值χ2 0.05,操 作如下: . di invchi2(1,0.95) 3.8414591 临界值χ2 0.05=3.8414591 或者操作如下: . di invchi2tail(1,0.05) 3.8414591 临界值χ2 0.05=3.8414591
F分布的临界值计算函数invF(dl,dn2,P)或invF(d,dm2,P) 例如计算分子自由度为3和分母自由度27的右侧累积概率为0.05的 临界值,操作如下: di inVE(3,27,0.95) 2.9603513 临界值F0(3,27)=29603513 或者操作为: di inv tail(3, 27, 0.05) 2.9603513 临界值F05(3,27)=29603513 产生随机数 计算机所产生的随机数是通过一串很长的序列数模拟随机数,故 称为伪随机数,在实际应用这些随机数时,这些随机数一般都能具有 真实随机数的所有概率性质和统计性质,因此可以产生许许多多的序 列伪随机数,一个序列的第一个随机数对应一个数,这个数称为种子 数(see,因此可以利用种子数,使随机数重复实现。 设置种子数的命令为 set seed数。每次设置同一种子数,则产生 的随机序列是相同的。 产生(0,1)区间上的均匀分布的随机数 uniform 例如产生种子数为100的20个在(0,1)区间上的均匀分布的随机 数,则操作如下 lear 清除内存 set seed 100 设置种子数为100
F 分布的临界值计算函数 invF(df1,df2,P) 或 invF(df1,df2,P) 例如计算分子自由度为 3 和分母自由度 27 的右侧累积概率为 0.05 的 临界值,操作如下: . di invF(3,27,0.95) 2.9603513 临界值 F0.05(3,27)= 2.9603513 或者操作为: . di invFtail(3,27,0.05) 2.9603513 临界值 F0.05(3,27)= 2.9603513 产生随机数 计算机所产生的随机数是通过一串很长的序列数模拟随机数,故 称为伪随机数,在实际应用这些随机数时,这些随机数一般都能具有 真实随机数的所有概率性质和统计性质,因此可以产生许许多多的序 列伪随机数,一个序列的第一个随机数对应一个数,这个数称为种子 数(seed),因此可以利用种子数,使随机数重复实现。 设置种子数的命令为 set seed 数。每次设置同一种子数,则产生 的随机序列是相同的。 产生(0,1)区间上的均匀分布的随机数 uniform() 例如产生种子数为 100 的 20 个在(0,1)区间上的均匀分布的随机 数,则操作如下: clear 清除内存 set seed 100 设置种子数为 100
set obs 20 设置样本量为20 genr= uniform产生20个在(0,1区间上均匀分布的随机数。 显示这些随机数 结果如下 1..7185296 2..1646728 3..9258041 4..1833736 5..0067327 6..7413361 7..3599943 8..1634543 9..445553 10..6489049 1..3799431 12..5964895 13..0251346 14..2164402 15..6848479 16..1270018 17..6466258 18..1869288 19..4522384 067132 利用均匀分布随机数进行随机分组: 例:某实验要把20只大鼠随机分为2组,每组10只,请制定随 机分组方案和措施。 第一步、把20只大鼠编号,1,2,3,4,5,6,7,8,9,10, 11,12,13,14,15,16,17,18,19,20。并且标明。 第二步、用 Stata软件制定随机分组方案,操作如下: clear 清除内存
set obs 20 设置样本量为 20 gen r=uniform() 产生 20 个在(0,1)区间上均匀分布的随机数。 list 显示这些随机数 结果如下 r 1. .7185296 2. .1646728 3. .9258041 4. .1833736 5. .0067327 6. .7413361 7. .3599943 8. .1634543 9. .445553 10. .6489049 11. .3799431 12. .5964895 13. .0251346 14. .2164402 15. .6848479 16. .1270018 17. .6466258 18. .1869288 19. .4522384 20. .067132 利用均匀分布随机数进行随机分组: 例:某实验要把 20 只大鼠随机分为 2 组,每组 10 只,请制定随 机分组方案和措施。 第一步、把 20 只大鼠编号,1,2,3,4,5,6,7,8,9,10, 11,12,13,14,15,16,17,18,19,20。并且标明。 第二步、用 Stata 软件制定随机分组方案,操作如下: clear 清除内存
set seed 200 设置种子数为200 set obs 设置样本量为20 range no 20 建立编号1至20 gen r-uniform 产生在(0,1)均匀分布的随机数 gen group=1 设置分组变量 group的初始值为1 sort r 对随机数从小到大排序 replace group=2in11/20设置最大的10个随机数所对应的记录 为第2组,即:最小的10个随机数所 对应的记录为第1组 sort no 按照编号排序 list 显示随机分组的结果 结果如下 group 1.9512007 123456789 2.5249876 3.5129986 4.126439 5.5866161 6.7059209 7.2633286 9.1171033 954065 12345 0123 1.4822863 .3347736 5678902 14,7994431 112212121122121 15.1180503 67s9 16.9834299 17,2807874 18.095245 19.9446051 2 203467524 随机分组整理如下
set seed 200 设置种子数为 200 set obs 20 设置样本量为 20 range no 1 20 建立编号 1 至 20 gen r=uniform() 产生在(0,1)均匀分布的随机数 gen group=1 设置分组变量 group 的初始值为 1 sort r 对随机数从小到大排序 replace group=2 in 11/20 设置最大的 10 个随机数所对应的记录 为第 2 组,即:最小的 10 个随机数所 对应的记录为第 1 组 sort no 按照编号排序 list 显示随机分组的结果 结果如下: no r group 1. 1 .9512007 2 2. 2 .5249876 2 3. 3 .5129986 1 4. 4 .126439 1 5. 5 .5866161 2 6. 6 .7059209 2 7. 7 .2633286 1 8. 8 .5644688 2 9. 9 .1171033 1 10. 10 .954065 2 11. 11 .4822863 1 12. 12 .3347736 1 13. 13 .5678902 2 14. 14 .7994431 2 15. 15 .1180503 1 16. 16 .9834299 2 17. 17 .2807874 1 18. 18 .095245 1 19. 19 .9446051 2 20. 20 .3467524 1 随机分组整理如下
第一组 编号3479111215171820 第二组 编号125681013141619 产生服从正态分布Nμ,2)的随机数 Inynorm( uniform()*σ+μo 例如产生10个服从正态分布N100,62)的随机数,操作如下: 清除内存 set seed 200 设置种子数为200 set obs 10 设置样本量为10 genx= inynorm( uniform026+100产生服从N(100,6)的随机数 list 显示随机数 结果如下 1.109.9397 2.100.3761 3.100.1955 5.1013131 6.103.249 7.96.2013 8.100.9739 9.92.86244 10.110.1137 教学应用:考察样本均数的分布。 由于个体变异的原因,样本均数x的抽样误差(其定义为样本均数 与总体均数的差值是不可避免的,并且样本均数的抽样误差是呈随
第一组 编号 3 4 7 9 11 12 15 17 18 20 第二组 编号 1 2 5 6 8 10 13 14 16 19 产生服从正态分布 N(μ,σ 2 )的随机数 invnorm(uniform())*σ+μ。 例如产生 10 个服从正态分布 N(100,62 )的随机数,操作如下: clear 清除内存 set seed 200 设置种子数为 200 set obs 10 设置样本量为 10 gen x=invnorm(uniform())*6+100 产生服从 N(100,62 )的随机数 list 显示随机数 结果如下: x 1. 109.9397 2. 100.3761 3. 100.1955 4. 93.13968 5. 101.3131 6. 103.249 7. 96.2013 8. 100.9739 9. 92.86244 10. 110.1137 教学应用:考察样本均数的分布。 由于个体变异的原因,样本均数 X 的抽样误差(其定义为样本均数 与总体均数的差值)是不可避免的,并且样本均数的抽样误差是呈随
机变化的。对于一次抽样而言,无法考察样本均数的抽样误差的规律 性,但当大量地重复抽样,计算每次抽样的样本均数x,考察样本均 数的随机分布规律性和统计特征。举例如下: 利用计算机模拟产生10000个服从正态分布N(10062)的样本, 样本量分别为n=4,n=9,n=16,n=36,每个样本计算样本均数。这 里关键处是要清楚什么是样本量(每次抽样所观察的对象个数,也就 是每个样本的个体数n)、什么是样本个数(指抽样的次数,现以n=4 为例,一条记录存放一个样本,样本量n=4,也就是每个样本的第1 个数据放在第1列,第2个数据放在第2列,第3个数据放在第3 列,第4个数据放在第4列,因此第1行是第一个样本,第2行是第 2个样本,第10000是第10000个样本,计算样本均数放在第5 列,因此共有100000个样本均数。具体操作如下 清除内存 clear 扩大虚拟内存为60M set memory 60m 设置记录数为10000 set obs 100000 设置种子数为200 set seed 200 产生第1个随机数据 gen xl-invnorm(uniform)*6+100 gen x2=invnorm(uniform()"6+100 产生第2个随机数据 产生第3个随机数据 gen x3=invnorm(uniform)*6+100 产生第4个随机数据 gen x4=invnorm(uniform)*6+100 计算平均数,并且存放在变量名为 gen mean(x1+x2+x3+x4)/4 mean 以样本均数为数据,计算其平均值和 su mean 标准差
机变化的。对于一次抽样而言,无法考察样本均数的抽样误差的规律 性,但当大量地重复抽样,计算每次抽样的样本均数 X ,考察样本均 数 X 的随机分布规律性和统计特征。举例如下: 利用计算机模拟产生 100000 个服从正态分布 N(100,62 )的样本, 样本量分别为 n=4,n=9,n=16,n=36,每个样本计算样本均数。这 里关键处是要清楚什么是样本量(每次抽样所观察的对象个数,也就 是每个样本的个体数 n)、什么是样本个数(指抽样的次数),现以 n=4 为例,一条记录存放一个样本,样本量 n=4,也就是每个样本的第 1 个数据放在第 1 列,第 2 个数据放在第 2 列,第 3 个数据放在第 3 列,第 4 个数据放在第 4 列,因此第 1 行是第一个样本,第 2 行是第 2 个样本,第 100000 行是第 100000 个样本,计算样本均数放在第 5 列,因此共有 100000 个样本均数。具体操作如下: clear 清除内存 set memory 60m 扩大虚拟内存为 60M set obs 100000 设置记录数为 100000 set seed 200 设置种子数为 200 gen x1=invnorm(uniform())*6+100 产生第 1 个随机数据 gen x2=invnorm(uniform())*6+100 产生第 2 个随机数据 gen x3=invnorm(uniform())*6+100 产生第 3 个随机数据 gen x4=invnorm(uniform())*6+100 产生第 4 个随机数据 gen mean=(x1+x2+x3+x4)/4 计算平均数,并且存放在变量名为 mean su mean 以样本均数为数据,计算其平均值和 标准差
结果 VariableS Mean Std. Dev n mean1000099.983883.00222587.97424112.0461 现共有100000个样本,每个样本计算一个样本均数,因此有100000 个样本均数,现在把一个样本均数x视为一个数据,把10000个样 本均数视为一个样本量为10000的新样本(这个样本里有100000个 x),计算这10000个x的平均值和标准差:得到: 这10000C个的平均值=9998388非常接近总体均数p=100 这10000个的标准差=3002259=6=3(理论上可以证明样 本均数的总体均数与样本所在的总体的总体均数相同,样本均数的标 准差=样本所在总体的总体标准差 n 再考察这100000个X的频数图 graph mean, bin(50)xlabel ylabel norm l10
结果 Variable | Obs Mean Std. Dev. Min Max -------------+----------------------------------------------------- mean | 100000 99.98388 3.002225 87.97424 112.0461 现共有 100000 个样本,每个样本计算一个样本均数,因此有 100000 个样本均数,现在把一个样本均数 X 视为一个数据,把 100000 个样 本均数视为一个样本量为 100000 的新样本(这个样本里有 100000 个 X ),计算这 100000 个 X 的平均值和标准差:得到: 这 100000 个 X 的平均值=99.98388 非常接近总体均数μ=100 这 100000 个 X 的标准差=3.002225 6 3 σ ≈ n 4 = = (理论上可以证明样 本均数的总体均数与样本所在的总体的总体均数相同,样本均数的标 准差= n 样本所在总体的总体标准差 ) 再考察这 100000 个 X 的频数图 graph mean,bin(50) xlabel ylabel norm Fraction mean 90 100 110 0 .02 .04 .06