问题陈述 在世界零售业发展史中,超级市场被称为继百货商店之后的第二次零售革命。在这个零售业的微利时代,如何分得一份羹是超市经营者研究重要课题。超市商品结构问题自然成为重中之重。对超市商品结构如何进行优化,进行综合评价,主成分分析法是一个重要的多元统计方法.本文就是应用主成分分析法对超市所经营的商品进行综合评判,用定量的方法对超市商品结构进行优化,使之在竞争中立于不败之地。
商品结构的理论研究 BigMart的数据科学家在不同城市的10家商店收集了1559种产品的2013年销售数据。此外,已经定义了每个产品和存储的某些属性。目的是建立一个预测模型,并找出每个产品在特定商店的销售。 使用这种模式,BigMart将尝试了解在增加销售中发挥关键作用的产品和商店的属性。 数据 我们有训练集(8523)和测试(5681)数据集,训练集数据集具有输入和输出变量。您需要预测测试数据集的销售额。 变量说明 Item_Identifier唯一产品ID Item_Weight产品重量 Item_Fat_Content产品是否为低脂肪 Item_Visibility分配给特定产品的商店中所有产品的 百分比 Item_Type产品所属的类别 Item_MRP产品的最大零售价(定价) Outlet_Identifier唯一存储ID Outlet_Establishment_Year商店的建立年份 Outlet_Size根据覆盖的地面面积的商店的大小 Outlet_Location_Type商店所在的城市类型 Outlet_Type商店是只是一个杂货店或某种超市 Item_Outlet_Sales特定存储中的产品的销售。这是要预测的结果变量。 介绍 什么是主成分分析法主成分分析也称主分量分析,旨在利用降维的思想,把多指标转化为少数几个综合指标。 在统计学中,主成分分析(principal components analysis,PCA)是一种简化数据集的技术。它是一个线性变换。这个变换把数据变换到一个新的坐标系统中,使得任何数据投影的第一大方差在第一个坐标(称为第一主成分)上,第二大方差在第二个坐标(第二主成分)上,依次类推。主成分分析经常用减少数据集的维数,同时保持数据集的对方差贡献最大的特征。这是通过保留低阶主成分,忽略高阶主成分做到的。这样低阶成分往往能够保留住数据的最重要方面。但是,这也不是一定的,要视具体应用而定。 主成分分析的基本思想在实证问题研究中,为了全面、系统地分析问题,我们必须考虑众多影响因素。这些涉及的因素一般称为指标,在多元统计分析中也称为变量。因为每个变量都在不同程度上反映了所研究问题的某些信息,并且指标之间彼此有一定的相关性,因而所得的统计数据反映的信息在一定程度上有重叠。在用统计方法研究多变量问题时,变量太多会增加计算量和增加分析问题的复杂性,人们希望在进行定量分析的过程中,涉及的变量较少,得到的信息量较多。主成分分析正是适应这一要求产生的,是解决这类题的理想工具。 同样,在科普效果评估的过程中也存在着这样的问题。科普效果是很难具体量化的。在实际评估工作中,我们常常会选用几个有代表性的综合指标,采用打分的方法来进行评估,故综合指标的选取是个重点和难点。如上所述,主成分分析法正是解决这一问题的理想工具。因为评估所涉及的众多变量之间既然有一定的相关性,就必然存在着起支配作用的因素。根据这一点,通过对原始变量相关矩阵内部结构 的关系研究,找出影响科普效果某一要素的几个综合指标,使综合指标为原来变量的线性拟合。这样,综合指标不仅保留了原始变量的主要信息,且彼此间不相关,又比原始变量具有某些更优越的性质,就使我们在研究复杂的科普效果评估问题时,容易抓住主要矛盾。 上述想法可进一步概述为:设某科普效果评估要素涉及个指标,这指标构成的维随机向量为。对作正交变换,令其中为正交阵的各分量是不相关的,使得的各分量在某个评估要素中的作用容易解释,这就使得我们有可能从主分量中选择主要成分,削除对这一要素影响微弱的部分,通过对主分量的重点分析,达到对原始变量进行分析的目的。各分量是原始变量线性组合,不同的分量表示原始变量之间不同的影响关系。由于这些基本关系很可能与特定的作用过程相联系,主成分分析使我们能从错综复杂的科普评估要素的众多指标中,找出一些主要成分,以便有效地利用大量统计数据,进行科普效果评估分析,使我们在研究科普效果评估问题中,可能得到深层次的一些启发,把科普效果评估研究引向深入。 例如,在对科普产品开发和利用这一要素的评估中,涉及科普创作人数百万人、科 普作品发行量百万人、科普产业化(科普示范基地数百万人)等多项指标。经过主成分分析计算,最后确定个或个主成分作为综合评价科普产品利用和开发的综合指标,变量数减少,并达到一定的可信度,就容易进行科普效果的评估。 主成分分析法的基本原理主成分分析法是一种降维的统计方法,它借助于一个正交变换,将其分量相关的原随机向量转化成其分量不相关的新随机向量,这在代数上表现为将原随机向量的协方差阵变换成对角形阵,在几何上表现为将原坐标系变换成新的正交坐标系,使之指向样本点散布最开的p 个正交方向,然后对多维变量系统进行降维处理,使之能以一个较高的精度转换成低维变量系统,再通过构造适当的价值函数,进一步把低维系统转化成一维系统。 主成分分析的原理是设法将原来变量重新组合成一组新的相互无关的几个综合变量,同时根据实际需要从中可以取出几个较少的总和变量尽可能多地反映原来变量的信息的统计方法叫做主成分分析或称主分量分析,也是数学上处理降维的一种方法。主成分分析是设法将原来众多具有一定相关性(比如P个指标),重新组合成一组新的互相无关的综合指标来代替原来的指标。通常数学上的处理就是将原来P个指标作线性组合,作为新的综合指标。最经典的做法就是用F1(选取的第一个线性组合,即第一个综合指标)的方差来表达,即Va(rF1)越大,表示F1包含的信息越多。因此在所有的线性组合中选取的F1应该是方差最大的,故称F1为第一主成分。如果第一主成分不足以代表原来P个指标的信息,再考虑选取F2即选第二个线性组合,为了有效地反映原来信息,F1已有的信息就不需要再出现再F2中,用数学语言表达就是要求Cov(F1,F2)=0,则称F2为第二主成分,依此类推可以构造出第三、第四,……,第P个主成分。 主成分分析的主要作用概括起来说,主成分分析主要由以下几个方面的作用。 1.主成分分析能降低所研究的数据空间的维数。即用研究m维的Y空间代替p维的X空间(m<p),而低维的Y空间代替 高维的x空间所损失的信息很少。即:使只有一个主成分Yl(即 m=1)时,这个Yl仍是使用全部X变量(p个)得到的。例如要计算Yl的均值也得使用全部x的均值。在所选的前m个主成分中,如果某个Xi的系数全部近似于零的话,就可以把这个Xi删除,这也是一种删除多余变量的方法。 2.有时可通过因子负荷aij的结论,弄清X变量间的某些关系。 3.多维数据的一种图形表示方法。我们知道当维数大于3时便不能画出几何图形,多元统计研究的问题大都多于3个变量。要把研究的问题用图形表示出来是不可能的。然而,经过主成分分析后,我们可以选取前两个主成分或其中某两个主成分,根据主成分的得分,画出n个样品在二维平面上的分布况,由图形可直观地看出各样品在主分量中的地位,进而还可以对样本进行分类处理,可以由图形发现远离大多数样本点的离群点。 4.由主成分分析法构造回归模型。即把各主成分作为新自变量代替原来自变量x做回归分析。 5.用主成分分析筛选回归变量。回归变量的选择有着重的实际意义,为了使模型本身易于做结构分析、控制和预报,好从原始变量所构成的子集合中选择最佳变量,构成最佳变量集合。用主成分分析筛选变量,可以用较少的计算量来选择量,获得选择最佳变量子集合的效果。 主成分分析法的计算步骤1、原始指标数据的标准化采集p 维随机向量x = (x1,X2,...,Xp)T)n 个样品xi = (xi1,xi2,...,xip)T ,i=1,2,…,n, n>p,构造样本阵,对样本阵元进行如下标准化变换: 其中 2、对标准化阵Z 求相关系数矩阵 其中, 3、解样本相关矩阵R 的特征方程 按 4、将标准化后的指标变量转换为主成分 U1称为第一主成分,U2 称为第二主成分,…,Up 称为第p 主成分。 5 、对m 个主成分进行综合评价 对m 个主成分进行加权求和,即得最终评价值,权数为每个主成分的方差贡献率。 主成分分析法优缺点优点: ①可消除评估指标之间的相关影响。因为主成分分析法在对原始数据指标变量进行变换后形成了彼此相互独立的主成分,而且实践证明指标间相关程度越高,主成分分析效果越好。 ②可减少指标选择的工作量,对于其他评估方法,由于难以消除评估指标间的相关影响,所以选择指标时要花费不少精力,而主成分分析法由于可以消除这种相关影响,所以在指标选择上相对容易些。 ③主成分分析中各主成分是按方差大小依次排列顺序的,在分析问题时,可以舍弃一部分主成分,只取前面方差较大的几个主成分来代表原变量,从而减少了计算工作量。用主成分分析法作综合评估时,由于选择的原则是累计贡献率≥85%,不至于因为节省了工作量却把关键指标漏掉而影响评估结果。 缺点: ①在主成分分析中,我们首先应保证所提取的前几个主成分的累计贡献率达到一个较高的水平(即变量降维后的信息量须保持在一个较高水平上),其次对这些被提取的主成分必须都能够给出符合实际背景和意义的解释(否则主成分将空有信息量而无实际含义)。 ②主成分的解释其含义一般多少带有点模糊性,不像原始变量的含义那么清楚、确切,这是变量降维过程中不得不付出的代价。因此,提取的主成分个数m通常应明显小于原始变量个数p(除非p本身较小),否则维数降低的“利”可能抵不过主成分含义不如原始变量清楚的“弊”。 ③当主成分的因子负荷的符号有正有负时,综合评价函数意义就不明确。 PCA模型实现
需要选择多少主要主成分? 我可以深入理论,但最好是实际回答这些问题。 PCA只能应用于数值数据。 因此,如果数据具有分类变量,则它们必须转换为数值。 此外, 在实施此技术之前 完成基本数据清理。 完成初始数据加载和清洁步骤: 目录路径 设置工作目录
读取训练和测试文件 train <- read.csv("Train_UWu5bXk.csv")
删除从属和标识符变量 my_data <- subset(combi, select = -c(Item_Outlet_Sales, Item_Identifier, Outlet_Identifier)) 查看是否所有变量是数值变量
创建一个伪变量 new_my_data <- dummy.data.frame(my_data, names = c("Item_Fat_Content","Item_Type",
分割新数据 基本R函数prcomp()用于执行PCA。 默认情况下,它使变量标准化,使平均值等于零。 我们将变量归一化为标准偏差等于1。 主成分分析 prcomp()函数产生5个有用的度量: 1.中心和尺度是指在实施PCA之前用于归一化的变量,输出相应平均值和标准偏差 输出变量的平均值 旋转度量提供主成分加载。 旋转矩阵的每一列包含主成分加载向量。 这返回44主要主成分 。 在数据集中,主分量负载的最大数目是(n-1,p)的最小值。 让我们来看看前4个主成分和前5行。 为了计算主成分得分向量,我们不需要将负载乘以数据。因此 ,矩阵x具有8523×44维度的主分量分数向量。 [1] 8523 44 让我们绘制生成的主成分。
我们推断比第一主成分对应于Outlet_TypeSupermarket的度量Outlet_Establishment_Year 2007.类似地,可以说第二成分对应于Outlet_Location_TypeTier1,Outlet_Sizeother的度量。 要精确测量主成分中的变量,您应该再次查看旋转矩阵 。 因此第一主成分对应,超市的类型和建立年份,第二个主成分对应超市的地点和规模。 prcomp()函数还提供计算每个主成分的标准偏差的功能。 sdev是指主成分的标准偏差。 计算每个主成分的标准偏差 std_dev <- prin_comp$sdev pr_var <- std_dev^2 pr_var[1:10] [1] 4.564631 3.219279 2.744497 2.535883 2.190449 2.021640 1.935010 我们的目的是找到解释最大方差的成分。 这是因为,我们希望使用这些主成分保留尽可能多的信息。 因此,解释的方差越高,那些主成分中包含的信息就越高。 为了计算由每个分量解释的方差的比例,我们简单地将方差除以总方差的总和。 方差比例解释 prop_varex <- pr_var/sum(pr_var) [1] 0.10374160 0.07316543 0.06237493 0.05763369 0.04978294 0.04594636 这表明第一主成分解释了10.3%的方差。 第二部分解释7.3%的差异。 第三部分解释6.2%的差异,那么,我们决定应该为建模阶段选择多少个主成分 查看scree图。 scree图用于访问主成分或因子,这解释了数据中的大部分方差。 它按降序表示值。 碎石图
scree图主成分分析 上图显示,约30个主成分解释了数据集中约98.4%的方差。 换句话说,使用PCA,我们将44个预测变量减少到30个,而不解释所解释的方差。 这是PCA让我们通过绘制累积方差图做一个确认检查。 这将给我们一个清楚的主成分数量的图片。 累积灰度图
该图显示30个分量导致方差接近?98%。因此,在这种情况下,我们将选择主成分数量为30 [PC1到PC30],然后进入建模阶段。这完成了对训练集数据实现PCA的步骤。对于建模,我们将使用这30个分量作为预测变量,并按照正常程序。 PCA主成分的预测建模 在计算训练集上的主成分后,现在让我们了解使用这些主成分预测测试数据的过程。就像我们在训练集上获得PCA主成分一样,我们将在测试集上获得另一组主成分。最后,我们训练模型。 但是,几个重要点: 我们不应该将训练集和测试集合在一起来获得整个数据的PCA主成分。因为,这将违反概括的整个假设,因为测试数据将被“泄漏”到训练集中。换句话说,测试数据集将不再保持“未知”。最终,这将减弱模型的泛化能力。 我们不应该分别对测试和训练数据集执行PCA。因为,来自训练集和测试PCA的合成向量将具有不同的方向(由于不等方差)。因此,我们将最终比较在不同轴上的数据。因此,来自训练集和测试数据的结果矢量应该具有相同的轴。 因此 我们应该对训练集进行与测试集完全相同的转换,包括中心和缩放特征。让我们在R: 添加包含主成分的训练集
rpart.model <- rpart(Item_Outlet_Sales ~ .,data = train.data, method = "anova") n= 8523 测试数据进行主成分分析
得到预测结果(部分) |
|
来自: 昵称36427088 > 《待分类》