收录于合集
#excel18个
#商业模式3个
#聚类分析1个
#算法9个
很多人觉得自己没有编程基础,例如Python,R,是不是就与数据分析绝缘了呢?或者,没有专业化分析工具,例如SPSS,Eviews,那么是不是就拿不出一个模型支撑的数据分析报告了?其实我对新入行数据分析的小伙伴的建议一直都是强调不能好高骛远。Excel作为最简单的数据处理工具,以此上手是一个好的开始,下面这个例子就是一个强支撑。看一下一个好的数据分析用到了都有什么知识点。
背景:我们拿到49个城市人口共6个特征如下:
Percentage Black (黑人比例)
Percentage Hispanic(拉丁美洲人比例)
Percentage Asian (亚洲人比例)
Median age (年龄中位值)
Unemployment rate (失业率)
Per capita income (人均收入)
部分数据如下:
现在我们要将这49个城市进行分为4个人口统计意义上相似的类,该如何做?这里分几个步骤:
1. 因为各个特征之间的数值差异是巨大的,而聚类分析又要综合6个特征来进行相似度比较,因此,第一步是Standardize,即标准化为Z值。有统计学基础的同学应该知道标准化变换就是下面这个铁憨憨:
我们先求算术平均值和标准偏差,其中标准偏差Excel提供了一个函数STDEV(Range)可以直接求49个国家每一列特征。
%age Black | %age Hispanic | %age Asian | Median Age | Unemployment rate | Per capita income | |
Mean | 24.34694 | 14.59184 | 6.040816 | 31.87755 | 7.020408163 | 20.91837 |
Std dev | 18.11025 | 16.4721 | 11.1448 | 1.99617 | 2.688631901 | 3.334396 |
好了,接下来可以用上面的公式计算Z值。正好,Excel里有个函数STANDARDIZE提供了这个功能。
=STANDARDIZE(x, mean, standard_dev)对号入座得到新的标准化的6列。原谅我不听使唤的手:
2. 第二步就是要选定锚点了。我们要分成4类,那么就需要有4个锚点。在Excel里我们可以试值,我们随意指定4个城市作为聚类的中心点。在Cluster列随便写上1,2,3,4,即前面4个城市的编号,其它列通过VLOOKUP在上面的表格里拿到对应的值。这个表暂且称为锚点表。Vlookup其实可以看做SQL里的join, Cluster就是上面大表的index。条件就是on 锚点表.cluster=大表.index。这里的Cluster列是我们最后步骤的可变区域。
3. 第三步就是要求每一个城市和锚点表每一个锚点的squared distance(距离平方)。计算距离比较典型的就是欧氏距离了。
我们这里不用欧氏距离,而是欧式距离的平方。巧了,EXCEL还有这个公式:
SUMXMY2(array_x, array_y):顾名思义,计算两数组中对应数值之差的平方和。还是对号入座,得到新的4列:Distance^2 to 1,Distance^2 to 2,Distance^2 to 3,Distance^2 to 4。
4. 第4步算出每个城市Distance^2 to 1,Distance^2 to 2,Distance^2 to 3,Distance^2 to 4的最小值。计算最小值可以得到每个城市各个特征和哪一个锚点最相近,从而归入那一类。这里Assigned列用match(each Min_Distance, each range(Distance^2 to 1,Distance^2 to 2,Distance^2 to 3,Distance^2 to 4)公式去匹配每个城市对应的cluster。
。
5.计算Min Distance列的最小值总和。
sum_of_min_Dis^2 = 310.7033
6. 最后也是最重要的一步,借助solver来为我们遍历sum_of_min_Dis^2的最优解, 在这个例子中距离总和越小越好,因此是求最小解!进入设置,目标值即为我们的sum_of_min_Dis^2所在单元格,这里H5:H8是我们上面锚点表的cluster列那四个锚点。总共有49个城市,所以最大不超过49,最小不少于1,并且城市index必须是整数,按求解执行计算。
结果如下:
sum_of_min_Dis^2最小值165.348237671234。锚点对应的城市编号为34,25,43,24。
至此,聚类分析完成。
关于EXCEL数据分析有更多兴趣可以踢我,我会更新更多这方面的文章。:)
关于我
金融数据从业者一枚,负责数据风险策略以及数据ETL。
提供数据分析教学
1)个人非教育机构,线上教学,提供数据采集(python爬虫)- 数据预处理 (Pandas, Excel) -数据库存储(MS SQL, MYSQL)- 数据抽取(SQL读写)- 前端展示(Tableau,Qliksense, PowerBI, Excel) 全流程教学。一对一指导。
2)数据分析小白可提供Excel技术教程,囊括高阶函数,数据透视表,图表,规划求解,VBA,powerpivot 和 powertable(最新EXCEL版本高阶技能)。这是本人切切实实在职场上获得验证的实用教程,让你迅速变为EXCEL高手。
以上各项教程可只学一项,周期大概12节课,上课不讲废话,因为本人也比较忙,兴趣教学。