多元统计分析实验报告.docx
- 文档编号:16352425
- 上传时间:2023-07-12
- 格式:DOCX
- 页数:32
- 大小:114.89KB
多元统计分析实验报告.docx
《多元统计分析实验报告.docx》由会员分享,可在线阅读,更多相关《多元统计分析实验报告.docx(32页珍藏版)》请在冰点文库上搜索。
多元统计分析实验报告
重庆交通大学
学生实验报告
实验课程名称多元统计分析
开课实验室数学实验室
学院年级级专业
学生姓名学号
开课时间2013至2014学年第2学期
假设合理
优
良
中
差
建模求解全面
优
良
中
差
结果分析完善
优
良
中
差
文档清晰
优
良
中
差
综合成绩
教师姓名
董志清
实验一Matlab软件的简单熟悉1
实验目的:
1
实验内容:
1
实验要求:
2
实验过程:
2
实验体会:
5
实验二统计变量的描述性分析6
实验目的:
6
实验内容:
6
实验过程:
7
实验体会:
12
实验三聚类分析13
实验目的13
实验内容13
实验过程13
实验结果13
实验结果分析14
实验体会14
附录14
实验四判别分析15
实验目的15
实验内容15
实验过程15
实验结果16
实验结果分析17
实验体会17
实验五主成分分析18
实验目的18
实验内容18
实验过程18
实验结果19
实验结果分析19
实验体会19
实验六因子分析20
实验目的20
实验内容20
实验过程20
实验结果22
实验结果分析23
实验体会23
实验七典型相关分析24
实验目的24
实验内容24
实验过程24
实验结果26
实验结果分析27
实验体会27
实验一Matlab软件的简单熟悉
一实验目的:
熟悉在MATLAB中数据的录入、保存和调用方法;
熟悉matlab中关于矩阵运算和函数运算的各种命令。
二实验内容:
1、矩阵和数组的输入
2、矩阵的运算
3、矩阵的裁剪与拼接
4、变量与函数
5、命令和环境窗口
三实验要求:
了解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的基本操作,感受到了应用软件的优越性。
借助一些软件,我们就可以把一些数学问题用软件进行求解,方便快捷。
实验二统计数据的描述性分析
一实验目的
熟悉在matlab中实现数据的统计描述方法,掌握基本统计命令:
样本均值、
样本中位数、样本标准差、样本方差、概率密度函数pdf、概率分布函数df、随机
数生成rnd。
二实验内容
1频数表和直方图
2基本统计量
3几个重要的概率及其图形
4了解EXCEL的假设检验功能
5书上P52页例题用EXCEL做出轮廓图,雷达图
6用MATLAB做出调和曲线图
三实验过程:
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(
2
c卡方分布),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)计算正态分布的累积分布函数
语法:
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在统计方面的应用及基本操作,对于MATLAB的操作更加熟悉。
实验三聚类分析
一、实验目的:
熟悉在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)V-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)
四实验结果
五实验结果分析
对于使用欧式距离、最短距离法聚类的结果,分成三种情况:
1、2、3为第一组,情况差;4、5为第二组,情况中;8、9、6、7、10、11、12、13、14、15为第三组,情况好。
而对于使用明氏距离、最短距离法聚类结果,也可分为三种情况:
1、2、3为第一组,情况差;13、14、15为第二组,情况好;6、7、8、9、4、5、10、11、12为第三组,情况中。
六实验体会
通过聚类分析的实验,理解了聚类分析的相关知识,熟悉了聚类分析的步骤和方法。
实验四判别分析
一、实验目的:
熟悉在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-X
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 多元 统计分析 实验 报告