• 日常数据分析的主要内容仍是结构化计算


        日常业务中会出现各种各样的数据分析问题,但究其本质,其主要内容仍然是结构化数据的计算。比如:

    •  指定时间段,计算各营业网点的月销售额比上期和同期比。

             实现思路:对销售数据按时间段过滤,再按照营业网点、年、月进行三级分组汇总,最后进行跨行组的有序计算。

    • 找出收盘价连续增长超过10天的股票。

             实现思路:将日交易数据按照股票分组,组内按照日期排序,计算出股价的增长额,计算出连续正增长的天数,过滤出连续正增长超过10天的股票。

    • 将合同信息、付款信息等不同来源的数据关联到项目付款进度中,并找到逾期未付款的项目。

             实现思路:首先进行异构数据源之间的关联计算,之后进行分组汇总,最后进行过滤。

         可以看到,这些日常数据分析问题大都可以分解为结构化数据的过滤、分组、汇总、排序、排名、关联等算法。

         当然,偶尔也会出现模型或预测类的数据分析问题,比如:找出哪些商品之间存在较高的相关度,预测哪只股票将会上涨等等。这类算法需要的数学知识太多,日常工作人员一般不会掌握。这种分析在数据分析事务中非常重要,但并不是日常数据分析的主要内容。

          日常数据分析的主要内容仍是结构化数据计算,因此很多工具都支持此类计算,比如:R语言、Python、SQL、集算器等。

          R语言提供有dataframe数据类型,支持结构化数据计算。但R语言的设计初衷是进行科学数据的统计分析,重点在于矩阵和向量的计算,因此在结构化数据计算方面缺乏专业性。

          事实上,dataframe只是R语言新增的功能,模型预测类的算法才是R语言的重点,比如:回归分析regression analysis、方差分析ANOVA analysis、一致性评估Agreement evaluation、贝努利分布Bernoulli distribution等等。这些算法在日常数据分析中很少用到。

          Python有第三方函数库pandas,支持结构化数据的计算。但Pandas的设计目标仍然是科学数据的统计分析,而不是结构化数据的计算,因此在这方面并不专业。和R语言类似,Pandas的功能也是围绕模型和预测展开的,在日常数据分析中很少用到。

          可以看到,支持结构化数据计算的工具虽然不少,但专业的并不多,算来算去,还是老牌计算语言SQL更专业。

          SQL的设计目标是纯粹的结构化数据计算,专业性更强,而且应用面非常广。

          但是对于日常分析来讲,SQL也存在不足之处,比较突出的是:应用环境复杂、不擅长有序计算。SQL的安装部署、维护管理非常复杂。SQL数据集本身缺乏序号,因此在有序计算方面存在天生的短板,比如同期比、比上期、相对区间取数、分组中的排名、分组中取前后几名等等这些是日常数据分析中常见的问题,开头提到的几个例子也大多和有序计算相关,用SQL可以解决此类问题,但难度较大。

          集算器的设计目标是纯粹的结构化数据计算,这一点和SQL类似。

          相对来讲,集算器的应用环境比较简单,安装部署毫无难度。集算器支持从数据库取数,也可以直接读取Txt、日志、Excel中的结构化数据。另外,集算器的序表天生具有序号,器可以轻松上面提到的有序计算。不过集算器在外存计算和内存计算的语法不 ,需要更新另一种写法,不如SQL语法的一致性好。

  • 相关阅读:
    JS使用及技巧.
    文件上传
    闭包
    文件拖拽上传
    zTree简单使用
    call apply bind
    jquery中操作jQuery对象的eq和get的差别与用法--操作前台显示之利器
    Cocos2d-x 文件路径下文件的读写
    Linux程序设计学习笔记----多线程编程基础概念与基本操作
    不easy查找Bug
  • 原文地址:https://www.cnblogs.com/raqsoft/p/5168107.html
Copyright © 2020-2023  润新知