MATLAB应用统计实验指导草稿.docx
- 文档编号:23340859
- 上传时间:2023-05-16
- 格式:DOCX
- 页数:24
- 大小:53.18KB
MATLAB应用统计实验指导草稿.docx
《MATLAB应用统计实验指导草稿.docx》由会员分享,可在线阅读,更多相关《MATLAB应用统计实验指导草稿.docx(24页珍藏版)》请在冰豆网上搜索。
MATLAB应用统计实验指导草稿
MATLAB应用统计实验
(草稿)
作者:
董志清
2008.6
实验一
------------------------MATLAB软件的简单熟悉-------------------------
一、实验目的
熟悉在MATLAB中数据的录入、保存和调用方法;
熟悉matlab中关于矩阵运算和函数运算的各种命令。
二、实验内容
1、矩阵和数组的输入
直接输入:
MATLAB中不用描述矩阵的类型和维数,它们由输入的格式和内容决定。
小矩阵可以用排列各个元素的方法输入,同一行元素用逗号或空格分开,不同行的元素用分号或回车分开。
如
>>A=[1,2,3;4,5,6](>>表示键入,[]后接回车,然后屏幕上显示输出)
>>A=[123;456]
>>A=[123
456]
都输入了一个2*3的矩阵A,屏幕上显示结果相同。
数组的输入除了向矩阵一样输入以外,还常采用“:
”输入方式,如
>>t=1:
5(从1到5公差为1的等差数组)
t=
12345
>>c=1:
2:
7(从1到7公差为2的等差数组)
c=
1357
>>linspace(0,1,9)(从0到1共9个等差数组)
ans=00.12500.25000.37500.50000.62500.75000.87501.0000
由语句或函数生成;
在M-文件中生成:
。
2、矩阵的运算
MATLAB中提供了以下矩阵运算符:
+加法;-减法;'转置;*乘法;^乘幂;\左除;/右除
它们要符合矩阵的运算规律,如果矩阵的行列数不符合运算符的要求将产生错误信息。
>>a=[1113;4126]
>>A+a(MATLAB区分大小写)
ans=
2136
81712
不指定输出变量,MATLAB将回应ans(answer缩写)
>>B=A-a
B=
0-90
0-70
A-a将结果保存在B变量中,变量可以随时调用,除非被清除或替代。
\左除;/右除用法如下:
设A时可逆矩阵,AX=B的解是A左除B,即X=A\B(当B是列向量时,得到方程出的解);XA=B的解是A右除B,即X=B/A.如
>>A=[25-3;36-2;24-3]
>>b=[314]'
>>X=A\b
X=
1
-1
-2
3、矩阵的裁剪与拼接
从一个矩阵中取出若干行(列)构成新的矩阵称为裁剪,MATLAB中“:
”是非常重要的裁剪工具,如
>>A(3,:
)(A的第三行)
>>A(:
2)(A的第二列)
将几个矩阵接在一起,称为拼接,左右拼接行数要相同,上下拼接列数要相同,如
>>E=[A,b]
E=
25-33
36-21
24-34
>>F=[b;X]
4、变量与函数
MATLAB的变量由字母、数字和下划线组成,最多31个字符,区分大小写字母,第一个字符必须是字母。
当输入一个新变量时,MATLAB自动建立
变量并为其分配内存空间。
几个特殊的量:
pi圆周率;Inf正无穷大指1/0;NaN不定数,指0/0。
常用的函数:
三角函数sincostancotseccsc;其它基本函数sqrt;exp;log;log10;abs(绝对值);round(四舍五入)。
这些函数本质上是作用于标量的,当它们作用于矩阵时,使作用于矩阵的每一个元素。
例如
>>x=linspace(0,2*pi,30);(如过语句一分号“;”结束,Matlab只进行计算,不显示计算的结果。
>>y=sin(x);
>>plot(x,y)
plot是最常用的画2维图形的命令
向量函数:
max;min;sum;mean(平均值);sort(从小到大排序)这些函数只有作用于向量时才有意义
>>a=[52143]
>>b=min(a),c=sum(a),e=sort(a)
矩阵函数:
构造函数zeros(0阵);ones(1阵);eye(单位阵);rand(随机阵)
>>w=zeros(2,3)
>>u=ones(3)
>>v=eye(3,4)
>>x=rand(1,3)
矩阵计算函数:
求秩rank(A);求逆inv(A);求迹:
trace(A);求行列式:
det(A);求特征值eig(A)
>>a=[1113;4126;729]
>>d=det(a),r=rank(a),t=trace(a),e=eig(a)
5、命令和环境窗口
在线帮助可以用命令help主题名
例如:
>>helpsum
显示在当前工作区中的所有变量名:
>>whos
清除当前工作区中的所有变量:
>>clear
把变量储存在文件中:
>>save文件名
调出文件中的变量:
>>load文件名
>>savemagik
>>clear
>>loadmagik
实验二
------------------------------统计数据的描述性分析-------------------------------
一、实验目的
熟悉在matlab中实现数据的统计描述方法,掌握基本统计命令:
样本均值、样本中位数、样本标准差、样本方差、概率密度函数pdf、概率分布函数df、随机数生成rnd。
二、实验内容
1、频数表和直方图
数据输入,将你班的任意科目考试成绩输入
>>data=[9388757675866690…….](请同学们补充数据)
用hist命令实现频数表和直方图
命令1:
[N,X]=hist(data,k)(数组data的频数表。
它将区间[min(data),max(data)]等分为k分,N返回k个小区间的频数,X返回k个小区间的中点。
)
命令2:
hist(data,k)(数组data的直方图)
练习:
>>[N,X]=hist(data,5),hist(data,5)
2、基本统计量
1)样本均值
语法:
m=mean(x)
若x为向量,返回结果m是x中元素的均值;
若x为矩阵,返回结果m是行向量,它包含x每列数据的均值。
2)样本中位数
语法:
m=median(x)
若x为向量,返回结果m是x中元素的中位数;
若x为矩阵,返回结果m是行向量,它包含x每列数据的中位数
3)样本标准差
语法:
y=std(x)
若x为向量,返回结果y是x中元素的标准差;
若x为矩阵,返回结果y是行向量,它包含x每列数据的标准差
std(x)运用n-1进行标准化处理,n是样本的个数。
4)样本方差
语法:
y=var(x);y=var(x,1)
若x为向量,返回结果y是x中元素的方差;
若x为矩阵,返回结果y是行向量,它包含x每列数据的方差
var(x)运用n-1进行标准化处理(满足无偏估计的要求),n是样本的个数。
var(x,1)运用n进行标准化处理,生成关于样本均值的二阶矩。
5)样本的极差(最大之和最小值之差)
语法:
z=range(x)
返回结果z是数组x的极差。
6)样本的偏度
语法:
s=skewness(x)
说明:
偏度反映分布的对称性,s>0称为右偏态,此时数据位于均值右边的比左边的多;s<0,情况相反;s接近0则可认为分布是对称的。
7)样本的峰度
语法:
k=kurtosis(x)
说明:
正态分布峰度是3,若k比3大得多,表示分布有沉重的尾巴,即样本中含有较多远离均值的数据,峰度可以作衡量偏离正态分布的尺度之一。
*数组统计量练习:
>>mean(data),>>median(data),>>std(data),>>var(data),>>range(data),>>skewness(data),>>k=kurtosis(data)
*矩阵统计量练习(注意x’表示数据阵x的转置)
作为研究杨树形状的一部分,测定20株杨树树叶,每个叶片测定了四个变量,下表第一行为叶片长度,第二行为叶片2/3处宽,第三行为叶片1/3处宽,第四行为叶片1/2处宽,计算数据的平均数、标准差、方差、极差及偏度和峰度。
x‘=[10890130114113120879411590117134150140126118136145161155
9595958587906766847560737364754355636460
118117140113121122978811810384104110959659899112100
11011012510811011488861069676929687905275849483]
>>mean(x),>>median(x),>>std(x)
>>var(x),>>range(x),>>skewness(x)
3、几个重要的概率分布
Matlab统计工具箱中有20种概率分布,主要的几种分布命令字符:
norm(正态分布),exp(指数分布),poiss(泊松分布),beta(B分布),
weib(威布尔),chi2(
卡方分布),t(T分布),f(F分布)
对每一种分布都提供了5类函数,其函数命令的字符是:
pdf(概率密度),cdf(概率分布),inv(逆概率分布),
stat(均值和方差),rnd(随机数生成)
当需要一种分布的某一类函数时,将以上所列的分布命令字符和函数命令的字符接起来,并输入自变量和参数就行了,例如
1)计算正态分布概率密度函数:
语法:
p=normpdf(x,mu,sigma)
说明:
计算均值mu、标准差sigma的正态分布在x点概率密度p=p(x)。
练习1:
画出正态分布N(0,1),N(0,4)的概率密度函数图形
>>x=-6:
0.01:
6;y=normpdf(x);z=normpdf(x,0,2);
>>plot(x,y,x,z),gtext('N(0,1)'),gtext('N(0,2^2)')(请同学通过helpgtext了解gtext命令)
练习2:
请同学用仿照练习1画出如下图所示的卡方分布和F分布概率密度函数图形
2)计算正态分布的累积分布函数
语法:
Y=normcdf(X,musigma)
说明:
根据相应的均值mu和方差sigma计算X中每个值的正态分布的累积分布函数值。
练习:
求服从标准正态分布的样本值落在区间[-2,2]上的概率
>>P=normcdf
(2)-normcdf(-2)(均值mu=0和方差sigma=1时可缺省)
3)计算正态分布的逆累积分布函数
语法:
X=norminv(P,musigma)
说明:
根据相应的,mu和sigma计算正态分布中累积分布概率值为P的正态分布对应点。
P中的值必须位于[0,1]区间上。
练习1:
>>x=norminv(0.5,0,1)(标准正态分布累积分布概率为0.5对应的点)
练习2:
找一个区间,使它包含95%的标准正态分布值,
>>x=norminv([0.0250.975],0,1)
4)二项分布均值和方差
语法:
[m,v]=binostat(N,P)
说明:
返回二项分布的均值m和方差v
练习:
>>[m,v]=binostat(500,0.01)(试验500次,每次事件发生概率0.01,返回二项分布的均值m和方差v)
5)生成服从正态分布的随机数
语法:
R=normrnd(mu,sigma,m,n)
说明:
生成m*n形式的正态分布的随机矩阵。
练习:
生成均值u=70,方差v=25,30行1列的正态随机数组。
>>R=normrnd(70,25,30,1)
****卡方分布和F分布图命令
>>x=0:
0.01:
20;y=chi2pdf(x,5);z=chi2pdf(x,10);
>>plot(x,y,x,z),gtext('chi2(5)'),gtext('chi2(10)')
>>x=0:
0.01:
3;y=fpdf(x,10,50);z=fpdf(x,10,5);
>>plot(x,y,x,z),gtext('F(10,50)'),gtext('F(10,5)')
4、了解EXCEL的假设检验功能
EXCEL:
工具→数据分析→描述统计
5、书上P52页例题用EXCEL做出轮廓图,雷达图
打开EXCEL>>输入数据包括变量名和样品名>>选定数据>>点击菜单栏的插入>>图表>>折线图(轮廓图)>>…
同法,可选雷达图等其他多元数据图示
6、用MATLAB做出调和曲线图
>>t=-pi:
pi/90:
pi;
>>f1=563.51/2.^(1/2)+227.78*sin(t)+147.76*cos(t)+235.99*sin(2*t)+510.78*cos(2*t);
>>f2=678.92/2.^(1/2)+365.07*sin(t)+112.82*cos(t)+301.46*sin(2*t)+465.88*cos(2*t);>>f3=237.38/2.^(1/2)+174.48*sin(t)+119.78*cos(t)+141.07*sin(2*t)+245.57*cos(2*t);>>f4=253.41/2.^(1/2)+156.13*sin(t)+102.96*cos(t)+108.13*sin(2*t)+212.20*cos(2*t);
>>plot(t,f1,'r-',t,f2,'b-',t,f3,'y-',t,f4,'k-')
>>title(‘四个地区人均消费支出’)
7、做二元正态分布密度函数立体图
>>[x,y]=meshgrid([-2:
0.1:
2]);
>>z=1/2*pi*exp(-0.5*x.^2-0.5*y^2);
>>plot3(x,y,z);或者>>mesh(x,y,z);或者>>surf(x,y,z)
>>title(`(X,Y)~N(0,0,1,1,0)立体图`)
>>gridon
实验三
-----------------------------------聚类分析-------------------------------
一、实验目的:
熟悉在MATLAB中聚类分析命令,并会运用聚类分析方法解决实际分类问题。
二、实验内容
题目:
为了更深入了解我国人口文化程度,现利用1990年全国人口普查数据对全国30个省市进行聚类分析。
分析选用了三个指标:
1)大学以上文化程度的人口占全部人口的比例(DXBL);2)初中文化程度的人口占全部人口的比例(CZBL);3)文盲半文盲的人口占全部人口的比例(WMBL)*数据见书上P90页*
了解如下与聚类分析有关的MATLAB函数
(1)函数pdist()
功能:
计算观察值两两之间的距离
**语法:
Y=pdist(X)
说明:
X为m*n矩阵(m个n维样本),返回值是两两对象间的欧氏距离。
Y是长度为(m-1)*m/2的向量。
可以用squareform()将此向量转换为方阵,这样可以使矩阵中的的元素(i,j)对应原始数据集中的对象i,和j的距离。
**语法:
Y=pdist(X,’Euclid’)
说明:
同上
**语法:
Y=pdist(X,’SEuclid’)
说明:
由标准欧式距离计算矩阵X中的对象间距离
dij2=(xi-xj)D-1(xi-xj)’
其中D-1位对角阵,对角线上的元素为相应变量的方差。
**语法:
Y=pdist(X,’Mahal’)
说明:
由马氏距离计算矩阵X中的对象间距离
dij2=(xi-xj)V-1(xi-xj)’
其中V是样本的协方差
**语法:
Y=pdist(X,’CityBlock’)
说明:
由绝对值距离计算矩阵X中的对象间距离
(2)函数squareform()
功能:
将pdist的输出转换为方阵
**语法S=squareform(Y)
说明:
将pdist的输出转换为方阵。
(3)函数linkage()
功能:
生成聚类树
**语法Z=linkage(Y)
说明:
使用最短距离法生成具有层次结构的聚类树。
输入的矩阵为函数pdist()输出的距离向量。
**语法Z=linkage(Y,’method’)
说明:
使用’method’指定的方法生成具有层次结构的聚类树
‘method’取值的含义:
‘single’--------------最短距离(可以缺省)
‘complete’----------最大距离
‘average’-----------平均距离
‘centroid’----------重心距离
‘word’--------------离差平方和法
(4)函数dendrogram()
功能:
画聚类树图
**语法H=dendrogram(Z)
说明:
生成聚类树Z的系统树图。
Z由函数linkage()产生。
三、实验步骤
1、输入数据X(30*3)矩阵
>>x=[9.330.558.7
4.6729.388.92
......
1.8520.6612.75]
2、计算观察值两两之间的距离
>>Y=pdist(X,’Euclid’)
3、将pdist的输出转换为方阵(可略)
>>S=squareform(Y)
4、生成聚类树
>>Z=linkage(Y,’single’)
6、画聚类树图
>>H=dendrogram(Z)
实验四
----------------------------------判别分析--------------------------------
一、实验目的:
熟悉在MATLAB中判别分析命令,会运用判别分析方法解决实际归类问题。
二、实验内容
题目:
从1995年世界各国人文发展指数的排序中,选取高发展水平(用1代表)、中等发展水平(用2代表)的国家各5个样品,另选4个国家作为代判样品作距离判别分析。
*数据见书上P108页*
1、了解如下与判别分析有关的MATLAB函数
函数classify()
功能:
判别分析
语法:
class=classify(sample,training,group)
说明:
sample数据的每行为一个待判样本,training是训练集,group是training训练集中样本所对应的类别。
函数返回向量class,它与sample具有相同的行数。
Class的每一个元素表示sample中相应元素(对应行)所属类别。
2、可以先聚类再判别
三、实验步骤
1、输入训练样本集X
>>X=[76995374
79.5995359
78995372
72.15.95242
73.877.75370
71.2934250
75.394.93412
7091.23390
72.8992300
62.980.63799];
2、输入已分好的类构成的向量
>>g=[1111122222]'
3、输入待判样品Y
>>Y=[68.579.31950
69.996.92840
77.693.85233
69.390.35158];
4、执行判别分析函数命令
>>CLASS=CLASSIFY(Y,X,g)
结果:
Y中的4个样本都属于中等发展水平(用2代表)
CLASS=
2
2
1
1
附注:
用Fisher判别法对上题进行判别
functionclass=FisherClassify(Y,X1,X2)
%%其中Y是待判别样本,X1、X2分别是两总体训练样本
>>S1=cov(X1);
>>S2=cov(X2);
>>[n1,l1]=size(X1);
>>[n2,l2]=size(X2);
>>a=1/(n1+n2-2);
>>S=a*(S1+S2);
>>Sinv=inv(S);
>>X1mean=mean(X1);
>>X2mean=mean(X2);
>>d=(X1mean-X2mean)';
>>C=Sinv*d;
>>y1mean=X1mean*C;
>>y2mean=X2mean*C;
>>y0=(n1*y1mean+n2*y2mean)/(n1+n2);
>>Yc=Y*C;
>>[n,m]=size(Y);
>>class=zeros(n,1);
>>fori=1:
1:
n
ify1mean>y2mean
ifYc(i)>y0
class(i)=1;
else
class(i)=2;
end
else
ifYc(i)>y0
class(i)=2;
else
class(i)=1;
end
end
end
>>class=FisherClassify(Y,x1,x2)
class=
2
2
1
1
实验五
--------------------------------主成分分析-----------------------------
一、实验目的:
熟悉在MATLAB中主成分分析命令,并会运用主成分分析方法解决问题。
二、实验内容
题目:
对全国30个省市自治区经济发展基本情况的八项指标作主成分分析*数据见书上P163页*
1、由MATLAB提供的主成分分析函数
函数:
princomp(X)
功能:
主成分分析
语法:
[COEFF,SCORE]=princomp(X)
[COEFF,SCORE,latent]=princomp(X)
[COEFF,SCORE,latent,tsquare]=princomp(X)
2、按主成分分析的计算步骤分步完成
三、实验步骤:
五、实验过程原始记录:
1、由MATLAB提供的主成分分析函数
i)、对原始数据进行标准化
>>A=[1394.892502519.018144373.9117.3112.6843.43
920.112720345.466501342.8115.2110.6582.51
2849.521258704.8748392033.3115.2115.81234.85
1092.481250290.94721717.3116.9115.6697.25
832.881387250.234134781.7117.5116.8419.39
2793.372397387.9949111371.1116.11141840.55
1129.21872320.454430497.4115.2114.2762.47
2014.532334435.734145824
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB 应用 统计 实验 指导 草稿