翻译了O’Reilly的《2016数据科学从业者薪酬报告》,生肉链接http://www.oreilly.com/data/free/2016-data-science-salary-survey.csp?intcmp=il-data-free-lp-lgen_free_reports_page
头一回做翻译,翻译得生硬请见谅。
翻译它的意义不仅在于捡回些英语感,同时这是一篇很严谨的数据分析报告,虽然数据量不多,但它的分析过程很值得参考,包括考虑到了很多细节,对数据分析初学者可以说是教科书式的例子。毕竟这是最有权威的编程类书籍的出版商做的报告。当然,翻译的最大动力是它告诉我最关心的问题:其他国家的数据科学从业者都在用什么工具,薪资的增长跟什么有关?报告给出了平时想不到的答案。
也顺便分享O’Reilly提供的数据类免费书籍资源http://www.oreilly.com/data/free/
2016年数据从业者薪资调查
之前版本的O’Reilly数据从业者薪资调查,我们对983个数据领域(涵盖各个行业)的受访者录入的问卷进行了分析——(包括45个国家及美国45个州)。通过我们64问的调查,我们探索了数据科学家、分析师和工程师使用的工具,他们负责的项目,当然,还有他们的薪资。
主要发现包括:
-Python和Spark是其中对薪资贡献最大的工具。
-会编程的里边,编程更多的人赚得越多。
-SQL、Excel、R和Python是使用最普遍的工具。
-参加会议更多的人,赚得越多。
-对同一工种,女性赚得比男性少。
-地域GDP导致薪资差异(不是直接估计,而是作为额外的输入模型)
-分水岭:你是使用Excel、SQL和非开源工具的人还是更多使用开源工具和花更多时间编程的人。
-R在这个分水岭两边都占——不会编程的人和经常使用开源工具的人都会用到R。
-在会编程的人里:跟经验充足的数据科学家/工程师比起来,一些年轻的、常使用Python的数据科学家/分析师倾向于使用更多工具并且赚得最多。
(后边有个附件B可以预测自己的薪资,但别忘了把结果开方)
简介
一年又过去了,我们从数据科学家、工程师和数据领域的其他人收集了调查数据,包含他们的技能、工具和薪资。在这四年的数据里,很多关键趋势值得注意:中位数薪资,热门工具和工具的使用。对于这年度分析,我们收集了2015年9月到2016年6月总共983份数据。
在这份报告里,我们提供了不同的分析方法,尤其是聚类分析。为了提高准确性我们调整了线性模型,使用平方根变换,参考了经济地域的公共数据。调查本身也包含了新问题:主要关注到具体数据相关任务和薪资的变化。
薪资概览
样本的薪资中位数为年薪$87K。比去年稍低(去年是$91K),跟人口统计数据的变化有关:今年统计到的数据中,来自非美国的人和年龄小于30的人比去年更高。3/5的样本来自美国,而这部分被调查者的薪资中位数是$106k。
了解四分位数范围
在调查问题里,中间收入是区分其两边的人的薪资的最好的数字,但看不出薪资分布和变化。所以中位数之外,我们还展示了四分位数(IQR)——描绘中间50%的薪水的两个数。这个范围不是置信区间,也不是基于标准偏差。
举个例子,美国的受访者的薪资范围是$80K$138K之间,意味着有四分之一的美国受访者低于$80K且另四分之一高于$138K。可能最能体现IQR的就是去比较美国东北部和中西部:东北部有比较高的薪资中位数($105K$98K)但四分之三133K东北和138中西部,预示着着中西部地区的薪资更多样化,且在高收入人群里中西部的人比东北区的人普遍更高。
薪资是如何改变的
我们也搜集了过去三年薪资变化的数据。大约一半的抽样有20%的变化,12%的样本出现薪资翻倍。我们试图对薪资变化因素建立模型,但模型表现不好R2值只有0.221。薪资回归模型的很多相似特征都预测了薪资的变化:Spark/Unix,经常开会,经常编程,和建立原型模型都预示着较高的薪资增长,而使用Excel,性别差距和在一家老公司工作则预示着较低的薪资增长。地理因素对薪资变化也有正面影响,意味着在经济强的地方,薪资不会停滞不前。
评估你的薪资
要构建自己的薪资模型,请使用附件B的模型,请自行加上适用于你的系数。所有内容都加上之后,对结果进行开方以进行最终评估(注意,系数不是以美元计)某个系数对最终薪资预测的贡献依赖于其他系数。薪资越高,对每一项系数的贡献越大。
例如,在高薪国家,初级数据科学家和资深架构师的薪资差异会比在低薪国家的大。
影响薪资的因素:回归模型
附件B包含了我们的整个回归模型。对于今年的报告,我们已经基于2015年的报告中呈现的基础、简约现行模型做了重要改变。我们把:1、额外的地理数据(国家的GDP),2、平方根转换涵盖在内。转换对线性模型增加了一步:我们增加了模型系数,然后对结果进行了开方。这两个变化使得薪资的预测有了显著提高。
我们的模型解释了样本工资中的四分之三的差异(R2值为0.747),几乎一半的薪资差异是源于地理和经验。给出了不能在调查中捕获的重要因素 — —例如,我们不衡量能力或评估受访者的工作产出的质量 — — 这并不奇怪,大量的差异无法解释。
地理位置的影响
地理位置对薪资有很大影响,但由于样本大小的问题,这里没有完全捕获。比如说,如果一个国家由只有一个或两个受访者代表,给予这个国家自身的系数又不够。因此,我们用地区系数(如:亚洲、东欧),然而要记住在一个区域内经济差异是巨大的,从而影响着模型的准确性。
为了解决这个问题,我们使用了公开、可用的国家和美国各州的人均GDP记录。虽然GDP自身不转化为薪资,但它能作为地理薪资变化的替代品。要注意我们用的是州及国家层面的人均GDP,因此对小的经济体,模型更像是通过GDP数值产生了一个不准确的预测。
在GDP纳入模型之前,两个例外要考虑到。华盛顿州的人均GDP是181k,比隔壁的维吉尼亚州(57K)和马里兰州(60K)大得多。很多在马里兰和维吉尼亚州的数据科学的工作其实是在华盛顿州的市区,调查数据表明这三个地方的数据科学薪资彼此并没有从根本上不同。真的用181K回高估华盛顿州的薪资,因此华盛顿州的人均GDP用马里兰州的60K代替。另一个例外是加利福尼亚州,在我们进行的薪资调查中,加利福尼亚较其他州或国家有最高的中位数薪资。虽然它的人均GDP(62K)排得并不高(有九个州比它高,在抽样里两个国家也比它高——瑞士和挪威)。这种异常是源于它的人均GDP主要依据旧金山海湾,那里的人均GDP是80K-90K。作为主要的技术中心,湾区在抽样里所占比例过高,意味着加利福尼亚地理因素被推高,因此适当调整后是70K。
性别因素
男女薪资中位数相差了10K,其他变量不变的情况下——同样的岗位、同样的能力——女性赚得比男性少。
年龄、经验和行业
经验和年龄是影响薪资的两个重要因素。每增加一年经验,经验系数(+3.8)可以转换成平均2K—2.5K的薪资增长。对于年龄来说,20出头和近30岁之间跳跃最大,但年龄在31-65的差异和65岁以上的也显著。
我们还让受访者对他们的议价能力给予1-5分的评分,那些有更高的自我评价的人有更高的薪水。两个数据科学家的薪资差异,议价评估写1和写5的,预期相差10K到15K。
最后,工作-生活平衡方面,一旦你一周的工作时长超过60,薪资预估会减少。
你怎么花时间?
任务的重要性
受访者工作的类型通过四种问题来获取:
-参与具体项目
-头衔
-会议时长
-编程时长
每一项任务里,受访者有三个选项:不参与,少量参与或主导。对薪资影响最大的任务是:开发模型。基于我们的模型,主导模型开发任务的受访者有平均7.4K的薪资提升。甚至少量接触到模型开发的人都有+4.4的系数。
与头衔相关的内容
当任务和职称都被包含在训练集里,职称常因能更好地预测薪资而“获胜”。要注意了,职称本身并不能准确描述人们做的事。比如说,都叫“架构师”,但70%的架构师主导“大型软件项目计划”——理论上架构师的含义。由于职称不能很好地预测薪资,排除了这种不一致,比如“架构师”还真就是是资历的象征了。有“高层领导”职称的受访者——大多数是小公司的C级高管、董事或副总裁——有高达+20.2的系数。负责跟决策相关的人对薪资也有正面影响,即:“组织团队项目”(+9.7),识别业务与分析需要解决的问题(+1.5/+6.7),与公司外部人员沟通(+5.4)。
花在会议的时间
开会越多,赚得越多。这个变量我们常用来做提醒:模型不能保证显著变量和薪资的关系是明显的:如果某人本来的日程就安排了很多会议(在不改变其他工作时间的情况下)开会时长就不太会对薪资有正面影响,或者增长很少。(译者注:我理解这里是说你本来的工作就是有很多会要开的,开长开短其实不影响,而如果开会本来不在你的日程里,积极去组织会议这个举动会影响你的薪资)
编程角色
薪资中位数最高的在编程时间为4-8小时/周的人群里;最低的都在从来不编程的人里。值得注意的是,只有8%的受访者说他们从来不写代码,明显比去年低了20%。编程显然已经是数据科学家的一部分了。
工具选择的影响
最常用工具
样本里最常用的两个工具是Excel和SQL,69%都在用,紧接着是R(57%)和Python(54%)。跟去年比较,Excel使用率提高了(去年是59%),而R也是(去年是52%),而SQL和Python只是比去年稍稍增加一点。
超过90%的样本显示他们多多少少写代码,而80%的人使用Python,R和Java之中的至少一个,而只有8%的人都用。最普遍使用的工具(除了操作系统)都作为原始系数被包含在模型训练数据里;这其中,Python,JavaScript和Excel有显著系数:分别是+4.6,-2.2和-7.4。(接下来这句是描述聚类过程,不冒险翻译了,感兴趣请看原文)
有最大系数的簇以Spark和Unix为中心,每个工具贡献了+3.9.Spark的使用者占20%,比去年保守增加3%,且它被样本中高收入个体持续使用。
相对于大型开源工具Spark/Unix, 第二个最高的簇系数(+2.4)分给了专有软件:Tableau,Teradata,Netezza,Microstrategy, Aster Data, 和Jaspersoft。去年的报告里,Teradata也有正面系数工具的特征。其他三个有明显系数的簇主要包括开源数据工具。
哪些工具添加到你的堆栈
虽然解释模型能很好的预测我们在使用某种工具下能挣多少钱,但这不能指导我们该去学那个工具。真正的问题是工具是否解决了你需要做的事。如果你从未分析超过你本地电脑存储量的数据,你可能什么好处都得不到——比薪资增长带来的好处还少——例如使用分布式系统。
薪资和工具序列
下列的工具序列里,一个序列的下一个工具都被受访者频繁用到,且他们已经使用了之前的工具,而这些序列的每一步都是最好的薪资差异。
如果你知道一个序列的第一个工具,你最好考虑一下学学第二个,等等。
工具和任务的关系:受访者群组
数据专家不是一个同质群体,在这个空间有各种类型的角色。基于职称去分级——虽然这比较容易、也是更普遍——但基于工具和任务进行聚类是定义调查中受访者主要类别的更严格的方式。每个受访者基于他们的工具和任务被分到四个聚类中的一个。
这四类不是平均分的:它们分别占调查样本的29%, 31%, 23%, and 17%。它们的描述如下:
第一类:较少使用工具的分析师和数据科学家,以及程序员和开发者但又不是数据科学家的;这是个杂类。
第二类:使用很多微软工具的分析师和工程师。
第三类:编码分析师和数据科学家,Pythoner。
第四类:使用各种不同工具,且大部分是开源工具的数据科学家和架构师。
工具和任务百分比的选择在下面这部分,工具/任务百分比的全部资料在附录A中。
操作系统
在之前的数据科学薪资调查报告中,一个就工具来说比较明显的区分是:开源工具(主要是非图形界面工具)和专有软件(主要由微软公司开发)。开源群组比较普遍使用Linux,Python,Spark,Hadoop和Java,而微软或非开源工具群组常用Windows,Excel,Visual Basic和微软SQL Server。同样的分类体现在当我们根据操作系统的使用对受访者进行分类时,结果比较明显。
一些任务也加强了前两个和后两个的差别。以下的百分数呈现了说明了主要担任这些任务的受访者:
所有以上这些任务,最高的百分比都被群组3和4占有,而且百分比数比群组1和2高得多。
Python,Matplotlib,Scikit-Learn
另一套工具,能把群组1、2和3、4分开,则是Python及其两个热门套件——Matplotlib(用于可视化)和Scikit-Learn(用于机器学习):
群组3和4的受访者用Python比1和2的多得多,当我们看着两个套件时,相对差异更大:群组3和4的受访者使用这两个套件评论是群组1和2的8-10倍。群组3和4也有差异,虽然很小:群组3使用Python的比例很高,而群组4里很大一部分不适用Python和这些套件。结果这些都是群组3使用的唯一的使用频率最高的工具。群组3和4比1和2使用频率更高的其他的工具,群组4也比群组3使用频率更高。
如下大多数的工具,群组1有着第二高的使用率,但明显比群组2低。群组1总的来说普遍倾向于使用更少的工具:少于平均的8个,相对于其他三个群组的分别10,13,21来说。
无需编程的任务
也有些出现在群组2的受访者明显比别的群组频繁的任务:
前两个任务是起到分析的作用,对于群组3和4也相当普遍。重要的是,这些任务都不需要依靠编程(至少不像之前的那四个任务跟群组3和4关系这么大)。群组1的低百分比揭示了一些其自然属性:大多数的抽样受访者之前的工作不是数据科学家、分析师或管理者也被分在组1。这意味着程序员不在这组里(比如Java程序员只用很少的数据工具)。群组1也有分析师和数据科学家,但是他们倾向于使用小的工具套件,不参加数据任务和不适用数据工具的混合特征使群组1的人汇集一起。
上面列的一些专有工具被群组4使用的跟群组1一样多。尤其是SQL Server。换句话说,这开始违背之前群组1/2和3/4分裂的局面。一些其他的工具和任务使这种违背更明显,或者只是简单的在这些群组里不显示出大的使用差异:
Tableau, Oracle, Teradata, and Oracle BI 使用率在群组2和4比1和3更高。同样SQL也是,但是想Excel和R,很例外地被所有群组广泛使用。事实上,SQL和Excel是被每个群组超过一半人使用的工具(或任务)。R被群组1使用得并不多,但在其他三组使用率几乎一样:67%-69%。数据清洗和基本的探索性分析对群组2,3,4几乎一样高,而对群组1则低得多。这些任务或工具跨国群组间的边界,也似乎没多少相关性、工具/任务的差异更显著。
管理和业务战略任务
可能群组2和4之间的联系在于管理/业务战略任务。是说2/4的受访者更倾向于更资深,在某种程度上,事实是这样的。在经验年限层面上1,2,4都几乎一样——平均8-9年,然而对于群组3,则小多了——平均4.4年;类似的差异存在年龄上。
尽管组3代表了最没经验的一队,但它不是收入最低的;最低的是组1,薪资中位数是72K。组3的84K依然比组1的88K少,但组4比其他组高多了,是112K。组4比其他组用的工具多,并且他们常用的工具是回归模型里有正面系数的那些。
接下来要考虑的:
我们用来预测薪资的回归模型描述了各个变量的关系,但并不是关系的来源或者直接因素。比如说,有人可能在一个预算比较宽松的公司上班,他能得到高薪及昂贵的工具,但这不意味着他们的高薪是由他们的工具驱使的。
当然,薪资也没那么简单。当工具变成行业标准,雇佣者开始对它们寄予期望,然后工具会使你错过好的工作,当你遗漏了一些关键工具的时候:毕竟跟新技术保持一致性取决于你个人的兴趣。如果你申请一份工作,而该公司明确要求求职者要会用某个具体工具,那么这个工具就会被获得高薪的人使用。那你就知道他们不会付更多钱请个别人来代替。
这情况不只是对雇员来说。商业领袖选择技术的时候不仅考虑软件的花费,还考虑雇员的花费。我们希望本报告的信息是有助于为此类决定制定的估计。
如果你使用这份报告,请考虑填写2017年的调查问卷。每一年我们都会基于上一年的报告建立问卷,且大多数的改进是来自样本量。这是个双向配合的工作,你回馈更多,我们研究数据科学领域就更深。谢谢!
附件B:回归模型
+60.0 常数,每个人都从这个数开始
+2.6 乘以人均GDP,以千计(比如:爱荷华州,2.6*52.8=137.28)
-7.8 性别=女
+3.8 每年的工作经验
+7.4 每个议价能力“点”
+17.2 年龄“26-30”
+22.5 年龄31-35
+24.8 年龄36-65
+3.9 学术专业是数学、统计学或物理
12.2 博士
-9.7 现在是个学生(全职或兼职的)
+2.2 行业=软件(包括软件服务类,移动互联网,互联网)
+3.0 行业=银行/金融
-2.0 行业=广告/市场/公关
-24.5 行业=教育
-3.9 行业=计算机/硬件
+7.1 行业=搜索/社交网络
+3.6 公司规模:501-10000人
+7.7 公司规模:10000人以上
-4.3公司年龄:超过十年
-8.2 编程时间:1-3小时/周
-3.0 编程时间:4-20小时/周
-0.5 编程时间:超过20小时/周
+1.0 会议时间:1-3小时/周
+9.2 会议时间:4-8小时/周
+20.6 会议时间:9-20小时/周
+21.1 会议时间:超过20小时/周
+1.0 一周工作:46-60小时
-2.4 一周工作:超过60小时
+20.2 职称:高层领导
-0.9 职称:工程师/开发者/程序员
+3.1 职称:经历
-1.0职称:研究员
+14.3 职称:架构师
+4.6 职称:自身工程师/开发者
+4.6 ETL(少量参与)
-1.9 ETL (主导)
-4.9 设置/维护数据平台(少量参与)
+4.4 开发原型模型(少量参与)
+12.1开发原型模型(主导)
-1.3 开发硬件或者项目的工作是需要专业的硬件知识的(主要)
+9.7 组织和知道团队项目的(主导)
+1.5 运用分析识别待解决的业务问题(少量)
+6.7 运用分析识别待解决的业务问题(少量)
+5.4 跟公司之外的人沟通(主要)
+3.2 大多数的工作要用到云计算
+4.6 Python
-2.2 JavaScript
-7.4 Excel
+1.7 MySQL, PostgreSQL, SQLite, Redshift,Vertica, Redis, Ruby (达到四个的)
+3.9 Spark, Unix, Spark MlLib, ElasticSearch, Scala, H2O, EMC/Greenplum, Mahout(达到五个的)
+1.5 Hive, Apache Hadoop, Cloudera, Hortonworks, Hbase, Pig, Impala(达到五个的)
+2.4 Tableau, Teradata, Netezza (IBM),Microstrategy, Aster Data (Teradata), Jaspersoft(达到3个的)
+1.3 MongoDB, Kafka, Cassandra, Zookeeper, Storm, JavaScript InfoVis Toolkit, Go,Couchbase(达到四个的)