一个糟糕的多元分析PJ

多元分析Project


背景介绍
数据来源
数据来自UCI数据库https://archive.ics.uci.edu/ml/datasets/wine+quality

变量介绍

探索性分析

图1.1 各变量分布图

表1.1 各变量描述性统计表
Minimum Maximum Mean Median Stdev Skewness
fixed.acidity 4.6 15.9 8.319637 7.9 1.741096 0.980908
volatile.acidity 0.12 1.58 0.527821 0.52 0.17906 0.670333
citric.acid 0 1 0.270976 0.26 0.194801 0.31774
residual.sugar 0.9 15.5 2.538806 2.2 1.409928 4.53214
chlorides 0.012 0.611 0.087467 0.079 0.047065 5.669694
free.sulfur.dioxide 1 72 15.87492 14 10.46016 1.248222
total.sulfur.dioxide 6 289 46.46779 38 32.89532 1.512689
density 0.99007 1.00369 0.996747 0.99675 0.001887 0.071154
pH 2.74 4.01 3.311113 3.31 0.154386 0.19332
sulphates 0.33 2 0.658149 0.62 0.169507 2.424118
alcohol 8.4 14.9 10.42298 10.2 1.065668 0.859214

图1.2 各变量相关性分析
从描述性统计上来看数据集的多个变量之间存在相关性,我们同时进行了箱线图描述性统计,图表如下,从以quality为分组的箱线图中可以看出酒精含量、密度、citric.acid、volatile.acidity随着quality变化有明显的趋势。

因子分析

首先确定需要的公共因子个数。我们根据碎石图拐点、特征值大于1和平行分析,确定公共因子个数为6。由结果可知,六个因子可以解释75%的总体方差。

图3.1因子分析碎石图和平行分析

表3.1 因子贡献比例

提取公共因子

此处给出每个因子的载荷,共性方差和特殊方差。

表3.2 旋转后因子载荷结果

可以发现固定酸度、ph值和柠檬酸在MR1上载荷较大,我们认为这是酸度因子。游离二氧化硫、总二氧化硫在MR3上载荷较大,该因子为二氧化硫因子。酒精含量在MR2载荷较大,该因子为酒精含量因子。氯化物、硫酸盐在MR4上载荷较大。挥发酸度组成MR5上载荷较大。密度和剩余糖量在MR6上载荷较大。

图3.2 因子组成图

聚类
采用K-means聚类方法,首先选择最佳聚类数。我们根据26个聚类指数的结果得到最佳聚类数为3。其中准则2和3选择聚类数相同,此处姑且选择2类。

                        图4.1 最佳聚类数投票结果图

两类的个体数分别为420,1179。聚类中心的变量取值如下,由于我们的各个变量的取值范围较小,两类的中心差距并不明显。

表4.1 聚类中心变量统计结果

由于维度较多可视化困难,我们选择前两个主成分进行可视化。深蓝色点代表聚类二,浅蓝色点代表聚类一。可见,分类主要是按照PC2分为两类。PC1主要是表示酸度,PC2主要表示硫化物和酒精浓度。

图4.2 聚类结果散点图

分类后我们对quality画直方图,进行比较,我们发现两类红酒的质量的确有差异,组一质量低于组二,根据聚类中心的变量取值。

图4.3 两类红酒质量分布直方图

判别与分类

图5.1 变量quality分布

变量quality是取值为3到8的定序变量,考虑建立分类变量quality.class,当quality取值>=6时,该变量取值为1;当quality取值<6时,该变量取值为0。按照该规则分类的好处是,变量quality.class取值为1和0的比例为53.5%和46.5%,分布比较平均,能更好地判定分类效果的好坏。

本研究主要使用三类方法来对红酒的品质进行判别与分类,这三类方法分别为:Logistic模型,线性判别和机器学习算法。在拟合效果的检验上,采用交叉验证的方法,随机抽样80%的样本作为训练集,其余作为预测集。拟合效果的指标选用预测准确率(Accuracy),即分类正确的观测个数/总观测个数。

Logistic模型

将quality.class作为因变量,其余变量作为自变量建立logistic模型。由于大部分的自变量均存在明显的右偏性,故考虑对这些变量做log处理,以降低数值过大的离群点对模型的影响。根据探索性分析中各变量的分布情况,决定对除了citric.acid和density以外的自变量都做log处理。

由于部分自变量之间存在一定相关性,故采用BIC逐步回归进行变量筛选。其基本思想是,将变量逐一引入,引入变量的条件是使得模型的BIC最小(BIC = -2ln(模型似然度) + 模型自由参数个数*ln(样本观测数量));同时,每引入一个新变量,对已选入模型的老变量逐个进行检验,将经检验认为不显著的变量剔除;此过程经过若干步直到不能再引入新变量为止。最终筛选入的变量一共有7个,分别是:fixed.acidity,volatile.acidity,citric.acid,free.sulfur.dioxide,total.sulfur.dioxide,sulphates,alcohol。可以发现筛选出的变量主要集中为三类:酸度相关的变量,硫化物相关的变量,酒精浓度。模型结果见表5.1。

表5.1 Logistic模型BIC逐步回归结果
变量 系数估计 标准差 t值 显著性
(Intercept) -27.1568 2.5758 -10.543 < 2e-16
fixed.acidity 1.8616 0.5019 3.709 0.000208
volatile.acidity -1.9117 0.2782 -6.87 6.40E-12
citric.acid -2.3343 0.6072 -3.844 0.000121
free.sulfur.dioxide 0.4721 0.1728 2.732 0.006301
total.sulfur.dioxide -0.7327 0.1729 -4.238 2.26E-05
sulphates 2.4962 0.3431 7.275 3.47E-13
alcohol 10.834 0.8712 12.435 < 2e-16

从各变量的系数的正负号可以发现,fixed.acidity,free.sulfur.dioxide,sulphates和alcohol对红酒的质量呈正向影响,而volatile.acidity,citric.acid和total.sulfur.dioxide对红酒的质量呈负向影响。该结果与现实当中的红酒品鉴一定程度上相匹配,比如固定酸度(fixed acidity)体现在口腔中的味觉,可以给葡萄酒清爽的口感,相应地其变量系数是正的;而挥发酸度(volatile acidity)如果过高,则会产生一种口感较差的醋味,相应地其变量系数是负的。

同时也可以对变量系数的大小进行解读。以变量酒精浓度(alcohol)为例,保持其他自变量不变,酒精浓度每增长1%,quality.class取1的发生比就会增长exp⁡(10.834*log⁡(1.01) )=1.11倍。

模型的表达式为:
Logit(π(X))=-27.16+1.86ln⁡(fixed.acidity)-1.91ln⁡(volatile.acidity)-2.33citric.acidity+0.47ln⁡(free.sulfer.dioxide)-0.73ln⁡(total.sulfur.dioxide)+2.50ln⁡(sulphates)+10.83*ln⁡(alcohol)

对该模型的预测效果进行检验,混淆矩阵见下表。该模型在训练集中的预测准确率为74.3%,在测试集中的预测准确率为70.3%。

表5.2 Logistic模型预测混淆矩阵

主成分后的logistic模型

发现BIC逐步回归筛选的自变量仍存在一定的共线性问题(fixed.acidity和citric.acid之间,以及free.sulfur.dioxide和total.sulfur.dioxide之间),故尝试用主成分提取出相关性比较强的变量,再建立Logistic模型。由于各自变量的量级差别较大,故提取主成分之前先对自变量做标准化处理。

首先确定主成分的个数。根据平行分析(即若基于真实数据的某个特征值大于随机数据矩阵相应的平均特征值,则可以保留),应该保留4个主成分。而根据Cattell碎石检验,在主成分为6的时候,碎石图的弯曲变化情况最大,故应该保留6个主成分。为了继承原始数据中更多的信息,决定保留6个主成分,这6个主成分可以累积解释原始数据中86%的方差(见表5.3)。

图5.2 主成分碎石图与平行分析

表5.3 主成分累积贡献率表
PC1 PC2 PC3 PC4 PC5 PC6
Standard deviation 1.7604 1.3878 1.2452 1.1015 0.97943 0.81216
Proportion of Variance 0.2817 0.1751 0.141 0.1103 0.08721 0.05996
Cumulative Proportion 0.2817 0.4568 0.5978 0.7081 0.79528 0.85525

主成分的线性组合结果见表5.4。这些主成分的含义与因子分析中各因子的线性组合含义基本一致,故此处不再赘述。

表5.4 主成分线性组合
PC1 PC2 PC3 PC4 PC5 PC6
fixed.acidity 0.489 -0.111 0.123 -0.230 0.083 -0.101
volatile.acidity -0.239 0.275 0.450 0.079 -0.219 -0.411
citric.acid 0.464 -0.152 -0.238 -0.079 0.059 -0.070
residual.sugar 0.146 0.272 -0.101 -0.373 -0.732 -0.049
chlorides 0.212 0.148 0.093 0.666 -0.247 -0.304
free.sulfur.dioxide -0.036 0.514 -0.429 -0.044 0.159 0.014
total.sulfur.dioxide 0.024 0.569 -0.322 -0.035 0.222 -0.136
density 0.395 0.234 0.339 -0.174 -0.157 0.391
pH -0.439 0.007 -0.058 -0.004 -0.268 0.522
sulphates 0.243 -0.038 -0.280 0.551 -0.226 0.381
alcohol -0.113 -0.386 -0.472 -0.122 -0.351 -0.362

将上述的六个主成分作为自变量,再次建立Logistic模型,模型的结果如下。

表5.5 主成分Logistic模型结果
变量 系数估计 标准差 t值 显著性
(Intercept) 0.26471 0.069 3.836 0.000125
PC1 0.09729 0.03761 2.587 0.009691
PC2 -0.75823 0.0574 -13.208 < 2e-16
PC3 -0.74689 0.06254 -11.943 < 2e-16
PC4 -0.0782 0.0587 -1.332 0.182797
PC5 -0.4804 0.07398 -6.494 8.36E-11
PC6 0.09169 0.08566 1.07 0.284444

模型的表达式为:
Logit(π(X))=0.26+0.10PC1-0.76PC2-0.75PC3-0.08PC4-0.48PC5+0.09PC6

对主成分Logistic模型的预测效果进行检验,混淆矩阵见下表。 该模型在训练集中的预测准确率为71.1%,在测试集中的预测准确率为67.5%。相比于BIC逐步回归后的Logistic模型,该模型的预测准确率有所下降,其原因可能是主成分提取后造成的信息丢失,使得自变量的解释性降低。

表5.6 主成分Logistic模型预测混淆矩阵

线性判别分析

这一节中,我们继续以quality class为分类变量,按8:2的训测比对描述红酒理化性质的11个自变量进行判别分析。

首先为估计总体协方差阵同时确定判别分析方法,我们对样本间的协方差阵进行齐性检验,检验结果拒绝原假设,这意味着我们需采取组内协方差阵对总体协方差阵做估计,并且不能选取Fisher方法进行判别,因此我们采用距离判别法作为代替。因此我们需对各个自变量进行Box-Cox变换以使其分布接近正态,结果如下:

表5.7 各自变量Box-cox变换结果
自变量 λ
fixed_acidity -0.75
volatile_acidity 0.5
citric_acid Square
residual_sugar -1.25
chlorides -0.5
free_sulfur_dioxide 0.25
total_sulfur_dioxide 0
density 1
ph 0
Sulphates -1
alcohol -3

其中citric_acid(柠檬酸含量)是典型的多峰分布,难以正态化,并且数据包含0值,无法使用Box-Cox变换,而采用Yeo-Johnson方法的结果仍不理想,最终在多次尝试后采取开根号处理。

图5.3 柠檬酸含量分布直方图

在此基础上,我们以训练集中的分类比例为先验概率进行训练。在训练集中,分类的准确率达到了76.41%,而在此基础上,测试集的判别准确率则进一步达到了74.45%。

图5.4 训练集与测试集线性判别结果

而尽管预测准确率比较理想,该方法仍然存在一定的漏洞——距离判别法需要样本的正态性假设作为前提,然而虽然经过了Box-Cox变换,仍有一部分变量未能通过正态性检验,这使得该判别方法的可靠性存疑。因此,我们拟采用无需正态性前提的非参数判别法进一步进行判别。

KNN分类方法

我们选取了数据挖掘中较为常见的kNN(k最近邻)方法进行分析,经过测试发现设置最近邻个数k=9时预测结果较好,经过训练集训练后,最终测试结果如下图所示:

图5.5 kNN分类方法的出错比率与ROC曲线
训练集的分类准确率为77.9%,而测试集的分类准确率为74.1%,两种方法准确率差距相对较小,但后者的结论较为可靠。

各模型对比研究

经过以上讨论,我们对涉及到的模型做了汇总,各分类模型在训练与测试集中的准确度如下所示:

表5.7 各分类模型的准确度对比

其中随机森林模型的在训练和测试集中的表现均为较好,而Logistic模型无论是有无采用主成分变量,预测结果均较差。我们认为其中的原因值得探究,以为我们日后对类似的数据做挖掘分析提供借鉴。

(1)Logistic模型的优缺点如下:

在Logistic模型中,为了处理有偏数据的影响,我们对除citric_acid(柠檬酸含量)和density(密度)之外的9个自变量均作了对数化处理,然而这种处理显然不一定和实际情况相一致。甚至从常理分析,这些描述理化性质的变量对于品质的影响很难说是严格正/负相关的。以Ph值为例,Ph值是衡量溶液酸碱度的变量,具体说,是衡量溶液中氢离子浓度的指标,服从Ph=-Log(c(H+)),纯水的Ph值为7。Ph值太高太低都会对口感造成糟糕的影响,甚至对健康造成危害,这个变量显然和品质不是正/负相关的关系,简单的对数化处理无法表现其与因变量的关系。

其次,模型没有考虑各个自变量的交叉项,但实际上恰恰是这些理化变量之间的相互作用,才形成了酒综合的口感。以在模型中统计显著性(p值)和经济显著性(系数)表现最好的alcohol(酒精浓度)变量为例。参照权威品酒机构的评论,酒精、单宁、酸度、甜度和香气是影响葡萄酒风味的 5 大重要因素,这5个要素的量相互和谐,相互平衡时,口感体验才较好。当酒精度水平要明显高于其他影响口感的要素时,浓烈刺鼻的酒精会掩盖葡萄酒的其他风味,带来不愉快的口感体验,而当酒精度低于其他要素的水平时,也会导致口感平淡乏味,且不足以支撑酒体。只有结构平衡的葡萄酒,即便酒精度高也不会让人感觉到有特别突出的酒精味,反而会被评价为“Powerful”。但即使考虑到交叉项的存在,应当添加那些变量的交叉项,这些变量间又当如何组合,Logistic模型无法智能地对这种多变量综合效应做探讨,而人工地对这些变量简单组合,一个个地进行尝试,无疑是效率低下,且可靠度存疑的。

最后,变量之间的多重共线性极大的削弱了模型的解释力度,而对数据降维处理后,模型的预测准确度进一步下滑到只有67.8%的水平,考虑到两分类中多的一类比例为54.3%,这个结果无疑是无法让人满意的,这也体现出降维处理带来的信息损失对模型造成的损害。

总结来说,Logistic模型是这些所有模型中,对因变量与自变量,以及自变量之间组合关系限制的最为严格,自主调整性最弱的模型,这对于处理红酒这样变量间具有较强交互关系,存在共线性现象,且大量自变量与因变量并非严格正/负相关关系的数据无疑是不利的,因此在预测中表现不佳也在意料之中。

(2)随机森林模型的优缺点如下

随机森林模型是一种用于数据挖掘的集成学习算法,通过建立几个决策树模型组合的来解决单一预测问题。它的工作原理是生成多个决策树,各自独立地训练和作出预测,最后依靠于决策树的投票选择来决定分类结果。

随机森林的一个优势是对数据的适应能力强,离散和连续数据均能处理,也无需对数据做规范化,能够处理具有高维特征的输入样本,通过评估各个自变量在问题上的重要性做出判断,不需要降维,这避免了在处理复杂样本时碍于变量的自身性质,以及相互间的强相关关系不得不进行降维操作而损失信息量。

其次,随机森林基于决策树模型进行分类,通过深化分支,可以对变量间的交互关系进行信息利用,同时也无需对因变量与特征之间的关系做具体假定,只要大体服从正/负相关关系,就可以取得良好的效果。

再次,随机森林通过采取有放回随机抽样为各个决策树筛选训练集,使各个决策单元的学习过程求同存异,这使得模型不容易陷入过拟合,也具有良好的抗噪效果。

但该模型也绝非尽善尽美,由于随机森林本质上仍是基于决策树组合构建的模型,在因变量与特征非严格正/负相关时仍会出现误差,或是简单的降级这一特征的重要性,导致信息的损失。最后,随机森林无法像回归方法一样,给出一个简单的公式结论,其训练后的结果是一个黑箱,这某种程度上影响了模型的解释力。

结论与不足

本研究的结论主要有以下几点:
综合来说,分类问题中,在面对自变量间具有较强交互关系、因变量与自变量关系复杂的高维样本时,随机森林模型对于以Logistic为代表的传统的回归模型具有一定的优越性。但当处理变量间关系更为简单明晰的样本时,使用这类集成学习方法反而会影响模型的解释力,这时经典的回归方法仍有用武之地。而本次处理的数据,无疑是属于前者的。一种可能的思路是,根据随机森林的输出结果,对变量间的函数关系做假定,在此基础上进一步使用Logistic回归方法做拟合,使得模型兼具预测的准确性与经济上的解释力,这就留待在日后的数据挖掘实战中检验进行了。
在红酒质量品鉴中,酒精浓度(alcohol)和固定酸度(fixed acidity)对红酒的质量呈正向的影响,因为这两个变量的程度决定了一款酒的风味是否浓郁;而挥发酸度(volatile acidity)对红酒的质量呈负向的影响,因为挥发酸度过高会导致红酒产生口感不佳的醋酸味儿。

本研究的不足之处有以下几方面。首先本研究对红酒的质量研究有限,目前只对质量做了二分类处理;还可以尝试对质量做三分类,或者直接将其视为定序变量进行研究,并对比不同处理结果下的结果,以保证研究的稳健性。其次数据集本身考虑的解释变量个数有限,还可以纳入更多地解释变量(比如红酒的存储年份和存储方式等)来对质量进行研究。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值