当前位置:首页 > Matlab笔记 - 数值计算—概率篇017
-0.4227 1.0000 -0.5239 0.3890 -0.5239 1.0000
七、频率直方图
1. 统计数值或字符出现的频数、频率
设X为数值型或字符型向量,代码:tabulate(X); 输出X的值、频数、频率的三列表。
注意:若X中的值都是非负整数,则min(X)与max(X)之间的任一整数都统计,未出现的频数=0.
2. 经验分布函数
x1,?,xn中?x 的个数 Fn(x)?n实际上是累积频率直方图曲线。依据样本以频率估计概率,当n充分大时,Fn(x)是总体分布函数F(x)的近似。
例7 生成指数分布随机数,计算其经验分布函数值并绘图,并与其分布函数做对比。
代码:
X=exprnd(3,100,1);
[fp,xp] = ecdf(X); % 计算经验分布函数值 subplot(1,2,1)
ecdfhist(fp,xp,20); % 绘制频率直方图 subplot(1,2,2)
plot(xp,fp,'r') % 绘制经验分布函数图形(连线型) hold on
[h,stats]=cdfplot(X) % 绘制经验分布函数图形(阶梯型)
x=0:0.01:15; y=expcdf(x,3); plot(x,y,'g');
legend('连线型经验分布函数','阶梯型经验分布函数','分布函数');
运行结果:h = 177.0125(图形句柄) stats = min: 0.0180 max: 27.9801
mean: 3.2968 median: 2.1667 std: 3.2969
0.350.310.90.80.250.20.70.6连线型经验分布函数阶梯型经验分布函数分布函数Empirical CDF F(x)0.150.10.050051015200.50.40.30.20.10 0510x1520
3. 直方图
定量数据常用直方图来展示某变量取值的分布,利用直方图可以估计总体的概率密度。
例8 随机生成服从F(3,5)分布的样本数据,绘制直方图并与该分布的真实概率密度曲线做对比。
代码:
n=5000;
X=frnd(3,5,n,1); % 生成F分布随机数 m=150; % 分组区间数 a=min(X); b=max(X);
d=(b-a)/m; % 分组宽度
[r,xout]=hist(X,[a:d:b]); % 或者[r,xout]=hist(X,m); % 计算直方图数据, r返回每段的频数, xout返回每段的中心位置 f=r./(n*d); % 计算频率 bar(xout,f); % 绘制频率直方图 hold on
x=0:0.01:10; y=fpdf(x,3,5); plot(x,y,'k-'); axis([0 10 0 1]); title('频率密度直方图');
运行结果:
频率密度直方图10.90.80.70.60.50.40.30.20.100246810
注:也可以用例7中方法绘制频率直方图:
[fp,xp] = ecdf(X); % 计算经验分布函数值 ecdfhist(fp,xp,20); % 绘制频率直方图
4. 绘制分布的概率图形
normplot(X)——绘制X的正态分布概率图形(若X为矩阵,则针对每列绘制);可以用来验证数据X是否服从正态分布,若是,则近似一条直线。
类似的还有,weibplot(X)——绘制X的威布尔分布概率图形。 例9 随机生成服从正态分布的随机数据,绘制其正态概率分布图形,验证数据的正态性。
代码:
X = normrnd(5,1.44,100,1);
normplot(X)
运行结果:
Normal Probability Plot0.9970.990.980.950.900.75Probability0.500.250.100.050.020.010.00312345Data6789
八、箱线图
又称为盒形图。在一条数轴上,以数据的上下四分位数(Q1-Q3)为界画一个矩形盒子(中间50%的数据落在盒内);在数据的中位数
共分享92篇相关文档