统计方法
有序变量是指等级分类变量
名义变量是不分等级的分类变量
度量变量就是连续变量

比率分析

“集中趋势”选项组
“离散”选项组
AAD:平均绝对偏差,表示中位数比率的绝对离差求和并用值除以比率总数
COD:离散(离差)系数,平均绝对偏差表示为中位数的百分比的值
COV:变异系数
中位数居中COV:即中位数居中的方差系数
PRD:价格相关微分,也称回归指数,表示均值除以加权均值所得到的值
数值越大,离散程度越高。
集中系数

列联表分析

以下3种检验方式之一:
仅渐近法(Asymptotic only):适用于具有渐近分布的大样本数据,SPSS默认选择该项。
Monte Carlo(蒙特卡罗法):此项为精确显著性水平值的无偏估计,无需数据具有渐近分布的假设,是一种非常有效的计算确切显著性水平的方法。在”置信水平”(Confidence Level)参数框内输入数据,可以确定置信区间的大小,一般为90、95、99。在”样本数”(Number of samples)参数框中可以输入数据的样本容量。
精确(Exact):观察结果概率,同时在下面的”每个检验的时间限制为”(Time limit per test)的参数框内,选择进行精确检验的最大时间限度。
在实际分析中,除了需要对单个变量的数据分布情况进行分析外,还需要掌握多个变量在不同取值情况下的数据分布情况,从而进一步深入分析变量之间的相互影响和关系,这种分析就称为交叉列联表分析。
当所观察的现象同时与两个因素有关时,如某种服装的销量受价格和居民收入的影响,某种产品的生产成本受原材料价格和产量的影响等,通过交叉列联表分析,可以较好地反映出这两个因素之间有无关联性及两个因素与所观察现象之间的相关关系。
因此,数据交叉列联表分析主要包括两个基本任务:一是根据收集的样本数据,产生二维或多维交叉列联表;二是在交叉列联表的基础上,对两个变量间是否存在相关性进行检验。要获得变量之间的相关性,仅仅靠描述性统计的数据是不够的,还需要借助一些表示变量间相关程度的统计量和一些非参数检验的方法。
常用的衡量变量间相关程度的统计量是简单相关系数,但在交叉列联表分析中,由于行列变量往往不是连续变量,不符合计算简单相关系数的前提条件。因此,需要根据变量的性质选择其他的相关系数,如Kendall等级相关系数、Eta值等。
SPSS提供了多种适用于不同类型数据的相关系数表达,这些相关性检验的零假设都是:行和列变量之间相互独立,不存在显著的相关关系。根据SPSS检验后得出的相伴概率(Concomitant Significance)判断是否存在相关关系。如果相伴概率小于显著性水平0.05,那么拒绝零假设,行列变量之间彼此相关;如果相伴概率大于显著性水平0.05,那么接受原假设,行列变量之间彼此独立。
在交叉列联表分析中,SPSS所提供的相关关系的检验方法主要有以下3种:
(1)卡方(χ2)统计检验:常用于检验行列变量之间是否相关。计算公式为:
统计方法 - 图1
其中,f0表示实际观察频数,fe表示期望频数。
卡方统计量服从(行数 1) (列数 1)个自由度的卡方统计。SPSS在计算卡方统计量时,同时给出相应的相伴概率,由此判断行列变量之间是否相关。
(2)列联系数(Contingency coefficient):常用于名义变量之间的相关系数计算。计算公式由卡方统计量修改而得,公式如下:
统计方法 - 图2
(3) 系数(Phi and Cramer’s V):常用于名义变量之间的相关系数计算。计算公式由卡方统计量修改而得,公式如下:
统计方法 - 图3
系数介于0和1之间,其中,K为行数和列数较小的实际数。
(1)卡方(Chi-square)检验复选框:检验列联表行列变量的独立性检验,也被称为Pearson chi-square检验、χ2检验。
(2)相关性(Correlations)检验复选框:输出列联表行列变量的Pearson相关系数或Spearman相关系数。
(3)名义(Nominal)栏:适用于名称变量统计量。
相依系数(Contingency coefficient):即Pearson相关系数或Spearman相关系数。
Phi 和Cramer变量( 系数):常用于名义变量之间的相关系数计算。计算公式由卡方统计量修改而得,如公式(3.13)所示。ψ系数介于0和1之间,其中,K为行数和列数较小的实际数。
Lambda(λ系数):在自变量预测中用于反映比例缩减误差,其值为1时表明自变量预测因变量好,为0时表明自变量预测因变量差。
不定性系数(Uncertainty coefficient):以熵为标准的比例缩减误差,其值接近1时表明后一变量的信息很大程度上来自前一变量,其值接近0时表明后一变量的信息与前一变量无关。
(4)有序(Ordinal)栏:适用于有序变量的统计量。
Gamma(伽马系数,γ系数):两有序变量之间的关联性的对称检验。其数值界于0和1之间,所有观察实际数集中于左上角和右下角时,取值为1,表示两个变量之间有很强的相关;取值为0时,表示两个变量之间相互独立。
Somers’d值:两有序变量之间的关联性的检验,取值范围为[-1,1]。
Kendall s tau-b值:考虑有结的秩或等级变量关联性的非参数检验,相同的观察值选入计算过程中,取值范围为[-1,1]。
Kendall s tau-c值:忽略有结的秩或等级变量关联性的非参数检验,相同的观察值不选入计算过程,取值范围界为[-1,1]。
(5)按区间标定(Nominal by interval)栏:适用于一个名义变量与一个等距变量的相关性检验。
Kappa系数:检验数据内部的一致性,仅适用于具有相同分类值和相同分类数量的变量交叉表。
Eta值:其平方值可认为是因变量受不同因素影响所致方差的比例。
风险(相对危险度):检验事件发生和某因素之间的关联性。
McNemar检验:主要用于检验配对的资料率(相当于配对卡方检验)。
(6)Cochran’s and Mantel-Haenszel统计量复选框:适用于在一个二值因素变量和一个二值响应变量之间的独立性检验。

相关分析

Pearson简单相关分析 适用等间隔测度 只反映线性关系
Spearman等级相关分析 用来考察两个变量中有至少有一个是定序变量 例:学历与收入
Kendall秩相关系数 利用变量秩计算一致对数目U和非一致对数目V 度量定序变量统计方法 - 图4
统计方法 - 图5
统计方法 - 图6

方差分析

  1. 样本必须满足:①可比性<br /> ②正态性<br /> ③同方差性<br />![](https://cdn.nlark.com/yuque/0/2022/png/21930551/1642822132134-537a0f37-fcc4-410c-99df-4a5fcda9c2e0.png#id=Sv3lJ&originHeight=1692&originWidth=1269&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)

T检验

单样本T检验(要求数据正态 且只涉及一个总体 利用样本的数据,来推断总体的均值)
两独立样本T检验(检验两个样本是否具有相同均值的总体)
多样本T检验(检验多个变量间的均值之间是否有显著差异)

参数检验

正态总体均值的假设检验
正态总体方差的假设检验
二项分布总体的假设实验

非参数检验

“中位数检验”采用的是卡方检验,卡方检验对期望频数小于5的单元格数是有一定限制的,所以在此,此检验只是作为参考
卡方检验(自己设定期望 检验总体分布与期望分布是否有显著性)
二次检验(推断总体与特定二项分布)
游程检验(随机性和两个总体分布是否相同)
单样本K-S检验(检验样本来自特定的理论分布)
多独立样本检验
中位数检验、Kruskal-Wallis检验、Jonckheere-Terpstra检验
中位数检验
中位数检验,假设为:多个独立样本来自的多个总体的中位数并无显著差异。
基本思想是:如果多个总体的中位数并无显著差异,或者说多个总体有共同的中位数,那么这个共同的中位数在各个样本中都应该处于中间位置。于是:每组样本中,大于小于中位数的样本数应该大致相同。
Kruskal-Wallis检验
Kruskal-Wallis检验实质是两独立样本的曼-惠特尼U检验在多个样本下的推广,也用于检验多个总体的分布是否存在显著差异。
其原假设是:多个独立样本来自的多个总体的分布无显著差异。
基本思想是:首先,将多组样本数据混合并按升序排序,求出各变量值的秩;然后,考察各组秩的均值是否存在显著差异。容易理解:如果各组秩的均值不存在显著差异,则是多组数据充分混合,数值相差不大的结果,可以认为多个总体的分布无显著差异;反之,如果各组秩的均值存在显著差异,则是多组数据无法混合,某些组的数值普遍偏大,另一些组的数值普遍偏小的结果,可以认为多个总体的分布有显著差异。
Jonckheere-Terpstra检验
Jonckheere-Terpstra检验也是用于检验多个独立样本来自的多个总体的分布是否存在显著差异的非参数检验方法,其原假设是:多个独立样本来自的多个总体的分布无显著差异。
基本思想与两独立样本的曼-惠特尼U检验类似,也是计算一组样本的观察值小于其他组样本的观察值的个数。
两配对样本的非参数检验
两配对样本的非参数检验,是对总体分布不了解的情况下,通过对两组配对样本的分析,推断两个样本来自的两个总体的分布是否存在显著差异。
配对样本的样本数相同,且样本值得前后顺序不能变。
例:要检验一种新的训练方法是否对提高跳远运动员的成绩有显著效果,可以收集一批跳远运动员在使用新训练方法前后的跳远最好成绩,这样的两组样本便是配对的。再例如,分析不同广告形式是否对商品的销售产生显著影响,可以比较几种不同商品在不同广告形式下的销售额数据(其他条件保持基本稳定)。这里不同广告形式下的若干组商品销售额样本便是配对样本。可见,配对样本的样本数是相同的,且各样本值的先后次序是不能随意更改的。
两配对样本检验(符号检验,McNeamr变化显著性检验,边际齐性检验,Wilcoxon配对符秩检验)
1,参数检验是针对参数做的假设,非参数检验是针对总体分布情况做的假设,这个是区分参数检验和非参数检验的一个重要特征。
2,二者的根本区别在于参数检验要利用到总体的信息(总体分布、总体的一些参数特征如方差),以总体分布和样本信息对总体参数作出推断;非参数检验不需要利用总体的信息(总体分布、总体的一些参数特征如方差),以样本信息对总体分布作出推断。
3,参数检验只能用于等距数据和比例数据,非参数检验主要用于记数数据。也可用于等距和比例数据,但精确性就会降低。
非参数检验往往不假定总体的分布类型,直接对总体的分布的某种假设(例如如称性、分位数大小等等假设)作统计检验。当然,上一节介绍的拟合优度检验也是非参数检验。除了拟合优度检验外,还有许多常用的非参数检验。最常见的非参数检验统计量有 3类:计数统计量、秩统计量、符号秩统计量。
正态分布用参数检验,非正态分布用非参数检验

因子分析

注意KMO>0.7

聚类分析

聚类与分类的不同在于,聚类所要求划分的类是未知的。
(1)可伸缩性:好的聚类算法可以处理包含大到几百万个对象的数据集;
(2)处理不同类型属性的能力:许多算法是针对基于区间的数值属性而设计的,但是有些应用需要针对其它数据类型(如符号类型、二值类型等)进行处理;
(3)发现任意形状的聚类:一个聚类可能是任意形状的,聚类算法不能局限于规则形状的聚类;
(4)输入参数的最小化:要求用户输入重要的参数不仅加重了用户的负担,也使聚类的质量
难以控制;
(5)对输入顺序的不敏感:不能因为有不同的数据提交顺序而使聚类的结果不同;
(6)高维性:一个数据集可能包含若干维或属性,一个好的聚类算法不能仅局限于处理二维
或三维数据,而需要在高维空间中发现有意义的聚类;
(7)基于约束的聚类:在实际应用中要考虑很多约束条件,设计能够满足特定约束条件且具
有较好聚类质量的算法也是一项重要的任务;
(8)可解释性:聚类的结果应该是可理解的、可解释的,以及可用的。
1.3 聚类应用
在商业上,聚类分析被用来发现不同的客户群,并且通过购买模式刻画不同的客户群的特征。聚类分析是细分市场的有效工具,同时也可用于研究消费者行为,寻找新的潜在市场、选择实验的市场,并作为多元分析的预处理。在生物上,聚类分析被用来动植物分类和对基因进行分类,获取对种群固有结构的认识。在地理上,聚类能够帮助在地球中被观察的数据库商趋于的相似性。在保险行业上,聚类分析通过一个高的平均消费来鉴定汽车保险单持有者的分组,同时根据住宅类型,价值,地理位置来鉴定一个城市的房产分组。在因特网应用上,聚类分析被用来在网上进行文档归类来修复信息。在电子商务上,聚类分析在电子商务中网站建设数据挖掘中也是很重要的一个方面,通过分组聚类出具有相似浏览行为的客户,并分析客户的共同特征,可以更好的帮助电子商务的用户了解自己的客户,向客户提供更合适的服务。
2 kmeans 算法
2.1 基本思想
划分聚类算法是根据给定的n 个对象或者元组的数据集,构建k 个划分聚类的方法。每个划分即为一个聚簇,并且k ? n。该方法将数据划分为k 个组,每个组至少有一个对象,每个对象必须属于而且只能属于一个组。1该方法的划分采用按照给定的k 个划分要求,先给出一个初始的划分,然后用迭代重定位技术,通过对象在划分之间的移动来改进划分。
为达到划分的全局最优,划分的聚类可能会穷举所有可能的划分。但在实际操作中,往往采用比较流行的k-means 算法或者k-median 算法。
2.2 算法步骤
k-means 算法最为简单,实现比较容易。每个簇都是使用对象的平均值来表示。
步骤一:将所有对象随机分配到k 个非空的簇中。
步骤二:计算每个簇的平均值,并用该平均值代表相应的值。
步骤三:根据每个对象与各个簇中心的距离,分配给最近的簇。
步骤四:转到步骤二,重新计算每个簇的平均值。这个过程不断重复直到满足某个准则函数或者终止条件。终止(收敛)条件可以是以下任何一个:没有(或者最小数目)数据点被重新分配给不同的聚类;没有(或者最小数目)聚类中心再发生变化;误差平方和(SSE)局部最小。
其中, k 表示需要聚集的类的数目, Cj表示第j 个聚类,mj表示聚类Cj的聚类中心,
dist表示数据点x 和聚类中心mj之间的距离。利用该准则可以使所生成的簇尽可能的紧凑和独立。
SAS kmeans 实现主要是通过proc fastclus 过程实现,示例如下:
proc import datafile=”E:\SAS\cars.txt” out=cars dbms=dlm replace;
delimiter=’09’x;
getnames=yes;
run;
proc print data=cars;
run;
proc standard data=cars out=stdcars mean=0 std=1;
var Mpg Weight DriveRatio Horsepower Displacement;
run;
proc fastclus data=stdcars summary maxc=5 maxiter=99
outseed=clusterseed out=clusterresult cluster=cluster least=2;
id Car;
var Mpg Weight Drive_Ratio Horsepower Displacement;
run;
2.3 算法分析
k-means 算法对于大型的数据库是相对高效的,一般情况下结束于局部最优解。但是,k-means 算法必须在平均值有意义的情况下才能使用,对分类变量不适用,事先还要给定生成聚类的数目,对异常数据和数据噪声比较敏感,不能对非凸面形状的数据进行处理。另外,k-means 算法在聚类过程中可能有的聚类中心没有被分配任何数据而使得某些聚类变为空,这些聚类通常被称为空聚类。为了解决空聚类问题,我们可以选择一个数据点作为替代的聚类中心。例如,某一个含有大量数据的聚类的聚簇中心最远的数据点。如果算法的终止条件取决于误差平方和,具有最大误差平方和的聚类可以被用来寻找另外的聚类中心。
3 层次聚类算法
3.1 基本思想
层次聚类主要有两种类型:合并的层次聚类和分裂的层次聚类。前者是一种自底向上的层次聚类算法,从最底层开始,每一次通过合并最相似的聚类来形成上一层次中的聚类,整个当全部数据点都合并到一个聚类的时候停止或者达到某个终止条件而结束,大部分层次聚类都是采用这种方法处理。后者是采用自顶向下的方法,从一个包含全部数据点的聚类开始,然后把根节点分裂为一些子聚类,每个子聚类再递归地继续往下分裂,直到出现只包含一个数据点的单节点聚类出现,即每个聚类中仅包含一个数据点。
层次聚类技术是一种无监督学习的技术,因此可能没有确定的、一致的正确答案。正是由于这个原因,并且在聚类的特定应用的基础之上,可以设计出较少或较多数量的簇。定义了一个聚类层次,就可以选择希望数量的簇。在极端的情况下,所有的对象都自成一簇。在这样的情形下,聚类的对象之间非常相似,并且不同于其他的聚类。当然,这种聚类技术就失去了实际意义,因为聚类的目的是寻找数据集中的有意义的模式,方便用户理解,而任何聚类的数目和数据对象一样多的聚类算法都不能帮助用户更好地理解数据,挖掘数据隐藏的真实含义。这样,关于聚类的很重要的一点就是应该比原先的数据的数目更少的簇。到底要形成多少个聚类数目,要根据实际业务的理解,这是如何解释实际项目的事情。层次聚类算法的好处是它可以让用户从这些簇中选择所感兴趣的簇,这样更具有灵活性。
层次聚类通常被看做成一棵树,其中最小的簇合并在一起创建下一个较高层次的簇,这一层次的簇再合并在一起就创建了再下一层次的簇。通过这样的过程,就可以生成一系列的聚类树来完成聚类。单点聚类处在树的最底层,在树的底层有一个根节点聚类。根节点聚类覆盖了全部数据节点,兄弟节点聚类则划分了它们共同的父节点中的所有的数据点。图1-5是采用统计分析软件SAS对Cars2数据集进行层次聚类的层次聚类结果图。通过该层次聚类树,用户可以选择查看在树的各个层次上的聚类情况。
基于层次的聚类算法方法比较简单,但是缺乏伸缩性,一旦一个合并或者分裂被执行,就不能撤销。为了改进层次聚类的效果,可以将层次聚类算法和其他聚类算法结合使用,形成多阶段的聚类算法。
3.2 算法步骤
层次聚类(hierarchical clustering)算法递归的对对象进行合并或者分裂,直到满足某一终止条件为止。层次聚类分为两种,按自底向上层次分解称为聚合的层次聚类,反之,称为分解的层次聚类。层次聚类算法的计算复杂度为O(n2),适合小型数据集的分类。
CURE、ROCK、BIRCH和CHAMELEON是聚合层次聚类中最具代表性的方法。CURE(Clustering Using REpresentatives)算法采用了抽样和分区的技术,选择数据空间中固定数目的、具有代表性的一些点来代表相应的类,这样就可以识别具有复杂形状和不同大小的聚类,从而很好的过滤孤立点。ROCK(RObust Clustering using linKs)算法是对CURE算法的改进,除了具有CURE算法的一些优良特性外,还适用于类别属性的数据。BIRCH(Balanced Iterative Reducing and Clustering using Hierarchy)算法首次提出了通过局部聚类对数据库进行预处理的思想。CHAMELEON是Karypis等人1999年提出的,它在聚合聚类的过程中利用了动态建模技术。
SAS实例
options nocenter nodate pageno=1 linesize=132;
title h = 1 j = l ‘File: cluster.mammalsteeth.sas’;
title2 h = 1 j = l ‘Cluster Analysis of Mammals” teeth data’;
data teeth;
input mammal $ 1-16
@wf0007 (v1-v8) (1.);
label v1=’Top incisors’
v2=’Bottom incisors’
v3=’Top canines’
v4=’Bottom canines’
v5=’Top premolars’
v6=’Bottom premolars’
v7=’Top molars’
v8=’Bottom molars’;
cards;
BROWN BAT 23113333
MOLE 32103333
SILVER HAIR BAT 23112333
PIGMY BAT 23112233
HOUSE BAT 23111233
RED BAT 13112233
PIKA 21002233
RABBIT 21003233
BEAVER 11002133
GROUNDHOG 11002133
GRAY SQUIRREL 11001133
HOUSE MOUSE 11000033
PORCUPINE 11001133
WOLF 33114423
BEAR 33114423
RACCOON 33114432
MARTEN 33114412
WEASEL 33113312
WOLVERINE 33114412
BADGER 33113312
RIVER OTTER 33114312
SEA OTTER 32113312
JAGUAR 33113211
COUGAR 33113211
FUR SEAL 32114411
SEA LION 32114411
GREY SEAL 32113322
ELEPHANT SEAL 21114411
REINDEER 04103333
ELK 04103333
DEER 04003333
MOOSE 04003333
;
proc princomp data=teeth out=teeth2;
var v1-v8;
run;
proc cluster data=teeth2 method=average outtree=ttree
ccc pseudo rsquare;
var v1-v8;
id mammal;
run;
proc tree data=ttree out=ttree2 nclusters=4;
id mammal;
run;
proc sort data=teeth2;
by mammal;
run;
proc sort data=ttree2;
by mammal;
run;
data teeth3;
merge teeth2 ttree2;
by mammal;
run;
symbol1 c=black f=, v=’1′;
symbol2 c=black f=, v=’2′;
symbol3 c=black f=, v=’3′;
symbol4 c=black f=, v=’4′;
proc gplot;
plot prin2prin1=cluster;
run;
proc sort;
by cluster;
run;
proc print;
by cluster;
var mammal prin1 prin2;
run;
*4 SAS聚类分析案例

1 问题背景
考虑下面案例,一个棒球管理员希望根据队员们的兴趣相似性将他们进行分组。显然,在该例子中,没有响应变量。管理者希望能够方便地识别出队员的分组情况。同时,他也希望了解不同组之间队员之间的差异性。
该案例的数据集是在SAMPSIO库中的DMABASE数据集。下面是数据集中的主要的变量的描述信息:
在这个案例中,设置TEAM,POSITION,LEAGUE,DIVISION和SALARY变量的模型角色为rejected,设置SALARY变量的模型角色为rejected是由于它的信息已经存储在LOGSALAR中。在聚类分析和自组织映射图中是不需要目标变量的。如果需要在一个目标变量上识别分组,可以考虑预测建模技术或者定义一个分类目标。
2 聚类方法概述
聚类分析经常和有监督分类相混淆,有监督分类是为定义的分类响应变量预测分组或者类别关系。而聚类分析,从另一方面考虑,它是一种无监督分类技术。它能够在所有输入变量的基础上识别出数据集中的分组和类别信息。这些组、簇,赋予不同的数字。然而,聚类数目不能用来评价类别之间的近似关系。自组织映射图尝试创建聚类,并且在一个图上用图形化的方式绘制出聚类信息,在此处我们并没有考虑。
1) 建立初始数据流
2) 设置输入数据源结点
打开输入数据源结点
从SAMPSIO库中选择DMABASE数据集
设置NAME变量的模型角色为id,TEAM,POSIOTION,LEAGUE,DIVISION和SALARY变量的模型角色为rejected
探索变量的分布和描述性统计信息
选择区间变量选项卡,可以观察到只有LOGSALAR和SALARY变量有缺失值。选择类别变量选项卡,可以观察到没有缺失值。在本例中,没有涉及到任何类别变量。
关闭输入数据源结点,并保存信息。
3) 设置替代结点
虽然并不是总是要处理缺失值,但是有时候缺失值的数量会影响聚类结点产生的聚类解决方案。为了产生初始聚类,聚类结点往往需要一些完整的观测值。当缺失值太多的时候,需要用替代结点来处理。虽然这并不是必须的,但是在本例中使用到了。
4) 设置聚类结点
打开聚类结点,激活变量选项卡。K-means聚类对输入数据是敏感的。一般情况下,考虑对数据集进行标准化处理。
在变量选项卡,选择标准偏差单选框
选择聚类选项卡
观察到默认选择聚类数目的方法是自动的
关闭聚类结点
5) 聚类结果
在聚类结点处运行流程图,查看聚类结果。
6) 限定聚类数目
打开聚类结点
选择聚类选项卡
在聚类数目选择部分,点击选择标准按钮
输入最大聚类数目为10
点击ok,关闭聚类结点
7)结果解释
我们可以定义每个类别的信息,结合背景识别每个类型的特征。选择箭头按钮,
选择三维聚类图的某一类别,
在工具栏选择刷新输入均值图图标,
点击该图标,可以查看该类别的规范化均值图
同理,可以根据该方法对其他类别进行解释。
8)运用Insight结点
Insight结点可以用来比较不同属性之间的异常。打开insight结点,选择整个数据集,关闭结点。
从insight结点处运行。
变量_SEGMNT
标识类别,distance标识观测值到所在类别中心的距离。运用insight窗口的analyze工具评估和比较聚类结果。
首先把SEGMNT的度量方式从interval转换成nominal。
R语言篇
以R基础包自带的鸢尾花(Iris)数据进行聚类分析。分析代码如下:
###### 代码清单 #######
data(iris); attach(iris)
iris.hc <- hclust(=””>
# plot( iris.hc, hang = -1)
plclust( iris.hc, labels = FALSE, hang = -1)
re <- rect.hclust(iris.hc,=”” k=””>
iris.id <- cutree(iris.hc,=””>
table(iris.id, Species)
###### 运行结果 #######
> table(iris.id,Species)
Species
iris.id setosa versicolor virginica
1 50 0 0
2 0 23 49
3 0 27 1
聚类分析生成的图形如下:
结果表明,函数cuttree()将数据iris分类结果iris.hc编为三组分别以1,2, 3表示,保存在iris.id中。将iris.id与iris中Species作比较发现:1应该是setosa类,2应该是virginica类(因为virginica的个数明显多于versicolor),3是versicolor。
仍以R基础包自带的鸢尾花(Iris)数据进行K-均值聚类分析,分析代码如下:
###### 代码清单 #######
library(fpc)
data(iris)
df<>
set.seed(252964) # 设置随机值,为了得到一致结果。
(kmeans <- kmeans(na.omit(df),=”” 3))=”” #=””>
plotcluster(na.omit(df), kmeans$cluster) # 生成聚类图
生成的图如下:
Python篇
Python运行条件:
1.Python运行环境与编辑环境;
2.Matplotlib.pyplot图形库,可用于快速绘制2D图表,与matlab中的plot命令类似,而且用法也基本相同。
# coding=utf-8
##
作者:Chan
程序:kmeans算法
##
import matplotlib.pyplot as plt
import math
import numpy
import random
#dotOringalNum为各个分类最初的大小
dotOringalNum=100
#dotAddNum最后测试点的数目
dotAddNum=1000
fig = plt.figure()
ax = fig.add_subplot(111)
sets=
colors=[‘b’,’g’,’r’,’y’]
#第一个分类,颜色为蓝色,在左下角
a=
txx=0.0
tyy=0.0
for i in range(0,dotOringalNum):
tx=float(random.randint(1000,3000))/100
ty=float(random.randint(1000,3000))/100
a.append([tx,ty])
txx+=tx
tyy+=ty
#ax.plot([tx],[ty],color=colors[0],linestyle=”,marker=’.’)
#a的第一个元素为a的各个元素xy值之合
a.insert(0,[txx,tyy])
sets.append(a)
#第二个分类,颜色为绿色,在右上角
b=
txx=0.0
tyy=0.0
for i in range(0,dotOringalNum):
tx=float(random.randint(4000,6000))/100
ty=float(random.randint(4000,6000))/100
b.append([tx,ty])
txx+=tx
tyy+=ty
#ax.plot([tx],[ty],color=colors[1],linestyle=”,marker=’.’)
b.insert(0,[txx,tyy])
sets.append(b)
#第三个分类,颜色为红色,在左上角
c=
txx=0.0
tyy=0.0
for i in range(0,dotOringalNum):
tx=float(random.randint(1000,3000))/100
ty=float(random.randint(4000,6000))/100
c.append([tx,ty])
txx+=tx
tyy+=ty
#ax.plot([tx],[ty],color=colors[2],linestyle=”,marker=’.’)
c.insert(0,[txx,tyy])
sets.append(c)
#第四个分类,颜色为黄色,在右下角
d=
txx=0
tyy=0
for i in range(0,dotOringalNum):
tx=float(random.randint(4000,6000))/100
ty=float(random.randint(1000,3000))/100
d.append([tx,ty])
txx+=tx
tyy+=ty
#ax.plot([tx],[ty],color=colors[3],linestyle=”,marker=’.’)
d.insert(0,[txx,tyy])
sets.append(d)
#测试
for i in range(0,dotAddNum):
tx=float(random.randint(0,7000))/100
ty=float(random.randint(0,7000))/100
dist=9000.0
setBelong=0
for j in range(0,4):
length=len(sets[j])-1
centX=sets[j][0][0]/length
centY=sets[j][0][1]/length
if (centX-tx)(centX-tx)+(centY-ty)(centY-ty)
运行效果:
回归分析
连续对连续 离散对离散
逐步回归 删除别的变量

判别分析

判别分析(Discriminate Analysis)是市场研究的重要分析技术,也是多变量分析技术。判别分析是一种进行统计判别和分类的统计技术手段。它可以就一定数量的个体的一个分类变量和相应的其它多元变量的已知信息,确定分类变量与其它多元变量之间的数量关系,建立判别函数,并利用判别函数构建Biplot二元判别图(概念图)。同时,利用这一数量关系对其他已知多元变量的信息、但未知分组的子类型的个体进行判别分组。
判别分析属于监督类分析方法,例如:市场细分研究中,常涉及判别个体所属类型的问题,也常涉及不同品牌在一组产品属性之间的消费者偏好和认知概念,判别分析可以很好地对这种差异进行鉴别。并在低维度空间表现这种差异。
一般来讲,利用判别分析首先要明确变量测量尺度及变量的类型和关系;
因变量(dependent variable): 分组变量——定性数据(个体、产品/品牌、特征,定类变量)。
自变量 (independent variable):判别变量——定量数据(属性的评价得分,数量型变量)。
明确因变量后:我们需要明确我们分析的目的;

  • 确定分组变量与判别变量间的关系建立判别函数,找到自变量的最佳区分因变量的各个类别的线性组和。
  • 可以确定后验概率,计算每个个体落入各个类别的概率。
  • 确定哪些判别变量x1、x2、x3…、xk对区分类别差异的影响最大。
  • 考察各个类别在判别变量方面是否存在显著差异。
  • 确定判别变量是以什么形式影响因变量的,即D是 x1 x2 x3 … xk 什么形式的函数。
  • 根据判别变量的值对个体进行分类。
  • 对分析的准确程度进行评价。

判别分析的应用领域非常广泛,例如:

  • 用户和非用户
  • 经常购买者和非经常购买者
  • 新用户、流失用户和忠实用户
  • 忠诚用户和非忠诚用户
  • 新产品早期使用者和后期使用者
  • 消费者心目中喜欢的品牌和不喜欢的品牌
  • 消费者对我们的品牌和竞争品牌的不同属性偏好
  • 偏好图
  • 市场细分
  • 新产品开发等

    一般来讲,判别变量是数量型测量尺度变量,分析样本个数至少比判别变量多两个,我们为了得到判别函数,经常需要把样本随机分成训练样本和检验样本等工作!
    判别函数=分组数-1(一般情况)

下面我们通过案例来操作判别分析并得到判别分析图!
注:分别用第一和第二个判别函数为坐标轴作个体和中心的散点图——偏好图

  1. 我们得到数据集,描述了100家用户对某公司产品的7项指标的满意度打分,因变量Y-客户类型:1-新客户、2-犹豫后再次购买、3-再次直接购买;<br /> 我们分析的目的是期望得到不同类型的客户,在选购该公司产品方面的影响因素和偏好结构!这样我们可以根据客户类型进行有针对性的改进和营销策略!![](https://cdn.nlark.com/yuque/0/2022/png/21930551/1642822132992-b8c3d31b-d5d2-4352-adaf-9d7731152bb7.png#id=xe1lW&originHeight=357&originWidth=532&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)7个自变量,也就是影响客户类型的因素指标:![](https://cdn.nlark.com/yuque/0/2022/png/21930551/1642822134046-b2a10391-6e6b-430c-83d5-def3e6d85ec8.png#id=ZIqiT&originHeight=286&originWidth=582&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)当数据收集好后,这时候要考虑数据集是否有缺省值、是否有未分类等基本描述性统计分析;<br />我们接下来选择判别分析:判别分析在分析菜单的分类子菜单下![](https://cdn.nlark.com/yuque/0/2022/png/21930551/1642822134596-bb007cd7-5704-4236-9784-4c707d2639a9.png#id=ki2lV&originHeight=640&originWidth=516&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)在对话框中,我们分别定义自变量和分组变量,其中分组变量要说明组编码取值范围!(我们有三类)![](https://cdn.nlark.com/yuque/0/2022/png/21930551/1642822135066-46b144f3-f873-4c4b-b252-378f7f956d8d.png#id=LP0OT&originHeight=345&originWidth=532&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=) 判别分析与多元回归分析一样,都有逐步进入方式,主要目的是通过软件程序和统计算法决定进入判别函数的自变量重要性程度,我们因为需要进行判别图分析,我采用一起全部进入判别方程。<br /> 接下来,我们需要在统计量中选择Fisher函数;![](https://cdn.nlark.com/yuque/0/2022/png/21930551/1642822135294-5f40a52a-d7da-43ce-ab2f-6e6ad9c13e36.png#id=MrTXR&originHeight=279&originWidth=275&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)我们希望看看判别效果如何,我们可以选择判别图形输出,可以让我们直观看到判别效果!![](https://cdn.nlark.com/yuque/0/2022/png/21930551/1642822135610-6b51b3f5-20a7-4e84-8550-aec5e96f4b26.png#id=ls7z1&originHeight=331&originWidth=400&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)下面我们看分析结果:首先看判别图,![](https://cdn.nlark.com/yuque/0/2022/png/21930551/1642822136172-adc69623-d6a3-44ac-9551-451bd0e4fb07.png#id=eFzHW&originHeight=503&originWidth=568&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)从图中很明显,看到三个组中心也就是客户类型,以及围绕着组中心的样本,说明分组判别还是不错的,当然这只是直观感觉,我们再看判别分析解释情况:![](https://cdn.nlark.com/yuque/0/2022/png/21930551/1642822136588-274194cc-7586-4143-b1d1-d1ee625e2fc5.png#id=nEUOO&originHeight=310&originWidth=388&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)从表中我们看到,因为分组变量是三类,所以我们得到两个判别函数,其中第一判别函数解释了数据的85.1%,第二判别函数解释了14.9%;两个判别函数解释了100%;当然,两个判别函数直接具有显著的差异和判别力!![](https://cdn.nlark.com/yuque/0/2022/png/21930551/1642822136838-fcf172dc-840f-4329-b018-e6601d400619.png#id=kZ5h5&originHeight=289&originWidth=387&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=) Fisher线性判别函数,我们主要用来构建判别方程,理论上说:如果我们知道某个客户在7个指标上的满意度打分,我们就可以估计出该客户应该是哪种类型的客户了!利用的是线性判别函数的得分,得分越大归到某类!<br />接下来我们考察判别图:(市场研究领域经常采用概念图-偏好图方法解释数据,特别说明的是:判别分析是最理想的构建判别偏好图的方法)![](https://cdn.nlark.com/yuque/0/2022/png/21930551/1642822137158-bbfa7347-cc5d-46d1-b4c6-15fc9e726b07.png#id=aVNL4&originHeight=417&originWidth=264&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=) 在判别分析结果中,我们可以得到两个典型判别函数的方程系数,分组变量的组中心坐标;我们利用7个指标和组中心的坐标进行偏好图制作,我们把这两张表输出到Excel里,然后再导入到SPSS软件中作散点图;<br /> ![](https://cdn.nlark.com/yuque/0/2022/png/21930551/1642822137638-ef156c84-f5b3-436f-8942-de12d77abe73.png#id=SvKIT&originHeight=640&originWidth=587&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)PASW Statistics也就是SPSS18.0功能有比较大的改进,当然作图方式也有了变化!![](https://cdn.nlark.com/yuque/0/2022/png/21930551/1642822137873-bc97a78e-0276-4afe-9e78-dc8053eb5a94.png#id=BmYLm&originHeight=508&originWidth=552&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)从上面的判别分析图中,大家是否会解读呢?

我们可以从圆心向组中心做向量,进行分析,看投影垂点等,解读方法大家可以参考前面的博客文章,《对应分析的七种解读方法》,偏好图和概念图都是一样的解读技术!

ARIMA模型

全称为自回归积分滑动平均模型(Autoregressive Integrated Moving Average Model,简记ARIMA),是由博克思(Box)和詹金斯(Jenkins)于70年代初提出一著名时间序列预测方法所以又称为box-jenkins模型、博克思-詹金斯法。
ARIMA(p,d,q)差分自回归移动平均模型
AR是自回归, p为自回归项
MA为移动平均,q为移动平均项数
d为时间序列成为平稳时所做的差分次数
所谓ARIMA模型,是指将非平稳时间序列转化为平稳时间序列,然后将因变量仅对它的滞后值以及随机误差项的现值和滞后值进行回归所建立的模型。ARIMA模型根据原序列是否平稳以及回归中所含部分的不同,包括移动平均过程(MA)、自回归过程(AR)、自回归移动平均过程(ARMA)以及ARIMA过程。
ARIMA模型的基本思想是:将预测对象随时间推移而形成的数据序列视为一个随机序列,用一定的数学模型来近似描述这个序列。这个模型一旦被识别后就可以从时间序列的过去值及现在值来预测未来值。现代统计方法、计量经济模型在某种程度上已经能够帮助企业对未来进行预测。
ARIMA模型预测的基本程序
(一)根据时间序列的散点图、自相关函数和偏自相关函数图以ADF单位根检验其方差、趋势及其季节性变化规律,对序列的平稳性进行识别。一般来讲,经济运行的时间序列都不是平稳序列。
(二)对非平稳序列进行平稳化处理。如果数据序列是非平稳的,并存在一定的增长或下降趋势,则需要对数据进行差分处理,如果数据存在异方差,则需对数据进行技术处理,直到处理后的数据的自相关函数值和偏相关函数值无显著地异于零。
(三)根据时间序列模型的识别规则,建立相应的模型。
若平稳序列的偏相关函数是截尾的,而自相关函数是拖尾的,可断定序列适合AR模型;
若平稳序列的偏相关函数是拖尾的,而自相关函数是截尾的,则可断定序列适合MA模型;
若平稳序列的偏相关函数和自相关函数均是拖尾的,则序列适合ARMA模型。
(截尾是指时间序列的自相关函数(ACF)或偏自相关函数(PACF)在某阶后均为0的性质(比如AR的PACF);拖尾是ACF或PACF并不在某阶后均为0的性质(比如AR的ACF)。)
(四)进行参数估计,检验是否具有统计意义。
(五)进行假设检验,诊断残差序列是否为白噪声。
(六)利用已通过检验的模型进行预测分析。
问卷信度分析
调查问卷的科学性和有效性是抽样调查分析的基础,一般采用信度分析和效度分析来评价调查问卷是否具有稳定性和可靠性。

信度,又叫可靠性,是指问卷的可信程度,主要表现检验结果的一贯性、一致性、再现性和稳定性。一 好的测量工具,对同一事物反复多次测量,其结果应该始终保持不变才可信。

调查问卷的评价体系是以量表形式来体现的,量表编制的合理性决定着评价结果的可用性和可信性。一般将信度分为两类:

1.内在信度重在考察同一组问题是否测量同一概念,问题之间是否具有较高的内在一致性。一致性程度越高,评价项目就越有意义,其评价结果的可信度就越强。
2.外在信度是指在不同时间对同批被调查者实施重复调查时, 评价结果是否具有一致性。如果两次评价结果相关性较强,说明项目的概念和内容是清晰的,因而评价的结果是可信的。
信度分析的方法有多种,有Alpha信度 和半分信度等,都是通过不同的方法来计算信度系数,再对信度系数进行分析。目前最常用的是Alpha信度系数法,且一般主要考虑量表的内在信度。
信度系数应在0~1之间,如信度系数大于0.9上,表示信度很好;如信度系数在0.8~0.9之间,表示信度可以接受;而信度系数在0.7~0.8之间,则表示量表有些问题需要修订;信度系数在 0.7以下,表示量表有些问题需要抛弃。
信度分析方法:
1. 重测信度法: 用同样的问卷对同一被测间隔一定时间的重复测试,也可称作测试——再测方法,计算两次测试结果的相关系数。很显然这是稳定系数,即跨时间的一致性。重测信度法适用于事实性的问卷,也可用于不易受环境影
响的态度、意见式问卷。由于重测信度需要对同一样本试测两次,而被测容易受到各种事件、活动的影响,所以间隔时间需要适当。较常用者为间隔二星期或一个月。 2.
复本信度法(等同信度法): 复本信度法是让被测一次填写两份问卷
复本,计算两个复本的相关系数。由于这种方法要求两个复本除表达方式不同外,在内容、格式、难度和对应题项的提问方式等方面都要完全一致,所以复本信度属于等值系数。在实际的调查中,问卷很难达到这种要求,这种方法较少被采用。 3.
折半信度法: 折半信度法是指将测量项目按奇偶项分成两半,分别记
分,测算出两半分数之间的相关系数(实际应用EXCEL软件),再据此确定整个测量的信度系数RXX。折半信度属于内在一致性系数,测量的是两半项目间的一致性。这种方法不适合测量事实性问卷,常用于态度、意见式问卷的信度分析。在问卷调查中,态度测量最常见的形式是5级李克特量表。进行折半信度分析时,如果量表中含有反意题项,应先将反意题项的得分作逆向处理,以保证各题项得分方向的一致性,然后将全部题项按奇偶或前后分为尽可能相等的两半,计算二者的相关系数(rhh)),即半个量表的信度系数),最后用斯皮尔曼-布朗(Spearman-Brown)公式:rtt=2rhh/(1+rhh),求出整个量表的信度系数rtt。 4.
评分者信度: 这种方法在测量工具的标准化程度较低的情况下进行的。不同评分者的判分标准也会影响测量的信度,要检验评分者信度,可计算一个评分者的一组评分与另一个评分者的一组评分的相关系数。
5. a信度系数法: 克伦巴赫a信度系数是目前最常用的信度系数。其公式为:a=(k/k-1)*(1-(∑Si2)/ST2)
其中,K为量表中题项的总数,Si2 为第i题得分的题内方差,ST2为全部题项总得分的方差。从公式中可以看出,a系数评价的是量表中各题项得分间的一致性,属于内在一致性系数。这种方法适用于态度、意见式问卷(量表)的信度分析。 在李克特量表法中常用的信度检验方法为“Cronbach’s a”系数及“折半信度”.

关键字 功 能
Alpha Cronbach a系数
Split-half 折半信度,n是第二分量表的题数
Guttman Guttman最低下限真实信度法
Parallel 各题目变异数同质时的最大概率(maximum-likelihood)信度
Strict parallel 各题目平均数与变异数均同质时的最大概率信度
  • 表2 Reliability Analysis模块的Statistics部分选项的参数及对应中文术语 | 关键字 | 功 能 | | —- | —- | | F test | Hoyt信度系数 | | Friedman Chi | Friedman等级变异数分析及Kendall和谐系数 | | Cochran Chi | Cochran’s Q检验,适用于答案为二分(如是非题)的量表 | | Hotelling’s T | Hotelling’s T2 检验 | | Tukey’s | Tukey的可加性检验 | | Intraclass | 量表内各题目平均数相关系数 |

缺失值处理

P-P图

检验数据是否符合某种指定分布

Q-Q图

检验是否为正态分布 直线K=标准差,截取为均值