matlab与多元统计分析.docx
- 文档编号:25560197
- 上传时间:2023-06-09
- 格式:DOCX
- 页数:49
- 大小:70.87KB
matlab与多元统计分析.docx
《matlab与多元统计分析.docx》由会员分享,可在线阅读,更多相关《matlab与多元统计分析.docx(49页珍藏版)》请在冰豆网上搜索。
matlab与多元统计分析
Matlab与多元统计分析
胡云峰安庆师范学院
第三章习题
对某地区的6名2周岁男婴的身高、胸围、上半臂进行测量。
得样本数据如表所示。
假设男婴的测量数据X(a)(a=1,…,6)来自正态总体N3(?
∑)的随机样本。
根据以往的资料,该地区城市2周岁男婴的这三项的均值向量?
0=(90,58,16)’,试检验该地区农村男婴与城市男婴是否有相同的均值向量。
表某地区农村2周岁男婴的体格测量数据
男婴
身高(X1)cm
胸围身高(X2)cm
上半臂围身高(X3)cm
1
78
2
76
3
92
4
81
59
14
5
81
6
84
14
解
1.预备知识∑未知时均值向量的检验:
H0:
?
=?
0H1:
?
≠?
0
H0成立时
当
或者
拒绝
当
或者
接受
这里
2.根据预备知识用matlab实现本例题
算样本协方差和均值
程序x=[78;76;92;81;81;84];
[n,p]=size(x);
i=1:
1:
n;
xjunzhi=(1/n)*sum(x(i,:
));
y=rand(p,n);
forj=1:
1:
n
y(:
j)=x(j,:
)'-xjunzhi';
y=y;
end
A=zeros(p,p);
fork=1:
1:
n;
A=A+(y(:
k)*y(:
k)');
end
xjunzhi=xjunzhi'
S=((n-1)^(-1))*A
输出结果xjunzhi=
S=
然后u=[90;58;16];
t2=n*(xjunzhi-u)'*(S^(-1))*(xjunzhi-u)
f=((n-p)/(p*(n-1)))*t2
输出结果t2=
f=
所以
=
=
查表得F3,3= 因此在a=或a=时拒绝 假设 相应于表再给出该地区9名2周岁女婴的三项指标的测量数据如表所示。 假设女婴的测量数据Y(a)(a=1,…,9)来自正态总体N3(? ∑)的随机样本。 试检验2周岁男婴与女婴的均值是有无显着差异 表某地区农村2周岁女婴体格测量数据 女婴 身高(X1)cm 胸围身高(X2)cm 上半臂围身高(X3)cm 1 80 14 2 75 15 3 78 15 4 75 13 5 79 14 6 78 7 75 58 8 64 11 9 80 解 1.预备知识 有共同未知协方差阵 时 在 成立的情况下且两样本独立 给定检验水平 ,查 分布表,使 ,可确定出临界值 ,再用样本值计算出 ,若 ,则否定 ,否则接受 。 2.根据预备知识用matlab实现本例题 由上一题知道 xjunzhi= Sx= 类似程序 xjunzhi=[82;;]; Sx=[;;]; n=6; y=[;15;7815;;79;78;75;64;80]; [m,p]=size(y); i=1: 1: m; yjunzhi=(1/m)*sum(y(i,: )); z=rand(p,m); forj=1: 1: m z(: j)=y(j,: )'-yjunzhi'; z=z; end B=zeros(p,p); fork=1: 1: m; B=B+(z(: k)*z(: k)'); end Sy=((m-1)^(-1))*B; yjunzhi=yjunzhi' S=(1/(n+m-2))*((n-1)*Sx+(m-1)*Sy) 得到结果yjunzhi= S= 然后 t=((n*m)/(n+m))*((xjunzhi-yjunzhi)')*(S^(-1))*(xjunzhi-yjunzhi) F=((n+m-p-1)/(p*(n+m-2)))*t 输出结果t= F= 查表得(3,11)=>(3,11)=> 因此在a=或a=时接受 假设 第四章习题 下表列举某年级任取12名学生的5门主课的期末考试成绩,试绘制学生序号为1、2、11、12的轮廓图、雷达图。 表学生学习成绩 序号 政治 语文 外语 数学 物理 1 99 94 93 100 100 2 99 88 96 99 97 3 100 98 81 96 100 4 93 88 88 99 96 5 100 91 72 96 78 6 90 78 82 75 97 7 75 73 88 97 89 8 93 84 83 68 88 9 87 73 60 76 84 10 95 82 90 62 39 11 76 72 43 67 78 12 85 75 50 34 37 解我们只需要数据如下 1 99 94 93 100 100 2 99 88 96 99 97 11 76 72 43 67 78 12 85 75 50 34 37 1利用matlab画轮廓图 程序x=1: 5; y1=[999493100100]; y2=[9988969997]; y3=[7672436778]; y4=[8575503437]; plot(x,y1,'k-o','linewidth',1); holdon; plot(x,y2,'r--*','linewidth',2); holdon; plot(x,y3,'','linewidth',2); holdon plot(x,y4,'k--o','linewidth',2); xlabel('学科');ylabel('分数'); legend('1','2','11','12'); set(gca,'xtick',[12345]) set(gca,'xticklabel',{'政治','语文','外语','数学','物理'}) 输出结果 2利用matlab画雷达图 此图用matlab画起来比较复杂 首先我们修改polar函数 在命令窗口输入editpolar结果会出现polar函数的程序 其中我们把 %plotspokes th=(1: 6)*2*pi/12; cst=cos(th);snt=sin(th); cs=[-cst;cst]; sn=[-snt;snt]; line(rmax*cs,rmax*sn,'linestyle',ls,'color',tc,'linewidth',1,... 'handlevisibility','off','parent',cax) 修改为 %plotspokes th=(1: 3)*2*pi/6; cst=cos(th);snt=sin(th); cs=[-cst;cst]; sn=[-snt;snt]; line(rmax*cs,rmax*sn,'linestyle',ls,'color',tc,'linewidth',1,... 'handlevisibility','off','parent',cax) 再将后面的所有程序中的30改为72 然后另存为work中并命名为 然后输入程序 x=[0: pi/: 2*pi]; y1=[99949310010099]; y2=[998896999799]; y3=[767243677876]; y4=[857550343785]; mypolar(x,y1,'b'); holdon; mypolar(x,y2,'m'); holdon; mypolar(x,y3,'g'); holdon; mypolar(x,y4,'y') legend('1','2','11','12'); 输出结果 第五章聚类分析 习题.下表给出我国历年职工人数(单位: 万人),请用有序样品的fisher法聚类。 年份 全民所有制 集体所有制 1952 1580 23 1954 1881 121 1956 2423 554 1958 4532 662 1960 5044 925 1962 3303 1012 1964 3465 1136 1966 3939 1264 1968 4170 1334 1970 4792 1424 1972 5610 1524 1974 6007 1644 1976 6860 1813 1978 7451 2048 1980 8019 2425 解第一步数据标准化后计算直径D 程序: X=[158023;1881121;2423554;4532662;5044925;33031012;34651136;... 39391264;41701334;47921424;56101524;60071644;68601813;... 74512048;80192425]; stdr=std(X); [n,m]=size(X); X=X./stdr(ones(n,1),: ); [np]=size(X); D=zeros(n,n); fori=1: 1: n; forj=1: 1: n; ifi t=i: 1: j; xgjunzhi=(1/(j-i+1))*sum(X(t,: )); y=zeros(1,j-i+1); fors=i: 1: j y(s)=(X(s,: )-xgjunzhi)*(X(s,: )-xgjunzhi)'; end s=i: 1: j; D(i,j)=sum(y); else D(i,j)=0; end end end D=D' 输出结果矩阵太大,所以用excel处理了一下 D= 我们只看下三角所有元素,其它元素理解为空 第二步我们计算损失函数矩阵L 程序: %设计一个把样品分为两类的程序,以及对应最后一类分割点 D=D'; L=zeros(n-1,n-1); alp=zeros(n-1,n-1); form=2: n; s=zeros(1,m-1); forj=2: m s(1,j-1)=D(1,j-1)+D(j,m); end L(m-1,1)=min(s(1,1: m-1)); forj=1: m-1 ifL(m-1,1)==s(1,j); alp(m-1,1)=j+1; end end end %分为k类 fork=3: n; form=k: n s=zeros(1,m-k+1); forj=k: m; s(1,j-k+1)=L(j-2,k-2)+D(j,m); end L(m-1,k-1)=min(s(1,1: m-k+1)); forj=1: m-k+1 ifL(m-1,k-1)==s(1,j); alp(m-1,k-1)=j+k-1; end end end end 输出结果这里由于表太大,用excel处理一下 L= alp= 2 0 0 0 0 0 0 0 0 0 0 0 0 0 3 3 0 0 0 0 0 0 0 0 0 0 0 0 4 4 4 0 0 0 0 0 0 0 0 0 0 0 4 4 5 5 0 0 0 0 0 0 0 0 0 0 4 6 6 6 6 0 0 0 0 0 0 0 0 0 4 6 6 6 6 7 0 0 0 0 0 0 0 0 4 6 6 6 8 8 8 0 0 0 0 0 0 0 4 6 6 8 8 8 8 9 0 0 0 0 0 0 4 6 8 8 10 10 10 10 10 0 0 0 0 0 4 10 10 10 10 10 11 11 11 11 0 0 0 0 4 10 10 10 11 11 11 12 12 12 12 0 0 0 4 11 11 11 11 13 13 13 13 13 13 13 0 0 10 11 13 13 13 13 13 13 14 14 14 14 14 0 10 12 13 14 15 15 15 15 15 15 15 15 15 15 在这里解释一下这两个矩阵行表示分为k类,k从2到15;列表示样本数m,m从2到15 我们只看下三角所有元素,其它元素理解为空,接下来我们根据结果分析 如果我们要把样品分为三类,则第一个分割点为11,然后第二个分割点为6 得到 第一类: {1952,1954,1956,1958,1960} 第二类: {1962,1964,1966,1968,1970} 第三类: {1972,1974,1976,1978,1980} 第六章判别分析 例对全国30个省市自治区1994年影响各地区经济增长差异的制度变量x1—经济增长率,x2—非国有化水平,x3—开放度,x4—市场化程度作贝叶斯判别分析。 类别 序号 地区 x1 x2 x3 x4 第一组 1 辽宁 2 河北 3 天津 4 北京 5 山东 6 上海 7 浙江 20 8 福建 9 广东 19 10 广西 16 11 海南 第二组 12 黑龙江 13 吉林 14 内蒙古 15 山西 16 河南 17 湖北 18 湖南 11 19 江西 18 20 甘肃 21 宁夏 22 四川 23 云南 24 贵州 84 25 青海 26 新疆 27 西藏 待判样品 28 江苏 29 安徽 30 陕西 解求均值及协方差的逆的估计值 程序 X1=[;;;... ;;;... 20;;19;... 16;]; X2=[;;;... ;;;... 11;18;;... ;;;... 84;;;... ]; X3=[;;]; [np]=size(X1); [mp]=size(X2); i=1: 1: n; x1junzhi=(1/n)*sum(X1(i,: )); j=1: 1: m; x2junzhi=(1/m)*sum(X2(j,: )); S1=cov(X1); S2=cov(X2); sigamani=(((n-1)*S1+(m-1)*S2)/(n+m-2))^(-1) x1junzhi=x1junzhi' x2junzhi=x2junzhi' 输出结果 sigamani= x1junzhi= x2junzhi= 接着计算判别函数 根据 按照判别原则,若 ,则属于第一组,若 ,则属于第二组 回判 程序 A=sigamani*x1junzhi; B=sigamani*x2junzhi; C=zeros(27,2); C(: 1)=[1: 1: 27]; fori=1: 1: 11 f1=X1(i,: )*; f2=X1(i,: )*; iff1>f2 C(i,2)=1; else C(i,2)=2; end end fori=1: 1: 16 f1=X2(i,: )*; f2=X2(i,: )*; iff1>f2 C(i+11,2)=1; else C(i+11,2)=2; end end C 输出结果 C= 11 21 31 41 51 61 71 81 91 102 111 122 132 142 152 162 172 182 192 202 212 222 232 242 252 262 272 所以误判率为 %很小,所以判别有效 最后对待判样品进行判别 程序 D=zeros(3,2); D(: 1)=[28: 1: 30]; forj=1: 1: 3 f1=X3(j,: )*; f2=X3(j,: )*; iff1>f2 D(j,2)=1; else D(j,2)=2; end end D 输出结果 D= 281 292 302 第七章主成分分析 例对全国30个省市自治区经济发展基本情况的八项指标作主成分分析,原始数据如下: 表30个省市自治区的八项指标 省份 GDP 居民消 固定资 职工平 货物周 居民消费 商品零售 工业总 消费水平 产投资 均工资 转量 价格指数 价格指数 产值 X1 X2 X3 X4 X5 X6 X7 X8 北京 2505 8144 天津 2720 6501 河北 1258 4839 山西 1250 4721 内蒙古 1387 4134 辽宁 2397 4911 114 吉林 1872 4430 黑龙江 2334 4145 上海 5343 9279 113 江苏 1926 5934 浙江 2249 6619 安徽 1254 474 4609 福建 2320 5857 江西 1182 4211 山东 1527 5145 河南 1034 4344 湖北 1527 4685 849 120 湖南 1408 4797 119 广东 2699 8250 114 广西 1314 5150 556 海南 1814 5340 四川 3534 1261 4645 117 贵州 942 4475 云南 1261 334 5149 西藏 1110 7382 陕西 1208 4396 119 117 甘肃 1007 5493 507 青海 1445 5753 118 宁夏 1355 5079 新疆 1469 5348 339 解用matlab实现主成分分析 第一步在matlab输入原始数据 在这里由于输入数据量较大,我们可以在matlab的workspace中点击“新建变量”选项,命名为“x的变量,然后把你在excel中打好的表格中的数据直接复制粘贴到该变量中 接着我们将原始数据标准化 程序stdr=std(x);%求各变量的标准差 [n,m]=size(x); sddata=x./stdr(ones(n,1),: )%标准化变换 输出结果 sdd
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- matlab 多元 统计分析