第8章 概率统计——8.5 统计作图

简介: 第8章 概率统计——8.5 统计作图

8.5  统计作图


8.5.1  正整数频率表


使用tabulate函数可以得到正整数频率表。


8-11:向量的正整数统计频率示例。

在命令行窗口中输入:

T = ceil(5 * rand(1, 10))
table = tabulate(T)

输出结果:

T =
     1     2     3     5     5     1     5     5     3     5
table =
     1     2    20
     2     1    10
     3     2    20
     4     0     0
     5     5    50


8.5.2  累积分布函数图形


使用cdfplot函数可以绘制累积分布函数的图形。该函数的调用格式如下:

● cdfplot(x)

● h=cdfplot(x)

● [h,stats]=cdfplot(x)

其中x为向量;h为表示曲线的句柄;stats表示样本的一些特征。


8-12:绘制一个极值分布向量的实际概率分布图形和理论概率分布图形。

在命令行窗口中输入如下程序:

y = evrnd(0, 3, 100, 1);
cdfplot(y)
hold on
x = -20 : 0.1 : 10;
f = evcdf(x, 0, 3);
plot(x, f, 'm')
legend('Empirical', 'Theoretical', 'Location', 'NW')

程序运行结果如图8-3所示。

cd30da9224a4a53dc56c14826dfc5eb8_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

8-3  累积分布函数图形


8.5.3  最小二乘拟合直线


使用lsline函数可以实现离散数据的最小二乘拟合。该函数的调用格式如下:

● lsline

● h=lsline

其中,h为拟合曲线的句柄。


8-13:使用lsline函数实现离散数据的最小二乘拟合示例。

在命令行窗口中输入以下命令:

x = 1 : 10;
y1 = x + randn(1, 10);
scatter(x, y1, 25, 'b', '*')
hold on
y2 = 2 * x + randn(1, 10);
plot(x, y2, 'mo')
y3 = 3 * x + randn(1, 10);
plot(x, y3, 'rx:')
y4 = 4 * x + randn(1, 10);
plot(x, y4, 'g+--')
lsline

程序运行结果如图8-4所示。从图中可以看到,对添加了随机数据的曲线数据,lsline函数很好地实现了拟合。

078a3db99a513f1b787df31f5fdf70d2_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

8-4  最小二乘拟合直线



8.5.4  绘制正态分布概率图形


使用normplot函数可以绘制正态分布概率图形。该函数的调用格式如下:

● h=normplot(X)

其中,若X为向量,则显示正态分布概率图形;若X为矩阵,则显示每一列的正态分布概率图形。


8-14:绘制正态分布概率图形示例。

在命令行窗口中输入下列命令:

x = normrnd(10, 1, 25, 1);
normplot(x)
figure;
normplot([x, 1.5 * x])

程序运行结果如图8-5所示。

6fa0f9ad0b2d3052d89dd63dbe9719d9_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

a)绘制向量对象

c4dcbe8538337123b157fc1ba92a079f_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

b)绘制矩阵对象

8-5  绘制正态分布概率图形示意图



8.5.5  样本数据的盒图


使用boxplot函数可以绘制样本数据的盒图。该函数的调用格式如下:

● boxplot(X)

● boxplot(X,G)

● boxplot(axes,X,...)

● boxplot(...,'Name',value)

其中,X为待绘制的变量;G为附加群变量;axes为坐标轴句柄;Namevalue为可设置属性的属性名和属性值。


8-15:样本数据的盒图绘制示例。

在命令行窗口中输入:

X = randn(100, 25);
subplot(3, 1, 1)
boxplot(X)
subplot(3, 1, 2)
boxplot(X, 'plotstyle', 'compact')
subplot(3, 1, 3)
boxplot(X, 'notch', 'on')

程序运行结果如图8-6所示。

c2c43b7421681f684b222464bbc2272a_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

8-6  样本数据的盒图绘制示例



8.5.6  参考线绘制


MATLAB中可以使用reflinerefcurve函数分别绘制一条参考直线与一条参考曲线。refline函数的调用格式如下:

● refline(m,b)

● refline(coeffs)

● refline

● hline=refline(...)

其中,m为斜率、b为截距;coeffs为前面两个参数构成的向量;hline为参考线句柄。


8-16:绘制参考直线示例。

在命令行窗口中输入以下命令:

x = 1 : 10;
y = x + randn(1, 10);
scatter(x, y, 25, 'b', '*')
lsline
mu = mean(y);
hline = refline([0 mu]);
set(hline, 'Color', 'r')

程序运行结果如图8-7所示。

0bc7094bd76ab31ad09cc955054779e1_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

8-7  绘制参考直线示例


reflcurve函数的调用格式如下:

● refcurve(p)

● refcurve

● hcurve=refcurve(...)

其中,p为多项式系数向量。


8-17:绘制参考曲线示例。

在命令行窗口中输入以下命令:

p = [1 -2 -1 0];
t = 0 : 0.1 : 3;
y = polyval(p, t) + 0.5 * randn(size(t));
plot(t, y, 'ro')
h = refcurve(p);
set(h, 'color', 'r')
q = polyfit(t, y, 3);
refcurve(q)
legend('Data', 'Population Mean', 'Fitted Mean', 'Location', 'NW')

程序运行结果如图8-8所示。

c562d0a106b3721641277972fc37d515_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

8-8  绘制参考曲线示例


8.5.7  样本概率图形


使用capaplot函数可以绘制样本的概率图形。该函数的调用格式如下:

● p=capaplot(data,specs)

● [p,h]=capaplot(data,specs)

其中,data为所给样本数据,specs用于指定范围,p表示在指定范围内的概率。该函数返回来自估计分布的随机变量落在指定范围内的概率。


8-18:样本概率图形绘制示例。

在命令行窗口中输入以下命令:

data = normrnd(3, 0.005, 100, 1);
p1 = capaplot(data, [2.99 3.01])    % 参考图8-9(a)
grid on; axis tight
figure
p2 = capaplot(data, [2.995 3.015])  % 参考图8-9(b)
grid on; axis tight

输出结果:

p1 =
    0.9375
p2 =
    0.8012

输出图形如图8-9所示。

4d9637c526ffe2e6756d5cfbd67f954f_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

a)区间1概率

4f8543a6279021308e04d0d02f5c8630_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

b)区间2概率

8-9  样本概率图形绘制示例



8.5.8  正态拟合直方图


使用histfit函数可以绘制含有正态拟合曲线的直方图。该函数的调用格式如下:

● histfit(data)

● histfit(data,nbins)

● histfit(data,nbins,dist)

● h=histfit(...)

其中,data为向量;nbins指定bar的个数;dist为分布类型。


8-19:绘制含有正态拟合曲线的直方图示例。

在命令行窗口中输入以下命令:

r = normrnd(10, 1, 200, 1);
histfit(r)
h = get(gca, 'Children');
set(h(2), 'FaceColor', [.8 .8 1])
figure
histfit(r, 20)
h = get(gca, 'Children');
set(h(2), 'FaceColor', [.8 .8 1])

程序运行结果如图8-10所示。

671ae7df4dfd537f4e483dc6fb3708af_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

a)柱条数由程序设置

28fac8a9067cea05535958ceadb006e6_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

b)柱条数设置为20

8-10  正态拟合直方图绘制示例



本章小结


本章主要介绍了使用MATLAB实现概率统计的基本数据处理方法,包括产生随机变量、计算概率密度、计算累积概率分布、挖掘统计特征与统计作图等。

在实际的概率统计应用中,MATLAB还可以进行更多的数据处理,例如参数估计、假设检验等。因其他内容涉及较深的概率统计知识,故本书略去这些内容,如有需要,可以参考MATLAB帮助中的相关内容。


相关文章
|
6月前
|
算法 数据可视化
【视频】Copula算法原理和R语言股市收益率相依性可视化分析-3
【视频】Copula算法原理和R语言股市收益率相依性可视化分析
|
数据可视化
R语言绘图教程丨Nature论文都在用的多组比较箱线图,自动计算显著性并标注,附带误差线
R语言绘图教程丨Nature论文都在用的多组比较箱线图,自动计算显著性并标注,附带误差线
|
6月前
|
算法 数据可视化
【视频】Copula算法原理和R语言股市收益率相依性可视化分析(下)
【视频】Copula算法原理和R语言股市收益率相依性可视化分析
|
6月前
|
数据可视化 算法 数据挖掘
【视频】KMEANS均值聚类和层次聚类:R语言分析生活幸福指数可视化|数据分享(下)
【视频】KMEANS均值聚类和层次聚类:R语言分析生活幸福指数可视化|数据分享
|
6月前
|
数据可视化 算法 数据挖掘
【视频】KMEANS均值聚类和层次聚类:R语言分析生活幸福指数可视化|数据分享(上)
【视频】KMEANS均值聚类和层次聚类:R语言分析生活幸福指数可视化|数据分享
|
6月前
|
数据可视化 算法
R语言主成分分析(PCA)葡萄酒可视化:主成分得分散点图和载荷图
R语言主成分分析(PCA)葡萄酒可视化:主成分得分散点图和载荷图
|
6月前
|
算法 数据可视化
【视频】Copula算法原理和R语言股市收益率相依性可视化分析
【视频】Copula算法原理和R语言股市收益率相依性可视化分析
|
6月前
|
数据可视化 算法
【视频】Copula算法原理和R语言股市收益率相依性可视化分析(上)
【视频】Copula算法原理和R语言股市收益率相依性可视化分析
|
6月前
|
数据可视化 算法
【视频】Copula算法原理和R语言股市收益率相依性可视化分析-1
【视频】Copula算法原理和R语言股市收益率相依性可视化分析
|
6月前
|
算法 数据可视化
【视频】Copula算法原理和R语言股市收益率相依性可视化分析-2
【视频】Copula算法原理和R语言股市收益率相依性可视化分析