数理统计方法的Matlab实现(7.0版)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数理统计的Matlab实现
1 2
统计量的计算
方差分析 多元线性回归分析 判别分析 聚类分析
3
4 5 6 7
主成分分析
因子分析
数理统计的Matlab实现
一、统计量的计算
1. 以向量为计算单位的统计量 sum , mean , median , var, std, max, min x=[ 909, 1091, 967,1232,1096,1164, 1086,1071,1572, 950, 808, 971, 650,789, 1120,1081,825 ,775,1224, 950, 999,1130, 914,1203,1044, 866, 1320,1336,992 ,1025,871,738,865];
j 1 j 1 i 1 r r nj
F
若p=P(F≥F值)不大于给定的显著性水平(0.05),则拒绝 原假设.
数理统计的Matlab实现
A=[94 91 75 85; 62 68 50 70; 78 65 80 69]' anova1(A)
数理统计的Matlab实现
2.双因素方差分析 anova2() 例2:某农科所为提高水稻产量,对不同水稻品种 (因素A)和施肥量(因素B)进行组合试验,所得结果 如下,试分析各水稻品种与各施肥量对水稻产量是 否有显著影响。
i 1
合并组内离差平方和
A0 (u((ij)) u ( i ) ) 2 (a ' X (( ij)) a ' X ( i ) ) 2
i 1 j 1 k ni i 1 j 1 k ni k ni
a '[ ( X ((ij)) X ( i ) )( X (( ij)) X ( i ) ) ']a a ' Aa
数理统计的Matlab实现
3.fisher判别(先降维,再进行距离判别) 程序编写见fisher_Classify.m函数 A=load('D:\\胃癌的鉴别.txt') [n,p]=size(A); sample=A(:,1:p-1); train=sample;group=A(:,p); [class,e,lam]=fisher_Classify(sample,train,group,0)
2
0 1 x11 x1, p y1 1 1 x x y 21 2, p 1 2 2 其中y , ,X , yn n 1 xn1 xn , p p 满足E ( ) 0, Cov( ) 2 I nn
数理统计的Matlab实现
相关知识点:
设总体G为m元总体, 均值向量为 ( 1 , 2 ,..., m ), 协方差为, 则定义样品X ( x1 , x2 ,..., xm )与 Y ( y1 , y2 ,..., ym )的马氏距离定义为 d 2 ( X , Y ) ( X Y ) 1 ( X Y ) 样品X ( x1 , x2 ,..., xm )总体G的马氏距离定义为
因素A 因素B B1 B2 B3 A1 95 93 85 86 72 76 A2 A3 A4
97 96 87 89 90 91 89 90 84 87 92 90 75 73 85 86 88 89
AB2=[95 93 97 96 87 89 90 91;85 86 89 90 84 87 92 90;72 76 75 73 85 86 88 89 ] anova2(AB2',2)
1 (2 ) p / 2 1
1 (i ) 1 (i ) exp[ ( x ) i ( x )] 12 2 i
(2 ) p / 2 i
2 exp( 0.5 d ( i x )) 12
数理统计的Matlab实现
A=load('D:\\胃癌的鉴别.txt') [n,p]=size(A); sample=A(:,1:p-1); group=A(:,p); [class,err,p]=classify(sample,sample,group,'quadratic')
数理统计的Matlab实现
1 d ( X , G) ( X ) ( X ) 2
数理统计的Matlab实现
例 (胃癌的鉴别)
血清铜 蛋白 228 245 胃癌患者 200 170 100 225 萎缩性胃 130 炎患者 150 120 160 185 非胃炎患 170 者 165 135 100 类别 蓝色 反应 134 134 167 150 167 125 100 117 133 100 115 125 142 108 117 乙酸 20 10 12 7 20 7 6 7 10 5 5 6 5 2 7 中性硫化物 11 40 27 8 14 14 12 6 26 10 19 4 3 12 2
mean(x ), var (x) , std(x)
数理统计的Matlab实现
注:若参数为矩阵, 默认计算各列向量的统计量,返回行向量; 若要计算各行向量的统计量,要加一个维数参数2, 返回列向量。
C=[1,3,3;4,8,6;7,7,9;6,5,9] mean(C) %计算样本均值向量 mean(C,2)
水平 产量
A1 A2 A3
94,91,75,85 62,68,50,70 78,65,80,69
数理统计的Matlab实现
相关知识点:
H 0 : 1 2 ... r 在H 0成立下 S A / (r 1) F ~ F (r 1, n r ) S E / (n r ) 其中ST S A S E , S A n j ( x j x ) 2 , S E ( xij x j ) 2
1 ˆ 若X X 可逆, ( X X) X y
数理统计的Matlab实现
A=load('D:\\货运总量.txt') [n,p]=size(A); X=[ones(n,1),A(:,1:p-1)] yห้องสมุดไป่ตู้A(:,p); [b,bint]=regress(y,X)
数理统计的Matlab实现
数理统计的Matlab实现
两类Fisher判别示意图
Y
G1
G2
L=b1X+b2Y
X
数理统计的Matlab实现
令a (a1 , a2 , am ) ' 为m为空间的任一向量, u ( X ) a ' X a1 X 1 a2 X 2 am X m为X向 以a为法线方向上的投影,称为线性判别函数, 则k 个总体的样本数据投影后为:
计算各行向量的最值较特殊,用 max(C,[ ],2) , min(C,[ ],2)
数理统计的Matlab实现
2. 计算样本的协方差矩阵和相关矩阵 cov(C ),corrcoef(C ) 3. 常用分布的分位点 nameinv (x, 参数表列) 其中函数名name的含义同前。 求分位点 u(0.025) , t0.025 (10) , 20.025 (10) , F0.05 (6,10)。 norminv(0.025, 0,1) tinv(0.025, 10) chi2inv(0.025 ,10) finv(0.05 ,6,10)
(1) G1 : u(1) a ' X (i ) ( i ) , i 1, , n1
G2 : u
(2) (i )
a'X
(2) (i )
, i 1, , n2
k) (k ) Gk : u( a ' X (i ) ( i ) , i 1, , nk
数理统计的Matlab实现
数理统计的Matlab实现
2.Bayes判别(假设正态分布,可计算后验概率) [class,err,p]=classify(sample,training,group,type)
其中sample为待判样本,training为训练样本,group为训练样本的 类别.前两个参数必须相同的列数,后两个参数必须相同的行数. type参数默认值为’linear’,即各组协方差阵相同;还可取值为 ‘quadratic‘,即各组用不同的协方差阵. 输出中class为待判样本的判别结果,err为的错判率,p为后验概率.
四、判别分析
1.距离判别(程序编写,查看maDis函数) A=load('D:\\胃癌的鉴别.txt') [n,p]=size(A); sample=A(:,1:p-1); train=sample;group=A(:,p); [class,Dis]= MaDis(sample,train,group,0)
因素A 因素B B1 B2
A1
87 85
A2
97 89
A3
90 84
A4
95 93
B3
82
88
80
72
AB=[87 97 90 95;85 89 84 93;82 88 80 72] anova2(AB)
数理统计的Matlab实现
2.有交互作用的方差分析 anova2(X,reps) 例3:某农科所为提高水稻产量,对不同水稻品种 (因素A)和施肥量(因素B)进行组合试验,每种组合各 3次,所得结果如下,试分析各水稻品种与各施肥量 及它们的交互作用对水稻产量是否有显著影响。
i 1 j 1
数理统计的Matlab实现
B0 a ' Ba ( a) A0 a ' Aa
def
选取a, 在a ' Aa 1条件下,使(a) a ' Ba达到最大.
求A1B的最大特征值和相应特征向量
数理统计的Matlab实现
五、聚类分析
系统聚类基本思想: 初始每个样本自成一类,并规定样品间的距离 和类与类间的距离;然后距离最近的两类合并 成为新类,并计算新类与其它类间的距离;接 下去再将最近小类聚成一类,如此反复,直到 所有样本聚成一类为止。
原则是使两组间的组间离差尽量大,而每个组的组 内离差尽量小。
组间离差平方和
B0 ni (u (i ) u )2 ni (a ' X (i ) a ' X ) 2
i 1 k i 1
k
k
a '[ ni ( X (i ) X )( X (i ) X ) ']a a ' Ba
5
6 7
72
68 78
38
45 42
1.2
1.5 4.0
240
220 275
8
9 10
66
70 65
36
44 42
2.0
3.2 3.0
160
275 250
数理统计的Matlab实现
相关知识点:
y 0 1x1 p xp , E( ) 0, D( )
矩阵形式:y X
数理统计的Matlab实现
相关知识点:
设总体Gi (i 1,..., k )的概率密度为fi ( x), 据以往经验, X Gi的概率为qi .当样品X已知时,计算它属于Gi的 qi fi ( x) 概率,P(i | X ) 。 q j f j ( x)
特别,总体服从正态分布的情形
fi ( x)
数理统计的Matlab实现
二、方差分析
1.单因素方差分析 anova1(X) 其中,X为需要分析的数据,每一列对应于一个组 (因子水平)的测试数据。
数理统计的Matlab实现
例1:某农科所为比较三种不同肥料对水稻产量的 影响,进行如下试验。选一块肥沃程度较均匀的土 地,将其分割成12块,随机地分成3组,所得产量 如下,请评价三种不同肥料对水稻产量由无显著性 差异。
数理统计的Matlab实现
三、多元线性回归分析
数理统计的Matlab实现
例1:研究货运总量y(万吨)与工业总产值x1(亿元)、 农业总产值x2(亿元)、居民非商品支出x3(亿元)的关 系。数据如下:
编号 1 2 3 4 x1 70 75 65 74 x2 35 40 40 42 x3 y 1.0 2.4 2.0 3.0 160 260 210 265
1 2
统计量的计算
方差分析 多元线性回归分析 判别分析 聚类分析
3
4 5 6 7
主成分分析
因子分析
数理统计的Matlab实现
一、统计量的计算
1. 以向量为计算单位的统计量 sum , mean , median , var, std, max, min x=[ 909, 1091, 967,1232,1096,1164, 1086,1071,1572, 950, 808, 971, 650,789, 1120,1081,825 ,775,1224, 950, 999,1130, 914,1203,1044, 866, 1320,1336,992 ,1025,871,738,865];
j 1 j 1 i 1 r r nj
F
若p=P(F≥F值)不大于给定的显著性水平(0.05),则拒绝 原假设.
数理统计的Matlab实现
A=[94 91 75 85; 62 68 50 70; 78 65 80 69]' anova1(A)
数理统计的Matlab实现
2.双因素方差分析 anova2() 例2:某农科所为提高水稻产量,对不同水稻品种 (因素A)和施肥量(因素B)进行组合试验,所得结果 如下,试分析各水稻品种与各施肥量对水稻产量是 否有显著影响。
i 1
合并组内离差平方和
A0 (u((ij)) u ( i ) ) 2 (a ' X (( ij)) a ' X ( i ) ) 2
i 1 j 1 k ni i 1 j 1 k ni k ni
a '[ ( X ((ij)) X ( i ) )( X (( ij)) X ( i ) ) ']a a ' Aa
数理统计的Matlab实现
3.fisher判别(先降维,再进行距离判别) 程序编写见fisher_Classify.m函数 A=load('D:\\胃癌的鉴别.txt') [n,p]=size(A); sample=A(:,1:p-1); train=sample;group=A(:,p); [class,e,lam]=fisher_Classify(sample,train,group,0)
2
0 1 x11 x1, p y1 1 1 x x y 21 2, p 1 2 2 其中y , ,X , yn n 1 xn1 xn , p p 满足E ( ) 0, Cov( ) 2 I nn
数理统计的Matlab实现
相关知识点:
设总体G为m元总体, 均值向量为 ( 1 , 2 ,..., m ), 协方差为, 则定义样品X ( x1 , x2 ,..., xm )与 Y ( y1 , y2 ,..., ym )的马氏距离定义为 d 2 ( X , Y ) ( X Y ) 1 ( X Y ) 样品X ( x1 , x2 ,..., xm )总体G的马氏距离定义为
因素A 因素B B1 B2 B3 A1 95 93 85 86 72 76 A2 A3 A4
97 96 87 89 90 91 89 90 84 87 92 90 75 73 85 86 88 89
AB2=[95 93 97 96 87 89 90 91;85 86 89 90 84 87 92 90;72 76 75 73 85 86 88 89 ] anova2(AB2',2)
1 (2 ) p / 2 1
1 (i ) 1 (i ) exp[ ( x ) i ( x )] 12 2 i
(2 ) p / 2 i
2 exp( 0.5 d ( i x )) 12
数理统计的Matlab实现
A=load('D:\\胃癌的鉴别.txt') [n,p]=size(A); sample=A(:,1:p-1); group=A(:,p); [class,err,p]=classify(sample,sample,group,'quadratic')
数理统计的Matlab实现
1 d ( X , G) ( X ) ( X ) 2
数理统计的Matlab实现
例 (胃癌的鉴别)
血清铜 蛋白 228 245 胃癌患者 200 170 100 225 萎缩性胃 130 炎患者 150 120 160 185 非胃炎患 170 者 165 135 100 类别 蓝色 反应 134 134 167 150 167 125 100 117 133 100 115 125 142 108 117 乙酸 20 10 12 7 20 7 6 7 10 5 5 6 5 2 7 中性硫化物 11 40 27 8 14 14 12 6 26 10 19 4 3 12 2
mean(x ), var (x) , std(x)
数理统计的Matlab实现
注:若参数为矩阵, 默认计算各列向量的统计量,返回行向量; 若要计算各行向量的统计量,要加一个维数参数2, 返回列向量。
C=[1,3,3;4,8,6;7,7,9;6,5,9] mean(C) %计算样本均值向量 mean(C,2)
水平 产量
A1 A2 A3
94,91,75,85 62,68,50,70 78,65,80,69
数理统计的Matlab实现
相关知识点:
H 0 : 1 2 ... r 在H 0成立下 S A / (r 1) F ~ F (r 1, n r ) S E / (n r ) 其中ST S A S E , S A n j ( x j x ) 2 , S E ( xij x j ) 2
1 ˆ 若X X 可逆, ( X X) X y
数理统计的Matlab实现
A=load('D:\\货运总量.txt') [n,p]=size(A); X=[ones(n,1),A(:,1:p-1)] yห้องสมุดไป่ตู้A(:,p); [b,bint]=regress(y,X)
数理统计的Matlab实现
数理统计的Matlab实现
两类Fisher判别示意图
Y
G1
G2
L=b1X+b2Y
X
数理统计的Matlab实现
令a (a1 , a2 , am ) ' 为m为空间的任一向量, u ( X ) a ' X a1 X 1 a2 X 2 am X m为X向 以a为法线方向上的投影,称为线性判别函数, 则k 个总体的样本数据投影后为:
计算各行向量的最值较特殊,用 max(C,[ ],2) , min(C,[ ],2)
数理统计的Matlab实现
2. 计算样本的协方差矩阵和相关矩阵 cov(C ),corrcoef(C ) 3. 常用分布的分位点 nameinv (x, 参数表列) 其中函数名name的含义同前。 求分位点 u(0.025) , t0.025 (10) , 20.025 (10) , F0.05 (6,10)。 norminv(0.025, 0,1) tinv(0.025, 10) chi2inv(0.025 ,10) finv(0.05 ,6,10)
(1) G1 : u(1) a ' X (i ) ( i ) , i 1, , n1
G2 : u
(2) (i )
a'X
(2) (i )
, i 1, , n2
k) (k ) Gk : u( a ' X (i ) ( i ) , i 1, , nk
数理统计的Matlab实现
数理统计的Matlab实现
2.Bayes判别(假设正态分布,可计算后验概率) [class,err,p]=classify(sample,training,group,type)
其中sample为待判样本,training为训练样本,group为训练样本的 类别.前两个参数必须相同的列数,后两个参数必须相同的行数. type参数默认值为’linear’,即各组协方差阵相同;还可取值为 ‘quadratic‘,即各组用不同的协方差阵. 输出中class为待判样本的判别结果,err为的错判率,p为后验概率.
四、判别分析
1.距离判别(程序编写,查看maDis函数) A=load('D:\\胃癌的鉴别.txt') [n,p]=size(A); sample=A(:,1:p-1); train=sample;group=A(:,p); [class,Dis]= MaDis(sample,train,group,0)
因素A 因素B B1 B2
A1
87 85
A2
97 89
A3
90 84
A4
95 93
B3
82
88
80
72
AB=[87 97 90 95;85 89 84 93;82 88 80 72] anova2(AB)
数理统计的Matlab实现
2.有交互作用的方差分析 anova2(X,reps) 例3:某农科所为提高水稻产量,对不同水稻品种 (因素A)和施肥量(因素B)进行组合试验,每种组合各 3次,所得结果如下,试分析各水稻品种与各施肥量 及它们的交互作用对水稻产量是否有显著影响。
i 1 j 1
数理统计的Matlab实现
B0 a ' Ba ( a) A0 a ' Aa
def
选取a, 在a ' Aa 1条件下,使(a) a ' Ba达到最大.
求A1B的最大特征值和相应特征向量
数理统计的Matlab实现
五、聚类分析
系统聚类基本思想: 初始每个样本自成一类,并规定样品间的距离 和类与类间的距离;然后距离最近的两类合并 成为新类,并计算新类与其它类间的距离;接 下去再将最近小类聚成一类,如此反复,直到 所有样本聚成一类为止。
原则是使两组间的组间离差尽量大,而每个组的组 内离差尽量小。
组间离差平方和
B0 ni (u (i ) u )2 ni (a ' X (i ) a ' X ) 2
i 1 k i 1
k
k
a '[ ni ( X (i ) X )( X (i ) X ) ']a a ' Ba
5
6 7
72
68 78
38
45 42
1.2
1.5 4.0
240
220 275
8
9 10
66
70 65
36
44 42
2.0
3.2 3.0
160
275 250
数理统计的Matlab实现
相关知识点:
y 0 1x1 p xp , E( ) 0, D( )
矩阵形式:y X
数理统计的Matlab实现
相关知识点:
设总体Gi (i 1,..., k )的概率密度为fi ( x), 据以往经验, X Gi的概率为qi .当样品X已知时,计算它属于Gi的 qi fi ( x) 概率,P(i | X ) 。 q j f j ( x)
特别,总体服从正态分布的情形
fi ( x)
数理统计的Matlab实现
二、方差分析
1.单因素方差分析 anova1(X) 其中,X为需要分析的数据,每一列对应于一个组 (因子水平)的测试数据。
数理统计的Matlab实现
例1:某农科所为比较三种不同肥料对水稻产量的 影响,进行如下试验。选一块肥沃程度较均匀的土 地,将其分割成12块,随机地分成3组,所得产量 如下,请评价三种不同肥料对水稻产量由无显著性 差异。
数理统计的Matlab实现
三、多元线性回归分析
数理统计的Matlab实现
例1:研究货运总量y(万吨)与工业总产值x1(亿元)、 农业总产值x2(亿元)、居民非商品支出x3(亿元)的关 系。数据如下:
编号 1 2 3 4 x1 70 75 65 74 x2 35 40 40 42 x3 y 1.0 2.4 2.0 3.0 160 260 210 265