这一系列文章是自己对多元统计分析和统计建模知识的一些总结和思考。如果有不清楚或者错漏的地方,欢迎留言讨论,也欢迎分享统计相关的好书和文章。另外这里的内容大都是已经有的统计,数据分析,和机器学习的知识点的总结,并没有许多创新的地方,大部分并非原创,只是知识的整理和一些思考。推荐Modelling and Stochastic Analysis by VG Kulkarni。
摘抄《Statistical Models》-by A.C. Davison 书里的两段话,“Statistics concerns what can be learned from data. Applied statistics comprises a body of methods for data collection and analysis across the whole range of science, and in areas such as engineering, medicine, business, and law, -wherever variable data must be summarized, or used to test or confirm theories, or to inform decisions. Theoretical statistics underpins this by providing a framework for understanding the properties and scope of methods used in applications.
Statistical ideas may be expressed most precisely and economically in mathematical terms, but contact with data and with scientific reasoning has given statistics a distinctive outlook. Whereas mathematics is often judged by its elegance and generality, many statistical developments arise as a result of concrete questions posed by investigators and data that they hope will provide answers, and elegant and general solutions are not always available. The huge variety of such problems makes it hard to develop a single over-arching theory, but nevertheless comman strands appear. Uniting them is the idea of a statistical model. ”
统计学的特性
统计学是一种从收集的数据中获取信息的方法。
统计学可以回答下面的问题:1.需要收集什么样以及多大量的数据; 2 如何组织和总结数据; 3 如何分析数据并得出结论; 4 如何对结论进行评估;
统计学可以分成描述性(Descriptive)和推断性(Inferential)统计学。
描述性的统计学包括图表,各种描述性度量:对中心的刻画(期望、中位数、众数)变化(方差、标准差)、百分位数(percentile)
推断性的统计学方法有点估计(point estimation),区间估计(interval estimation),假设检验(hypothesis testing); 变量包括数量变量(quantitative / numerical variable),离散或者连续,类别变量( qualitative / categorical variable)以及数量变量;度量有中心度量:众数、中位数(偏态分布)、均值(对称分布中使用)以及变化度量。
统计学包括的内容
英国著名统计学家Kendall在多元统计分析一书中把统计的内容和方法概括成下面几个方面 (1) 降维问题(dimension reduction 简化数据结构) (2) 分类和判别 (classification 归类问题) (3) 变量之间的相互联系 (regression) (4) 统计推断 (inference): 包括假设检验和参数估计 (hypothesis testing and parameter estimation)
统计模型简单的例子(线性回归):
y=f(x,\theta)+\epsilon
y:因变量 ; x:自变量 ; \theta:未知参数; \epsilon:扰动函数。
其中,第一个加项是自变量对因变量的影响,反映出的是共性特征;而第二个加项反映出的是个性特征。
在统计建模中,需要求出的第一个加项的表达式,并根据分布,估计出未知参数。
传统模型的弊端在于只能用于求解简单的显示表达式,且比较复杂的函数关系无法表示出来;并且只能用于自变量和因变量可区分的情形。
统计模型的分类:
根据目的分类:
1. 聚类方法:应用于市场细分、协同推荐
2. 预测方法:回归模型、时间序列模型
3. 关联归纳方法:购物篮分析、序列分析
根据方法原理分类:
1.基于传统统计模型的推断方法: 在抽样理论的支持下,首先假定预测因素间公式化的联系,然后采用假设检验的方法来验证相应的假设是否成立,并给出相应的参数估计值。
2. 基于机器识别基数的自动化方法: 非推断性方法,没有前提假设,直接从数据集中寻找关联,后采用验证数据集对找到的关联加以验证。
统计模型的几个重要的概念:
损失函数:
损失函数:衡量模型的信息损失或是预测错误程度的函数。统计模型拟合的最终目标:损失函数最小。
对不同类型的变量,常见的损失函数有:对分类变量:错分比例,分类预测正确性,熵;对连续变量:残差所代表的信息量的综合及其所导致的损失,最小乘法中的残差平方和,离均值绝对值之和(最小一乘法)。
Note:因为因子分析和主成分分析没有目标,所以也就不存在损失函数。有监督的学习,才需要损失函数。
惩罚项:
在理想的损失函数的基础上加一个惩罚项,用于表达模型的复杂程度,以避免一味地追求精确而使得模型过于复杂。
原模型:原损失函数 = 模型精确性衡量指标;
修正为:新损失函数 = 模型精确性衡量指标 + 模型复杂度衡量指标;
可以进一步加权地修正如下:
原损失函数 = 模型精确性衡量指标 + 模型复杂度衡量指标。
正则化:
在机器学习中,正则化(regularization);在统计学领域,模型惩罚项(penalty);在数学上,范数(norm);
正则化基本作用:保证模型尽可能的简单,避免参数过多导致过拟合;约束模型特性,加入一些先验知识,例如稀疏、低秩。正则化函数一般是模型复杂度的单调递增函数,模型越复杂,代价越大。
几种常见的正则化/惩罚项/范数类型:
L0正则化:复杂度指标为模型中非零参数的个数;L1正则化:为模型中各个参数绝对值(加权)之和 ,如几何学上的曼哈顿距离(街区距离),主要用于特征选择/筛选变量,实例:Lasson回归;L2正则化 :为模型中各个参数平方(加权)之和的开方,即欧氏距离,主要用于防止过拟合,实例:岭回归;Ln正则化:为模型中各个参数n次方(加权)之和的开n次方。
统计(尤其是统计建模)、机器学习和人工智能之间有何区别
下面是摘抄自Oliver Schabenberger,SAS CTO的文章(大家可以去看原文,原文来源:https://www.linkedin.com/pulse/difference-between-statistical-modeling-machine-i-see-schabenberger?trk=prof-post),解释的比较清楚:
最近我多次被问到统计(尤其是统计建模)、机器学习和人工智能之间有何区别。其实这三者之间在目标、技术和算法方面有很多重叠的部分。引起困惑的原因不仅仅是因为这些重叠部分,也是因为我们被很多非科普文中的时髦词儿给迷惑了。
统计建模
统计建模最基本的目标是回答一个问题:哪一种概率模型可以产生我所观察到的数据?因此你必须:
从一个合理的模型群里挑出候选模型
预估未知变量(参数,Aka拟合模型到数据中)
比较拟合模型与其他备选模型
举个例子,如果你的数据需要计算,例如流失客户数或者细胞分裂数,那么泊松模型(Poisson)、负二项模型或者零膨胀模型(zero-inflated model)都可能适用。
一旦某统计模型被选定,那预估模型将用于测试假设、创建预测值以及置信测量。预估模型将成为我们解析数据的透镜。我们从未宣称选定模型就能产生数据,但是我们能观察它基于某验证推理在随机过程所获取的合理近似值。
验证推理是统计建模的一个重要部分。举例而言,要决策到底是哪一种或者哪三种医疗设备可以让病患获得最好的治疗,你也许会感兴趣使用一个模型,该模型能捕获某种数据机制来判断该病患在接受不同治疗所获得的不同结果。如果某个模型可以很好地捕获数据产生机制,那么其也可以在那些被观察数据区间内做出很好的预测,甚至可能预测出新的观察结果。
经典机器学习
经典机器学习是一种数据驱动型技术,受模式识别启动,专注于回归算法和分类算法。其潜在的随机机制通常并没有作为最首要一项关注点。当然很多机器学习技术也能通过随机模型和回归计算来定义,但是数据并不被认为是由其模型直接生成的。因此,最重要的关注点是识别到底是执行哪项特定任务的算法还是技术鉴定(或者集成方法):也就是说客户到底最好被分段于K(数据集群或聚类),还是DBSCAN,或者是决策树,或者是随机森林,又或者是SVM?
简而言之,对统计人员来说模型是第一位的,对机器学习者而言,数据是第一位的。因为机器学习的终点是数据,而不是模型。将数据分离出来去做训练集和测试集的验证技术(鉴定方法)是很重要的。一个解决方案的质量高低并不仅仅依赖p-值,而是需要证明这个解决方案在以前不可见数据中是否表现良好。将一个统计模型拟合到一个数据集,或者将一个决策树训练成一个数据集,将会需要融合一些未知值的预估值。该决策树的最佳分割点取决于从属变量的条件分布参数的预估值。
对我而言,没有什么技术被证明可以自我学习。训练才是成型某种学习的必要过程,换句话说,这意味着要获取一项新的技能技术,训练就是学习的一部分。训练深度神经网络取决于输入数据的权重和偏差,如果它学习分类,而该网络就变形成为一个分类器。
现代机器学习
机器学习系统如果不是编程去执行一个任务,而是编程去学习执行一项任务,那么这就是一个真正的学习系统,我把这叫做现代机器学习。就像经典机器学习的变体,这也是一个数据驱动型的实践。但不一样的地方是,现代机器学习不仅仅是依赖于丰富的算法技术,几乎所有的这类机器学习的应用都基于深度神经网络技术。
这个领域我们现在倾向于称它为深度学习,一种机器学习的细分,经常应用于人工智能,也就是说让机器去执行人类的任务。
数据扮演什么角色?
现在我们可以通过数据所承担的角色来区分统计建模、经典机器学习和现代机器学习。
在统计建模里面,数据引导我们去选择随机模型,来形成对不同问题概率的抽象表达,例如假设、预测和预报。
在经典机器学习里,数据驱动的是对分析技术的选择,如何最佳地执行即将任务,这是数据训练算法。
在现代机器学习里,数据驱动基于神经网络算法的系统,去学习具体任务,系统可以自动判定数据常量规则。在训练神经网络数据的过程中,系统逐渐学习到执行任务,就像某人所说:“是数据在做编程。”
之后我们会讨论方差,置信区间,随机模型,假设检验,参数估计,线性回归,非线性回归,贝叶斯方法以及条件和边际推断。
这里主要是要明白统计建模指的是什么,包括哪些内容,和机器学习有哪些重合的部分又有那些区别。
常用的统计模型包括:参看《python 编程从数据分析到数据科学》
1.广义线性模型(是多数监督机器学习方法的基础,如逻辑回归和Tweedie回归)
2.时间序列方法(ARIMA ,SSA,基于机器学习的方法)
3.结构方程建模(针对潜变量之间关系进行建模)
4.因子分析(调查设计和验证的探索型分析)
5.功效分析/实验分析(特别是基于仿真的实验设计,以避免分析过度)
6.非参数检验(MCMC)
7.K均值聚类
8.贝叶斯方法(朴素贝叶斯、贝叶斯模型平均/Bayesian model averaging、贝叶斯适应型实验/Bayesian adaptive trials)
9.惩罚性回归模型(弹性网络/Elastic Net,LASSO,LARS),以及对通用模型(SVM\XGboost等)加惩罚,这对于预测变量多与观测值的数据很有用,在基因组学和社会科学研究中较为常用。
10.样条模型/SPline-based models(MARS等):主要用于流程建模。
11.马尔可夫链和随机过程(时间序列建模和预测建模的替代方法)
12.缺失数据插补方法及其假设(missFores,MICE)
13.生存分析/survival analysis(主要特点是考虑了每个观测出现某一结局的时间长短)
14.混合建模
15.统计推理和组群测试