matlab与多元统计分析.docx
《matlab与多元统计分析.docx》由会员分享,可在线阅读,更多相关《matlab与多元统计分析.docx(46页珍藏版)》请在冰豆网上搜索。
matlab与多元统计分析
CompanyDocumentnumber:
WTUT-WT88Y-W8BBGB-BWYTT-19998
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;
ifit=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=
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
28
0
我们只看下三角所有元素,其它元素理解为空
第二步我们计算损失函数矩阵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=
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
新疆