2019/12/181第八章多元统计分析2019/12/182主要内容第一节聚类分析第二节判别分析第三节主成分分析和因子分析2019/12/183分类俗语说,物以类聚、人以群分。但什么是分类的根据呢?比如,要想把中国的县分成若干类,就有很多种分类法。可以按照自然条件来分,比如考虑降水、土地、日照、湿度等各方面;也可以考虑收入、教育水准、医疗条件、基础设施等指标;既可以用某一项来分类,也可以同时考虑多项指标来分类。第一节聚类分析2019/12/184聚类分析(ClusterAnalysis)聚类分析是定量研究分类问题的一种多元统计方法。其基本思想是同一类中的个体有较大的相似性,不同类中的个体差异较大,于是根据一批的多个观测指标,找出能够度量样品(或变量)之间相似度的统计量,并以此为依据,采用某种聚类法,将所有的样品(或变量)分别聚合到不同的类中。当然,并不一定事先假定有多少类,完全可以按照数据本身的规律来分类。对样品的聚类称为Q型聚类,而对变量的聚类称为R型聚类。这两种聚类在数学上是对称的,没有什么不同。2019/12/185饮料数据(drink.sav)16种饮料的热量、咖啡因、钠及价格四种变量2019/12/186如何度量远近?如果想要对100个学生进行分类,如果仅仅知道他们的数学成绩,则只好按照数学成绩来分类;这些成绩在直线上形成100个点。这样就可以把接近的点放到一类。如果还知道他们的物理成绩,这样数学和物理成绩就形成二维平面上的100个点,也可以按照距离远近来分类。三维或者更高维的情况也是类似;只不过三维以上的图形无法直观地画出来而已。在饮料数据中,每种饮料都有四个变量值。这就是四维空间点的问题了。2019/12/187两个距离概念按照远近程度来聚类需要明确两个概念:一个是点和点之间的距离,一个是类和类之间的距离。点间距离有很多定义方式。最简单的是歐氏距离,还有其他的距离。由一个点组成的类是最基本的类;如果每一类都由一个点组成,那么点间的距离就是类间距离。但是如果某一类包含不止一个点,那么就要确定类间距离。类间距离是基于点间距离定义的:比如两类中最近点之间的距离可以作为这两类之间的距离,也可以用两类中最远点之间的距离作为这两类之间的距离;当然也可以用各类的中心之间的距离来作为类间距离。在计算时,各种点间距离和类间距离的选择是通过统计软件的选项实现的。不同的选择的结果会不同,但一般差异不大。当然还有一些和距离起同样作用的概念,比如相似系数等,两点相似度越大,就相当于距离越短。2019/12/188向量x=(x1,…,xp)与y=(y1,…,yp)之间的距离或相似系数:2()iiixy欧氏距离:Euclidean平方欧氏距离:SquaredEuclidean2()iiixy夹角余弦(相似系数1):cosine22(1)cosiiixyxyiiiixyCxyPearsoncorrelation(相似系数2):Chebychev:Maxi|xi-yi|Block(绝对距离):Si|xi-yi|Minkowski:1()qqiiixy当变量的测量值相差悬殊时,要先进行标准化.如R为极差,s为标准差,则标准化的数据为每个观测值减去均值后再除以R或s.当观测值大于0时,有人采用Lance和Williams的距离||1iiiiixypxy22()()(2)()()iiixyxyiiiixxyyCrxxyy2019/12/189类Gp与类Gq之间的距离Dpq(d(xi,xj)表示点xi∈Gp和xj∈Gq之间的距离)min(,)pqijDdxx最短距离法:最长距离法:重心法:离差平方和:(Wald)类平均法:(中间距离,可变平均法,可变法等可参考各书).在用欧氏距离时,有统一的递推公式(假设Gr是从Gp和Gq合并而来):12121212()'(),()'(),()'()ipjqkpqipipjqjqxGxGkipqxGGDxxxxDxxxxDxxxxDDDDmax(,)pqijDdxxmin(,)pqpqDdxx121(,)ipjqpqijxGxGDdxxnn2019/12/1810Lance和Williams给出(对欧氏距离)统一递推公式:D2(k,r)=apD2(k,p)+aqD2(k,q)+bD2(p,q)+g|D2(k,p)-D2(k,q)|前面方法的递推公式可选择参数而得:方法ai(i=p,q)bg最短距离½0-1/2最长距离½01/2重心ni/nr-apaq0类平均ni/nr00离差平方和(ni+nk)/(nr+nk)-nk/(nr+nk)0中间距离1/2-1/40可变法(1-b)/2b(1)0可变平均(1-b)ni/nrb(1)02019/12/1811有了上面的点间距离和类间距离的概念,就可以介绍聚类的方法了。这里介绍两个简单的方法。2019/12/1812事先要确定分多少类:k-均值聚类前面说过,聚类可以走着瞧,不一定事先确定有多少类;但是这里的k-均值聚类(k-meanscluster,也叫快速聚类,quickcluster)却要求你先说好要分多少类。看起来有些主观,是吧!假定你说分3类,这个方法还进一步要求你事先确定3个点为“聚类种子”(SPSS软件自动为你选种子);也就是说,把这3个点作为三类中每一类的基石。然后,根据和这三个点的距离远近,把所有点分成三类。再把这三类的中心(均值)作为新的基石或种子(原来的“种子”就没用了),重新按照距离分类。如此叠代下去,直到达到停止叠代的要求(比如,各类最后变化不大了,或者叠代次数太多了)。显然,前面的聚类种子的选择并不必太认真,它们很可能最后还会分到同一类中呢。下面用饮料数据为例来做k-均值聚类。2019/12/1813•假定要把这16种饮料分成3类。利用SPSS,只叠代了三次就达到目标了(计算机选的种子还可以),这样就可以得到最后的三类的中心以及每类有多少点。FinalClusterCenters203.1033.71107.341.654.163.4913.0510.068.763.152.692.94CALORIECAFFEINESODIUMPRICE123ClusterNumberofCasesineachCluster2.0007.0007.00016.000.000123ClusterValidMissing2019/12/1814根据需要,可以输出哪些点分在一起。结果是:第一类为饮料1、10;第二类为饮料2、4、8、11、12、13、14;第三类为剩下的饮料3、5、6、7、9、15、16。2019/12/1815SPSS实现(聚类分析)K-均值聚类(以数据drink.sav为例)在SPSS中选择Analyze-Classify-K-MeansCluster然后把calorie(热量)、caffeine(咖啡因)、sodium(钠)、price(价格)选入Variables在NumberofClusters处选择3(想要分的类数)如果想要知道哪种饮料分到哪类,则选Save,再选ClusterMembership等。注意k-均值聚类只能做Q型聚类,如要做R型聚类,需要把数据阵进行转置。2019/12/1816事先不用确定分多少类:分层聚类另一种聚类称为分层聚类或系统聚类(hierarchicalcluster)。开始时,有多少点就是多少类。它第一步先把最近的两类(点)合并成一类,然后再把剩下的最近的两类合并成一类;这样下去,每次都少一类,直到最后只有一大类为止。显然,越是后来合并的类,距离就越远。再对饮料例子来实施分层聚类。2019/12/1817SPSS实现(聚类分析)分层聚类(drink.sav数据)在SPSS中选择Analyze-Classify-HierarchicalCluster;然后把calorie(热量)、caffeine(咖啡因)、sodium(钠)、price(价格)选入Variables;在Cluster选Cases(这是Q型聚类:对样品聚类),如果要对变量聚类(R型聚类)则选Variables;为了画出树状图,选Plots,再点Dendrogram等。2019/12/1818对于我们的数据,SPSS输出的树型图为2019/12/1819聚类要注意的问题聚类结果主要受所选择的变量影响。如果去掉一些变量,或者增加一些变量,结果会很不同。相比之下,聚类方法的选择则不那么重要了。因此,聚类之前一定要目标明确。另外就分成多少类来说,也要有道理。只要你高兴,从分层聚类的计算机结果可以得到任何可能数量的类。但是,聚类的目的是要使各类距离尽可能的远,而类中点的距离尽可能的近,而且分类结果还要有令人信服的解释。这一点就不是统计可以解决的了。2019/12/1820啤酒成分和价格数据啤酒名热量钠含量酒精价格Budweiser144.0019.004.70.43Schlitz181.0019.004.90.43Ionenbrau157.0015.004.90.48Kronensourc170.007.005.20.73Heineken152.0011.005.00.77Old-milnaukee145.0023.004.60.26Aucsberger175.0024.005.50.40Strchs-bohemi149.0027.004.70.42Miller-lite99.0010.004.30.43Sudeiser-lich113.006.003.70.44Coors140.0016.004.60.44Coorslicht102.0015.004.10.46Michelos-lich135.0011.004.20.50Secrs150.0019.004.70.76Kkirin149.006.005.00.79Pabst-extra-l68.0015.002.30.36Hamms136.0019.004.40.43Heilemans-old144.0024.004.90.43Olympia-gold-72.006.002.90.46Schlite-light97.007.004.20.472019/12/1821Statistics→Classify→HierarchicalCluster:Variables:热量、钠含量、酒精、价格LabelCasesby:(变量名)Cluster:(Case,Q型聚类)Display:(Statistics)(Plots)Statistics:(AgglomerationSchedule凝聚状态表),(Proximitymatrix),Clustermembership(Singlesolution,[4])Method:Cluster(FurthestNeighbor),Measure-Interval(SquaredEuclideandistance),TransformValue(Range0-1/Byvariable(变量值-最小值)/极差)Plots:(Dendrogram)Icicle(Specifiedrangeofcluster,Start-1,Stop-4,by-1),Orientation(Vertical)Save:ClusterMembership(Singlesolution[4])2019/12/1822啤酒例子下表(Proximitymatrix)中行列交叉点为两种啤酒之间各变量的欧氏距离平方和CaseProcessingSummarya20100.0%0.0%20100.0%NPercentNPercentNPercentValidMissingTotalCasesSquaredEuclideanDistanceuseda.ProximityMatrix.000.111.062.724.570.140.198.147.358.556.023.213.193