统计模型分析当我们对数据进行模型拟合时,分析模型对数据拟合的好坏以及检验该拟合是否满足模型的假设条件都是非常有必要的. 在 Wolfram 系统里,对大部分常见的统计模型来说,这一工作都可以通过用于建立 FittedModel 对象的拟合函数来实现.
FittedModel 对象可以在某一点求值,或者用来对结果和诊断信息进行查询. 对于不同的模型类别,诊断方法有所不同. 现有的模型拟合函数可以用来拟合线性模型、广义线性模型和非线性模型.
用来产生 FittedModel 对象的函数 诸如 LinearModelFit 的模型拟合的函数和诸如 Fit 和 FindFit 的函数之间的主要差别在于从 FittedModel 对象中方便地获取诊断信息的能力. 对相关结果,不用重新拟合模型也能访问. 我们还可以把和属性计算相关的拟合选项传递给 FittedModel 对象来重载默认值. 对于这些模型拟合函数来说,它们所用的典型数据和其他拟合函数,如 Fit 和 FindFit 的数据有着相同的形式. 线性模型假设误差服从独立的正态分布的线性模型属于我们最常见的数据模型. 这种类型的模型可以用 LinearModelFit 函数来拟合.
线性模型采用如下形式:,这里 是拟合值或预测值, 是拟合参数,而 是预测变量 的函数. 模型对于参数 来说是线性的. 而 可以是预测变量的任何函数. 经常可以看到, 就是预测变量 本身. 另外,我们也提供了用来进行详细模型描述和模型分析的具体选项.
LinearModelFit 的选项. Weights 选项描述了加权线性回归的权值. NominalVariables 选项用来指定哪个预测变量应该作为名义变量或分类变量来处理. 用 NominalVariables->All 时,我们所用的是方差分析模型 (ANOVA) . 用 NominalVariables->{x1,…,xi-1,xi+1,…,xn} 时,我们所用的是协方差分析模型,除了第 个预测变量外,所有的预测变量都作为名义变量处理. 这里,名义变量是用一些代表与观察到的名义分类变量值相等或不相等关系的二进制变量来表示的. ConfidenceLevel、VarianceEstimatorFunction 和 WorkingPrecision 和初始拟合后的结果的计算相关. 这些选项可以在 LinearModelFit 里被设置,用以对由 FittedModel 对象所得的结果指定默认设置. 这些选项也可以在一个已经建立好的 FittedModel 对象里设置,用以重载最初赋给 LinearModelFit 的选项值. IncludeConstantBasis、LinearOffsetFunction、NominalVariables 和 Weights 只和拟合过程相关. 在一个已经建立好的 FittedModel 对象里设置这些选项将对结果没有进一步的影响. 模型拟合框架的主要特点是在拟合以后获取结果的能力. 所有这些结果的完整列表可以用 "Properties" 来得到.
"BestFitParameters" 属性给出拟合参数值 {β0,β1,…}. "BestFit" 是拟合函数 而 "Function" 把拟合函数指定为一个纯函数. "BasisFunctions" 给出函数 的列表,其中当模型中有常量时, 为常量1. "DesignMatrix" 是数据的设计矩阵或模型矩阵. "Response" 给出响应列表或者帮助我们从原始数据得到 值.
残差给我们提供了在拟合值和初始响应之间的点态差的度量. "FitResiduals" 给我们提供了观测值和拟合值之间的差值{y1-1,y2-2,…}. "StandardizedResiduals" 和 "StudentizedResiduals" 是残差的尺度化表示. 第 个标准化残差是 ,其中 是估计误差方差, 是帽子矩阵的第 个对角线元素,而 是第 个数据点的权值. 第 学生化残差采用同样的公式,只是把 用 (忽略掉第 个数据点的方差估计)来替代.
"ANOVATable" 给出了模型的格式化的方差分析表. "ANOVATableEntries" 给出了表中列出的数值,而另外剩下的 ANOVATable 属性给我们提供了表中的列元素,以便表的每个具体部分都可以在将来的计算中被方便地使用.
"CovarianceMatrix" 给我们提供了拟合参数之间的协方差. 相应地,矩阵是 ,这里 是方差估计值, 是设计矩阵,而 是权值的对角化矩阵. "CorrelationMatrix" 是参数估计相应的相关矩阵. "ParameterErrors" 相当于协方差矩阵对角线元素的平方根. "ParameterTable" 和 "ParameterConfidenceIntervalTable" 包括单个参数估计,参数的显著性检验和置信区间的信息.
表的估计列相当于 "BestFitParameters". t 统计量是除以标准误差后得到的估计值. 每个 p 值都是 t 统计量的双侧 p 值,而且可以用以评价参数估计是否显著地不同于0. 每个置信区间给我们提供了,在由 ConfidenceLevel 选项预订的置信水平上,参数置信区间的上界和下界. 不同的 ParameterTable 和ParameterConfidenceIntervalTable 属性可以用以从表中获得列或非格式化的数值数组. "VarianceInflationFactors" 可以用来测量基函数间的多重共线性. 第 个膨胀因子相当于,其中 是把第 个基函数拟合成其他基函数的线性函数的变差系数. 采用 IncludeConstantBasis->True 设置时,第一个膨胀因子相应于常数项. "EigenstructureTable" 给我们提供了非常数基函数的特征值,条件指标和方差划分. 指标列给我们提供了每个特征值和最大特征值之间比率的平方根. 每个基函数的列给我们提供了用相应特征向量解释的基函数中的变差比例. "EigenstructureTablePartitions" 给我们提供了表中所有基函数的方差划分值.
影响因子的点态度量经常被用于评价每个单独的数据点是否对拟合产生大的影响. 帽子矩阵和捕集矩阵在这样的诊断分析中扮演重要角色. 帽子矩阵是满足 的矩阵 ,这里 是观测到的响应向量 而 是响应向量的预测值. "HatDiagonal" 给我们提供了帽子矩阵的对角线元素. "CatcherMatrix" 是满足 的矩阵 ,这里 是拟合参数向量. "FitDifferences" 给出 DFFITS值,它提供了用于测量每个数据点对拟合或预测值影响的一个度量. 第 个DFFITS 值由 给出,其中 是第 个帽子对角元素值,而 是第个学生化残差. "BetaDifferences" 给出了DFBETAS值,它提供了用于测量每个数据点对于模型参数的影响的一个度量. 对于一个有 个参数的模型来说,"BetaDifferences" 的第 个元素是一个长度为 的列表,其中第 个值给我们提供了数据点 对于模型的第 个参数的影响的测量. 第 个 "BetaDifferences" 向量可以写成,其中 是捕集矩阵的第 个元素. "CookDistances" 给我们提供了杠杆值的库克距离. 第 个库克距离由 给出,其中 是第 个标准残差. "CovarianceRatios" 的第 个元素可以表示为 而第 个 "FVarianceRatios" 值等于 ,其中 是第 个单删除方差. 杜宾-瓦特森 统计量 "DurbinWatsonD" 用于检验一阶自回归过程的存在性. 统计量相当于 ,其中 是第 个残差.
置信区间的表格化结果可以用 "MeanPredictionConfidenceIntervalTable" 和"SinglePredictionConfidenceIntervalTable" 得到. 这包括观测到得和预测到的响应值、标准误差估计和每个点的置信区间. 均值预测的置信区间经常被简单称为置信区间. 而单个的预测置信区间经常被称为为预测区间. 均值预测区间给出当预测者固定时响应值 的置信区间,并且由 给出,其中 是学生 分布的 分位数,自由度为 , 是在固定预测值上计算得到的基本函数构成的向量,而 是参数的估计协方差矩阵. 单个预测区间提供了当预测值固定时,对 值进行预测时的置信区间,并且由 给出,其中 是估计误差方差. "MeanPredictionBands" 和 "SinglePredictionBands" 给出均值和单个预测置信区间的公式,这些公式由预测变量的函数表示. 优度检验度量用于评估一个模型拟合的效果或者用于比较模型. 决定系数 "RSquared" 是模型平方和和总平方和之间的比率. "AdjustedRSquared" 用以惩罚模型中所用的参数数目,它可以表示为 . "AIC" 和 "BIC" 是基于似然方法的优度检验度量.两者都等于 乘以模型的对数似然值加上 ,这里 是包括估计方差的需要估计的参数数目. 对于 "AIC" k 是 ,而对于 "BIC" 是 . 广义线性模型线性模型可以被视为具有如下特点的模型:每个响应值 都等于一个服从正态分布的观测值,而该正态分布相应的均值是 . 广义线性模型则扩展成为 的形式,每个 值假定服从一个已知指数族形式的分布,该指数分布相应的均值是 ,而 是指数族支撑上的可逆函数. 这种类型的模型可以通过 GeneralizedLinearModelFit 得到.
可逆函数 被称为链接函数. 而线性组合 则称为线性预测. 常见的特例包括有恒等关联函数和高斯或正态指数族分布的线性回归模型,概率的logit模型和probit模型,用来计数的泊松模型,还有伽马(gamma)和逆高斯模型. 误差方差是预测值 的函数,并且在相差一个被称为扩散参数的常量 的情况下由分布来定义. 我们可以把一个拟合值 的误差方差写作 ,这里 是从观测值和预测到的响应值得到的扩散参数的估计,而 是和在 求值的指数族相关联的方差函数. Logit和probit模型是常见的概率二项模型. logit模型的链接函数是 而probit模型的链接是标准正态分布 的逆累积分布函数. 这种类型的模型可以通过GeneralizedLinearModelFit 利用ExponentialFamily->"Binomial" 和合适的 LinkFunction 或者通过 LogitModelFit 和 ProbitModelFit 进行拟合.
参数估计可以通过迭代重加权最小二乘算法获取,这里的权重可以通过设定的分布的方差函数获取. GeneralizedLinearModelFit 的选项包括:用于迭代拟合的选项(比如 PrecisionGoal )、用于模型描述的选项(比如 LinkFunction )和用于进一步分析的选项(比如 ConfidenceLevel ).
GeneralizedLinearModelFit 的选项. LogitModelFit 和 ProbitModelFit 的选项和 GeneralizedLinearModelFit 的相同,除了 ExponentialFamily 和 LinkFunction. 它们是由 logit 模型或 probit 模型定义的,所以它们不是 LogitModelFit 和 ProbitModelFit 的选项. ExponentialFamily 可以是 "Binomial"、"Gamma"、"Gaussian"、"InverseGaussian"、"Poisson" 或是"QuasiLikelihood". 二项模型对于从0 到 1 的响应是有效的. 泊松模型对于非负整数响应是有效的. 高斯或正态模型对于实响应是有效的. 伽马模型和逆高斯模型对于正响应是有效的. 拟似然模型用方差异函数 的形式定义了一个分布结构,使得对第 个数据点的拟似然函数的对数值由 给出. 对于一个"QuasiLikelihood" 模型的方差函数可以通过ExponentialFamily->{"QuasiLikelihood", "VarianceFunction"->fun} 用选项的形式来设定,这里 fun 是一个将被用于拟合值的纯函数. DispersionEstimatorFunction 定义了一个用于估计扩散参数 的函数. 估计值 与线性和非线性回归模型中的 相似. ExponentialFamily、IncludeConstantBasis、LinearOffsetFunction、LinkFunction、NominalVariables 和 Weights 都定义了模型结构和优化标准的一些方面,并且只能在 GeneralizedLinearModelFit 范围内被设定. 所有其他选项可以或者在 GeneralizedLinearModelFit 里被设定,或者当取得结果和诊断时被传递给 FittedModel 对象来设定. 在计算 FittedModel 对象时设置的选项优先于在拟合时给 GeneralizedLinearModelFit 的设置.
"BestFitParameters" 对基函数给出参数估计. "BestFit" 给出拟合函数 ,而 "LinearPredictor" 给出线性组合 . "BasisFunctions" 给出函数 的列表,其中当模型中有常量时, 为常量1. "DesignMatrix" 是基本函数的设计矩阵或模型矩阵.
偏差和偏差表是对线性模型中的方差分析所给出的模型分解的推广. 一个单独的数据点的偏差是 ,其中 是拟合模型的对数似然函数. "Deviances" 给出所有数据点的偏差值列表. 而所有偏差值的和就是模型偏差. 模型偏差可以被分解,如同线性模型的方差分析表(ANOVA table)中的平方和那样. 完全模型是预测值与数据相同的模型.
同平方和一样,偏差是可加的. 表的偏差列告诉我们当加入给定的基函数时,模型偏差的增加值. 残差偏差列告诉我们模型偏差和包括表中前面所有项的子模型的偏差的差值. 对于大的样本,偏差增加值基本上近似于 分布,其自由度等于表中基函数的自由度. "NullDeviance" 是空(null)模型中的偏差,常量模型等于包括一个常量的模型所有观测到的响应值的均值,或者如果没有包含常量项的话,它等于. 和 "ANOVATable" 一样,我们提供一系列的属性以便于从 "DevianceTable" 中获取列值或非格式化数组表示的表格数据.
"FitResiduals" 是残差(观测值和预测值的差值)列表. 在给定的分布假设下,残差的大小是作为预测响应值的函数改变的. 广义线性模型的分析中使用了各种类型的尺度化的残差. 如果 和 是第 个数据点的偏差和残差,则第 个偏差残差由 给出. 第 个皮尔逊残差被定义为 ,其中 是指数族分布的方差函数. 标准偏差残差和标准皮尔森残差包括除以 , 其中 是帽子矩阵的第 个对角线元素. "LikelihoodResiduals" 值把偏差和皮尔森残差组合起来. 第 个似然残差可以表示为. "AnscombeResiduals" 给我们提供了将残差正态化的一种转变, 所以可以预期这些残差的概率图大致看起来像白噪声. 第 个站点残差可以写作 . "WorkingResiduals" 给出从迭代拟合最后一步得到的残差. 第 个工作残差可以从 在 取值得到.
"CovarianceMatrix" 给我们提供了拟合参数间的协方差,它和线性模型中的定义十分相似. 在CovarianceEstimatorFunction->"ExpectedInformation" 设置下,启用从迭代拟合得到的预期信息量矩阵. 该矩阵为 ,其中 是设计矩阵而 是从最后一步拟合得到的权值对角矩阵. 这些权值既包括由Weights 选项描述的权值也包括与分布的方差函数相关的权值. 采用 CovarianceEstimatorFunction->"ObservedInformation" 设置时,矩阵由 给出,其中 是观察到的 Fisher 信息量矩阵,该矩阵是和模型参数有关的对数似然函数的Hessian矩阵. "CorrelationMatrix" 是和参数估计相关的相关系数矩阵. "ParameterErrors" 和协方差矩阵的对角线元素的平方根等价. "ParameterTable" 和 "ParameterConfidenceIntervalTable" 包含单个参数估计,参数检验的显著性,以及置信区间的信息. 对于广义线性模型的测试统计量来说,它渐近地服从正态分布. "CookDistances" 和 "HatDiagonal" 把杠杆度量从线性回归扩展到广义线性模型. 用来获取对角线元素的帽子矩阵采用迭代拟合的最终权值来定义. 对杠杆值的库克距离度量的定义和线性回归类似,除了把标准化残差用标准化皮尔森残差取代. 第 个库克距离可以表示为 ,其中 是第 个标准化皮尔森残差.
"LogLikelihood" 是拟合模型的对数似然值. "AIC" 和 "BIC" 是被惩罚的对数似然度量方法 , 其中 是拟合模型的对数似然值, 是估计参数数目(包括了扩散参数),对于一个有 个数据点的模型来说,对 "AIC" , 是 ,而对 "BIC" , 是 是 . "LikelihoodRatioStatistic" 由 给出,其中 是空(null) 模型的对数似然值. 许多优度检验方法把 从线性回归推广为或是可解释变差的度量,或是一个基于似然方法的度量. "CoxSnellPseudoRSquared" 由 给出. "CraggUhlerPseudoRSquared" 是 Cox 和 Snell 度量的尺度化版本 . "LikelihoodRatioIndex" 包含了对数似然比 , 而 "AdjustedLikelihoodRatioIndex" 利用惩罚参数数目来调整 . "EfronPseudoRSquared" 利用 的平方和解释,并且可以表示为 ,其中 是第 个残差而 是响应 的均值. "PearsonChiSquare" 等于 , 其中 是皮尔森残差. 非线性模型一个非线性最小二乘模型是线性模型的一个扩展,这里模型可以不是基函数的线性组合. 误差仍然可以假设为独立和呈正态分布的. 这种类型的模型可以用 NonlinearModelFit 函数拟合.
非线性模型的形式为 ,其中 是拟合或预测值, 是要拟合的参数,而 是预测变量. 和任何非线性优化问题相同,我们有必要对参数选择一个良好的初始值. 我们可以设置一个和 FindFit 的参数指定相同的初始值.
NonlinearModelFit 的选项. 一般数值选项比如 AccuracyGoal、Method 和 WorkingPrecision 与 FindFit 相同. Weights 选项用于指定加权线性回归里的权值. 最优拟合是针对一个误差加权平方和的. 所有其他选项和初拟合后结果的计算相关. 它们可以在 NonlinearModelFit 里设置,用于拟合过程及对从FittedModel 对象得到的结果设置默认值. 这些选项页可以在一个已经建立好的 FittedModel 对象里设置,用以重载最初赋给 NonlinearModelFit 的选项值. 数据和非线性模型的拟合函数的基本属性和线性及广义线性模型的相同属性具有相同的行为特点,不同的是正如 FindFit 的结果一样 "BestFitParameters" 返回一个规则. 非线性模型的许多诊断扩展或推广了线性回归的概念. 这些扩展经常依赖于线性近似或大样本近似.
和线性回归中一样,"FitResiduals" 给我们提供了观测值和预测值之间的差值 ,并且, "StandardizedResiduals" 和 "StudentizedResiduals" 是这些差值的尺度化表示. 第 个标准化残差是 ,其中 是估计误差方差, 是帽子矩阵的第 个对角线元素,而 是第 个数据点的权值,而第 个学生化残差可以用第 个单消除方差 取代 得到. 对于非线性模型,一个一级近似被用于设计矩阵,该矩阵是计算帽子矩阵所需要的.
"ANOVATable" 对于可归结于拟合函数和误差或残差的数据提供了一种变差分解. 未改正的平方和的总和给我们提供了响应平方和,而改正后的总和给我们提供了响应和它们平均值差值的平方和.
"CovarianceMatrix" 给我们提供了拟合参数间的近似协方差. 矩阵表示为 ,其中 是方差估计, 是模型线性近似的设计矩阵,而 是权值的对角矩阵. "CorrelationMatrix" 是参数估计的关联相关矩阵. "ParameterErrors" 相当于协方差矩阵的对角线元素的平方根. "ParameterTable" 和 "ParameterConfidenceIntervalTable" 包含单个参数估计,参数显著性测试,以及用误差估计所取得的置信区间的所有信息.
用于许多诊断的一级近似和具有线性参数的模型是等价的. 如果接近参数估计值的参数空间足够平,那么线性近似和任何依赖于一级近似的结果都可以被视为合理的. 曲率诊断被用于评价线性近似是否合理. "FitCurvatureTable" 给我们提供了一个曲率诊断表格. "MaxIntrinsicCurvature" 和 "MaxParameterEffectsCurvature" 是参数空间在最佳参数值附近的法向和切向曲率的尺度化度量. "CurvatureConfidenceRegion" 是参数空间在最佳参数值附近的曲率半径的尺度化度量. 如果法向和切向曲率相对于 "CurvatureConfidenceRegion" 的值都较小的话,线性近似可以被认为是合适的. 有些经验法则建议直接和 "CurvatureConfidenceRegion" 值进行比较,而另一些则建议和该值的一半进行比较. 帽子矩阵是满足 的矩阵 ,其中 是观测到得响应向量,而 是预测到得响应向量. "HatDiagonal" 给我们提供了帽子矩阵的对角线元素. 和其他属性相同, 采用模型的线性近似的设计矩阵. "SingleDeletionVariances" 的第 个元素相当于 ,其中 是数据点的数目, 是参数数目, 是帽子矩阵的第 个对角元, 是整个数据集的方差估计,而 是第 个残差.
置信区间的结果的表格由"MeanPredictionConfidenceIntervalTable" 和 "SinglePredictionConfidenceIntervalTable" 给出. 这些结果和通过LinearModelFit 求得的线性模型的结果类似,对于设计矩阵,同样采用一级近似. "MeanPredictionBands" 和 "SinglePredictionBands" 为我们提供了预测变量的函数. "AdjustedRSquared"、"AIC"、"BIC" 和 "RSquared" 都是线性模型中度量的直接延伸. 决定系数 "RSquared" 是 ,其中 是残差平方和, 是未修正的总平方和. 非线性模型的决定系数不象在线性模型中那样被解释成为解释方差的百分比,因为模型的平方和加上残差的平方和不一定等于总平方和. "AdjustedRSquared" 用以惩罚模型中所用的参数数目,它可以表示为 . "AIC" 和 "BIC" 等于 乘以模型的对数似然值加上 ,其中 是包括估计方差的需要估计的参数数目. 对于 "AIC", 是 ,而对于 "BIC", 是 . |
|
来自: robertread > 《人工智能及机器学习》