数据中的数值运算

基本统计
Mean[list]
均值 (平均值)
Median[list]
中位数 (中值)
Max[list]
最大值
Variance[list]
方差
StandardDeviation[list]
标准差
Quantile[list,q]
q 次分位数
Total[list]
总和
基本描述统计学操作.
给定一个有 个元素 的列表, 我们定义其均值 Mean[list].
对实数,我们定义其方差 Variance[list]. (对于复数, .)
相应地,其离差 StandardDeviation[list].
如果 list 中的元素被认为是根据一些概率分布随机选择的话, 那么均值给我们提供了关于分布中心点位置的估计, 而标准差给我们提供了关于在分布中扩散宽度的估计.
中位数 Median[list] 给我们提供了在有序化列表 list 中寻找中间点数值的有效方法. 通常情况下,因为这种方法较少地依赖于异常点或孤立点,所以我们认为这是一种比均值来说对分布中心更稳健的度量方法.
分位数 Quantile[list,q] 给我们提供了在有序化的列表 list 中寻找第 个数的数值的有效方法.
对于一个长度为 的列表, Wolfram 语言把 Quantile[list,q] 定义为 s[[Ceiling[n q]]], 其中 Sort[list,Less].
然而,在应用中,我们还有其他10种对中位数的不同定义方法, 所有这些方法都有可能产生一些稍微不同的结果. Wolfram 语言通过以 Quantile[list,q,{{a,b},{c,d}}] 的形式引进4个中位数参数. 参数 有效地定义了在整个列表中应该被认为是 分比的位置. 如果这对应于一个整数位置, 那么在该位置的元素被认为是 分位数. 如果这不是一个整数位, 那么我们就要采用两边元素的线性组合, 正如 给我们描述的信息一样.
在一个有序化列表 分位数的位置被定义为 . 如果 是一个整数, 那么相应的分位数是 . 否则的话, 就应该是 , 如果索引值超过范围,我们就视情况而定把相应的索引值设为 .
{{0,0},{1,0}}
逆累积分布函数 (默认)
{{0,0},{0,1}}
线性插值方法 (California 方法)
{{1/2,0},{0,0}}
在排号里最接近 的元素
{{1/2,0},{0,1}}
线性插值方法 (水文方法)
{{0,1},{0,1}}
基于均值的估计 (Weibull 方法)
{{1,-1},{0,1}}
基于众数的估计
{{1/3,1/3},{0,1}}
基于中位数的估计
{{3/8,1/4},{0,1}}
正态分布估计
中位数参数的通常选项.
任何时候当 , 第 次分位数总是等于在 list 里的一些实际元素, 因此当 变化时,我们得到的结果总是不连续地变化. 当 , 第 次分位数在 list 的连续元素中线性插入.在我们的定义中,中位数 Median 就采用这样的插值方法.
注意到当 Quantile[list,q] 产生中位数,当 产生百分位数.
Mean[{x1,x2,}]
xi 的均值
Mean[{{x1,y1,},{x2,y2,},}]
xi,yi, 的均值组成的列表
多维数据的处理.
有时候,我们数据中的每一项可能包括由一些数值组成的一个列表. 在这种情况下 Wolfram 语言中的基本统计函数可以自动地应用于这些列表中的所有元素.
下面的例子分别寻找每列数据的均值:
注意,我们可以用 list[[All,i]] 提取一个多维列表中的第 列.
描述统计
描述统计学研究分布的性质, 比如中心位置, 散布范围, 和分布形状. 我们在这里所介绍的函数可以用来做数据列表的描述性统计分析. 你可以利用 "连续分布""离散分布" 里介绍的函数来计算各种已知分布的一些标准描述性统计信息.
这些统计量是根据假设每个数据值 的概率为 来计算的, 其中 是数据中元素的数目.
Mean[data]
平均值
Median[data]
中位数 (中值)
Commonest[data]
具有最高出现频率的元素列表
GeometricMean[data]
几何平均数
HarmonicMean[data]
调和平均数
RootMeanSquare[data]
均方根
TrimmedMean[data,f]
当一部分 从有序数据列表的两端删除时, 剩余项的均值
TrimmedMean[data,{f1,f2}]
的部分从有序数列的两端删除时, 剩余项的均值
Quantile[data,q]
次分位数
Quartiles[data]
list 里第 , , 四分位元素列表
位置统计量.
位置统计量描述了数据的位置. 最常见的功能包括集中趋势的测量, 比如均值, 中位数, 和众数. Quantile[data,q] 给我们提供了分布中达到百分之 的数据之前的位置. 换言之, Quantile 提供了 的值, 并使概率 小于或等于 , 而且概率 大于或等于 .
以下是一个数据集:
以下给出数据的平均值和中位数:
这是当列表中最小的项被排除后得到的均值. TrimmedMean 让你可以描述排除了异常值的数据:
Variance[data]
方差的无偏估计,
StandardDeviation[data]
标准差的无偏估计
MeanDeviation[data]
平均绝对偏差,
MedianDeviation[data]
中位数绝对偏差, 值的中位数
InterquartileRange[data]
第一和第三四分位数之间的差距
QuartileDeviation[data]
四分位间距的一半
离散统计量.
离散统计量总结了数据的散布或扩散情况. 这些函数中的大部分描述了从某一特定位置的偏离度. 例如, 方差是相对均值而言偏离度的度量, 而标准差就是方差的开方.
以下给出数据方差的无偏估计, 并以 作为除数:
以下比较三种类型的偏差:
Covariance[v1,v2]
列表 v1v2 之间的协方差系数
Covariance[m]
矩阵 m 的协方差矩阵
Covariance[m1,m2]
矩阵 m1m2 的协方差矩阵
Correlation[v1,v2]
列表 v1v2 的相关系数
Correlation[m]
矩阵 m 的相关系数矩阵
Correlation[m1,m2]
矩阵 m1m2 的相关系数矩阵
协方差和相关系数统计量.
协方差是方差的多元化扩展. 对于两个长度相等的向量来说,协方差是一个数值. 对于一个单矩阵 m 来说,协方差矩阵的第 i,j 个元素是 m 的第 i 列和第 j 列之间的协方差. 对于两个矩阵 m1m2 来说,协方差矩阵的第 i,j 个元素是 m1 的第 i 列和 m2 的第j 列之间的协方差.
协方差测量散布程度, 而相关系数测量相互关系. 两个向量之间的相关系数等于向量之间的协方差除以这些向量的标准差. 同样, 相关系数矩阵的元素等于相应的协方差矩阵的元素用适当的列标准差进行尺度化后得到的结果.
以下给出 data 和一个随机向量之间的协方差:
这是一个随机矩阵:
以下是矩阵 m 的相关系数矩阵:
以下是协方差矩阵:
对协方差矩阵的每个项通过适当的标准差进行尺度化后,我们得到了该相关系数矩阵:
CentralMoment[data,r]
r 阶中心矩
Skewness[data]
偏度系数
Kurtosis[data]
峰度系数
QuartileSkewness[data]
四分偏度系数
形状统计量.
你可以用形状统计数据得到一些分布的形状信息. 在此, 偏度是描述变量取值分布不对称性的统计量. 而峰度是描述在峰值附近和两端尾部的数据集中度与两侧翼的数据集中度的对比度的统计量.
Skewness 通过把三阶中心矩除以总体标准差的立方来计算. Kurtosis 由四阶中心矩除以数据总体方差的平方计算, 就等于 CentralMoment[data,2]. (总体方差就是二阶中心矩, 而总体标准差就是其平方根.)
QuartileSkewness 是根据数据的四分位数计算的. 它等于 , 其中 , , 和 分别是第一, 第二, 和第三四分位数.    
这是数据的二阶中心矩:
负值的偏度表明数据的分布有很长的左侧尾部.    
Expectation[f[x],xlist]
函数 f 的期望值,自变量 x 是关于 list 中的数值
期望值.
函数 对于数值列表 , , , 的期望或期望值是 . 许多描述统计量都是期望. 例如, 均值是 的期望值, 而 第 阶中心矩是 的期望值, 其中 的均值.
以下是数据的 Log 的期望值:
离散分布
我们在此所描述的函数是最常用的离散单变量统计分布. 您可以计算它们的密度、均值、方差和其他性质. 这些分布本身采用形如 name[param1,param2,] 的符号来表示. 函数如 Mean,给我们提供了统计分布的性质,并把分布的符号表达式作为参数. "连续分布" 描述了许多连续统计分布.
BernoulliDistribution[p]
均值为 p 的贝努利分布
BetaBinomialDistribution[α,β,n]
成功概率是服从 BetaDistribution[α,β] 的随机变量的二项分布
BetaNegativeBinomialDistribution[α,β,n]
成功概率是服从 BetaDistribution[α,β] 的随机变量的负二项分布
BinomialDistribution[n,p]
n 次试验,每次试验成功概率为 p 的二项分布
DiscreteUniformDistribution[{imin,imax}]
在范围从 iminimax 的整数区间里的离散均匀分布
GeometricDistribution[p]
每次试验成功概率为 p ,在达到第一次成功之前的试验数目所服从的几何分布
HypergeometricDistribution[n,nsucc,ntot]
在大小为 ntot 的总体中,n 次试验有 nsucc 次成功的超几何分布
LogSeriesDistribution[θ]
参数为 θ 的对数级数分布
NegativeBinomialDistribution[n,p]
具有参数 np 的负二项分布
PoissonDistribution[μ]
均值为 μ 的泊松分布
ZipfDistribution[ρ]
参数为 ρ 的齐夫分布
离散统计分布.
大多数常见的离散统计分布可以通过考虑一个试验序列来导出,该试验有两种可能的结果,成功失败.
努利分布 BernoulliDistribution[p] 是单次试验分布,成功的概率是 p,相应的值为 1,失败的概率是 1-p,相应的值为 0.
二项分布 BinomialDistribution[n,p]n 次独立试验中成功次数的分布,其中每次试验成功的概率是 p.
负二次项分布 NegativeBinomialDistribution[n,p] 给出在试验序列中 n 次成功出现之前失败次数的分布,其中每次试验成功的概率是 p. 该分布是针对任何正值 n 定义的,此处我们把 n 解释为成功的次数,并且如果 n 不是整数的话,p 作为成功的概率也将不再成立.
贝塔二项分布 BetaBinomialDistribution[α,β,n] 是二项分布和贝塔分布的合成. 一个 BetaBinomialDistribution[α,β,n] 随机变量服从 BinomialDistribution[n,p] 分布,其中成功概率 p 本身服从贝塔分布 BetaDistribution[α,β]. 贝塔负二项分布 BetaNegativeBinomialDistribution[α,β,n] 表示了类似的贝塔分布和负二项分布的合成.
几何分布 GeometricDistribution[p] 给出在试验序列中第一次成功之前的试验次数的分布,其中每个试验成功的概率是 p.
超几何分布 HypergeometricDistribution[n,nsucc,ntot] 用于代替二项分布. 它是在大小为 ntot 的总体中进行 次无替换采样试验有 nsucc 次成功的分布.
离散均匀分布 DiscreteUniformDistribution[{imin,imax}] 代表具有相等概率的多个结果的试验分布,试验结果由从 iminimax 的整数表示.
泊松分布 PoissonDistribution[μ] 描述了发生在某一特定时间段内的事件数目,其中 μ 是每个时间段内的平均事件数目.
关于 的级数展开的项和一个服从对数级数分布 的离散随机变量的概率成正比 LogSeriesDistribution[θ]. 买家在指定的时间间隔里购买的产品数量的分布有时可以用这种分布来建模.
齐夫分布 ZipfDistribution[ρ],有时被称为泽塔分布,首先使用在语言学界,而后其应用已经扩展到了对罕见事件的建模.     
PDF[dist,x]
自变量为 x 的概率密度函数
CDF[dist,x]
自变量为 x 的累积分布函数
InverseCDF[dist,q]
使 CDF[dist,x] 的最大值为 q 的最大整数 x
Quantile[dist,q]
q 次分位数
Mean[dist]
均值
Variance[dist]
方差
StandardDeviation[dist]
标准差
Skewness[dist]
偏度系数
Kurtosis[dist]
峰度系数
CharacteristicFunction[dist,t]
特征函数
Expectation[f[x],xdist]
x 服从分布 dist 时,f[x] 的期望值
Median[dist]
中位数
Quartiles[dist]
dist 的第 四分位数的列表
InterquartileRange[dist]
第一和第三四分位数之间的差距
QuartileDeviation[dist]
四分位间距的一半
QuartileSkewness[dist]
四分偏度系数的测量
RandomVariate[dist]
指定分布的伪随机数
RandomVariate[dist,dims]
维度为 dims,并且元素服从指定分布的伪随机数组
一些统计分布函数.
分布以符号表达式来表示. 如果 x 是一个数值,PDF[dist,x] 提供了在 x 点的密度函数,否则的话,只要有可能我们就保留函数的符号表达式形式. 相同地,CDF[dist,x] 给出累积分布函数而 Mean[dist] 给出指定分布的均值. 为了更全面地描述统计分布的不同函数,请参见 "连续分布" 里类似的关于连续分布的介绍.
以下给出 34 次试验, 每次有 0.3 的成功概率的二项分布的符号化表示:
以下给出分布的均值:
应用符号化的变量作为参数,用户可以得到均值的表达式:
以下是 50% 四分位数,它的值等于中位数:
以下给出 关于二项分布的期望值:
该矩阵的元素是服从二项分布的伪随机数:
连续分布
我们这里所描述的函数是在连续性的单变量统计分布里最常用的一些函数. 您可以计算它们的密度、均值、方差、和其他相关的属性. 这些分布本身可以采用形如 name[param1,param2,] 的符号来表示. 函数如 Mean,可以给我们提供统计分布的性质,并且使用分布的符号表达式作为一个参数. "离散分布" 描述了许多常见的离散单变量统计分布.
NormalDistribution[μ,σ]
具有均值 μ 和标准差 σ 的正态(高斯)分布
HalfNormalDistribution[θ]
尺度和参数 θ 成反比的半正态分布
LogNormalDistribution[μ,σ]
均值为 μ,标准差为 σ 的对数正态分布
InverseGaussianDistribution[μ,λ]
具有均值 μ 和尺度 λ 的逆高斯分布
和正态分布相关的分布.
对数正态分布 LogNormalDistribution[μ,σ] 是正态分布的随机变量的指数服从的分布. 当许多独立的随机变量以相乘的方式被组合时出现该分布. 半正态分布 HalfNormalDistribution[θ] 和局限于域 的分布 NormalDistribution[0,1/(θ Sqrt[2/π])] 成正比 .
逆高斯分布(InverseGaussianDistribution[μ,λ]),有时被称为森林分布(Wald distribution),是有正漂移的布朗运动的首达时分布.
ChiSquareDistribution[ν]
ν 个自由度的 分布
InverseChiSquareDistribution[ν]
具有自由度 ν 的逆 分布
FRatioDistribution[n,m]
分子为 n,分母为 m 比率分布
StudentTDistribution[ν]
具有 ν 个自由度的学生 t 分布
NoncentralChiSquareDistribution[ν,λ]
具有自由度 ν 和非中心化参数 λ 的非中心卡方分布( 分布)
NoncentralStudentTDistribution[ν,δ]
具有自由度 ν 和非中心化参数 δ 的学生 t 分布
NoncentralFRatioDistribution[n,m,λ]
分子自由度为 n 和分母自由度为 m 的非中心化 -比率分布, 分子非中心化参数为 λ
和正态分布样本相关的分布.
如果 , , 是独立的正态随机变量,其方差为1,均值为0,那么 服从一个自由度为 分布 . 如果一个正态变量通过减去它的均值,并除以标准差来标准化,那么这样的数值结果的平方和服从该分布. 分布被广泛用于描述正态样本的方差.
如果 服从一个自由度为 分布 服从逆 分布 InverseChiSquareDistribution[ν]. 一个自由度为 和尺度为 的尺度化的逆 分布 可以由 InverseChiSquareDistribution[ν,ξ] 给出. 逆 分布通常用作正态分布样本的贝叶斯分析中的方差的先验分布.     
一个服从学生 分布 的变量也可以写为一个正态随机变量的函数. 假设 是独立的随机变量,其中 是一个标准正态分布,而 是一个自由度为 变量. 在这种情况下, 服从自由度为 分布. 学生 分布关于纵轴对称, 并且表示一个正态变量和它的标准差之间的比率的特点. 定位参数和尺度参数可以包括在 StudentTDistribution[μ,σ,ν] 里,并且用 μσ 来表示. 当 分布和柯西分布( Cauchy distribution) 一样.
比率 分布 是两个独立 变量除以它们各自的自由度的比率的分布. 它通常用于假设检验中比较两组人群的方差.
由均值非零的正态分布得到的分布称为非中心化分布.
方差为 和均值非零的 个正态分布的随机变量的平方和服从一个非中心化 分布NoncentralChiSquareDistribution[ν,λ]. 非中心化参数 是随机变量的均值的平方和. 注意,在我们的文档的不同地方, 被作为非中心化参数.
非中心化学生 分布 NoncentralStudentTDistribution[ν,δ] 描述了比率 ,其中 是一个自由度为 的中心随机变量 ,而 是一个方差为 和均值为 的独立正态分布的随机变量.
非中心化 比率 分布 NoncentralFRatioDistribution[n,m,λ] 比率的分布,其中 是一个非中心化参数为 和自由度为 的非中心化 随机变量,而 是一个自由度为 的中心化 随机变量.
TriangularDistribution[{a,b}]
区间在 {a,b} 上的对称三角分布
TriangularDistribution[{a,b},c]
区间为 {a,b},最大值为 c 的三角分布
UniformDistribution[{min,max}]
区间在 {min,max} 上的均匀分布
分段线性分布.
三角分布 TriangularDistribution[{a,b},c] 是区间 上的三角分布,其最大概率值为 并且满足. 如果 TriangularDistribution[{a,b},c] 是对称三角分布 TriangularDistribution[{a,b}].
均匀分布 UniformDistribution[{min,max}], 通常称为矩形分布, 它的特点是它的随机变量的值在每个位置都有相同的概率.我们常见的一个均匀分布随机变量的例子是在一条范围从 minmax 的线上随机选择的点的位置.
BetaDistribution[α,β]
形状参数为 αβ 的连续贝塔分布
CauchyDistribution[a,b]
具有定位参数 a 和尺度参数 b 的柯西分布
ChiDistribution[ν]
ν 个自由度的 分布
ExponentialDistribution[λ]
尺度参数和 λ 成反比的指数分布
ExtremeValueDistribution[α,β]
具有定位参数 α 和尺度参数 β 的极大值 (FisherTippett) 分布
GammaDistribution[α,β]
具有形状参数 α 和尺度参数 β 的伽马分布
GumbelDistribution[α,β]
具有定位参数 α 和尺度参数 β 的冈贝尔极小值分布
InverseGammaDistribution[α,β]
具有形状参数 α 和尺度参数 β 的逆伽马分布
LaplaceDistribution[μ,β]
均值为 μ,尺度参数为 β 的拉普拉斯(双指数)分布
LevyDistribution[μ,σ]
具有定位参数 μ 和扩散参数 σ 的列维(Lévy)分布
LogisticDistribution[μ,β]
均值为 μ, 尺度参数为 β 的洛杰斯蒂克分布
MaxwellDistribution[σ]
尺度参数为 σ 的Maxwell (MaxwellBoltzmann) 分布
ParetoDistribution[k,α]
具有最小值参数 k 和形状参数 α 的 Pareto 分布
RayleighDistribution[σ]
尺度参数为 σ 的瑞利分布
WeibullDistribution[α,β]
形状参数为 α 和尺度参数为 β 的威布尔分布
其他连续性的统计分布.
如果 [-π,π] 上均匀分布,那么随机变量 服从一个柯西分布 CauchyDistribution[a,b],其中 .
并且 伽马分布 GammaDistribution[α,λ] 描述了 个单位的正态随机变量的平方和的分布. 这种类型的伽马分布被称为具有 个自由度的 分布. 当 ,伽马分布以指数分布 的形式出现ExponentialDistribution[λ],并且经常用以描述事件之间的等待时间.
如果一个随机变量 服从伽马分布 GammaDistribution[α,β] 服从逆伽马分布 InverseGammaDistribution[α,1/β]. 如果一个随机变量 服从 InverseGammaDistribution[1/2,σ/2] 服从 Lévy 分布 LevyDistribution[μ,σ].
是具有相同尺度参数的独立伽马分布时,随机变量 服从贝塔分布 BetaDistribution[α,β], 其中 是伽马变量的形状参数.
分布 ChiDistribution[ν] 是一个 随机变量的平方根服从的分布. 对于 分布和 HalfNormalDistribution[θ] 相同. 对于 分布和 瑞利分布 RayleighDistribution[σ] 相同. 对于 分布和 MaxwellBoltzmann 分布 MaxwellDistribution[σ] 相同.
拉普拉斯分布 LaplaceDistribution[μ,β] 是两个服从相同的指数分布的独立的随机变量的差值的分布. 当一个长尾分布是比较理想的分布时,洛杰斯蒂克分布 LogisticDistribution[μ,β]经常被用来代替正态分布.
帕累托分布 ParetoDistribution[k,α] 可以用来描述收入,并用 代表可能的最低收入.
威布尔分布 WeibullDistribution[α,β] 通常用于工程上描述一个对象的生命期. 极值分布 ExtremeValueDistribution[α,β] 是服从不同分布的大样本中的最大值的限制性分布,包括正态分布. 在这样的样本中最小值的限制性分布是冈贝尔分布GumbelDistribution[α,β]. 极值冈贝尔分布这两个名字有时可以交替使用,因为最大和最小极值的分布由一个服从线性变化的变量相关. 极值分布有时也被称为对数-威布尔分布,因为在一个服从极值分布的随机变量和一个妥善偏移和尺度化的服从威布尔分布的随机变量之间存在对数关系.
PDF[dist,x]
概率密度函数,自变量为 x
CDF[dist,x]
累积分布函数,自变量为 x
InverseCDF[dist,q]
使 CDF[dist,x] 等于 qx 的值
Quantile[dist,q]
q 次分位数
Mean[dist]
均值
Variance[dist]
方差
StandardDeviation[dist]
标准差
Skewness[dist]
偏度系数
Kurtosis[dist]
峰度系数
CharacteristicFunction[dist,t]
特征函数
Expectation[f[x],xdist]
x 服从分布 dist 时,f[x] 的期望值
Median[dist]
中位数
Quartiles[dist]
dist 的第 位数的列表
InterquartileRange[dist]
第一和第三四分位数之间的差距
QuartileDeviation[dist]
四分位间距的一半
QuartileSkewness[dist]
四分偏度系数的测量
RandomVariate[dist]
服从指定分布的伪随机数
RandomVariate[dist,dims]
维度为 dims 并且元素服从指定分布的伪随机数组
统计分布函数.
上面的表格给出可用于 Wolfram 语言中的分布的一些更常见函数的列表.
在点 的累积分布函数(CDF)由分布的概率密度函数(PDF)直到点 的积分给出. 因此,概率密度函数可以由对累积分布函数求导得到(可能在广义意义上). 在该软件包中,概率分布由符号化的形式表示. 如果 是一个数值型数据, PDF[dist,x] 计算在点 处的密度,否则,函数就保留符号化表达式的形式. 同样地,CDF[dist,x] 给出了累积分布.
逆累积分布函数 InverseCDF[dist,q] 提供了 点的值,在该点 CDF[dist,x] 达到 . 中位数由InverseCDF[dist,1/2] 给出. 四分位数、十分位数和百分位数是逆累积分布函数的特殊值. 四分位数的偏度等于,此处 分别是第一,第二和第三四分位数. 逆累积分布函数用于构建统计参数的置信区间. 对于连续分布,InverseCDF[dist,q]Quantile[dist,q] 是相等的.
均值 Mean[dist] 是服从 dist 分布的随机变量的期望值,经常可以表示为 . 均值由 给出,其中 是分布的概率密度函数. 方差 Variance[dist] 给出. 方差的平方根被称为标准差,通常用 表示.
我们的 Skewness[dist]Kurtosis[dist] 函数给我们提供了形状统计信息,用以分别总结一个分布的不对称性和峰度. 偏度系数由 给出,而峰度系数由 给出.
特征函数 CharacteristicFunction[dist,t] 给出. 在离散分布的情况下, . 每个分布有一个独特的特征函数,该特征函数有时被用来代替概率密度函数定义我们的分布.
一个函数 g 的期望值 Expectation[g[x],xdist] 给出. 在离散的情况下,函数 g 的期望值由 给出.
RandomVariate[dist] 给出服从指定分布的伪随机数字.
这是一个由符号化表示的 的伽马分布:
下面是当变量等于 10 时的累积分布函数:
下面是累积分布函数. 它由内置函数 GammaRegularized 给出:
下面是累积分布函数的图线:
下面是一个元素服从伽马分布的伪随机数组:
把数据划分为聚类
聚类分析是一种用于数据分类的无监督学习技术. 数据元素被划分为称为簇 (clusters) 的组,它们代表了基于距离或者差异函数的邻近元素组成的集合. 相同元素组成的对的距离或相异度为零,而其他所有元素对的距离或者相异度都为正值.
FindClusters[data]
data 划分为相似元素组成的列表
FindClusters[data,n]
data 划分为相似元素组成的最多 n 个列表
一般聚类函数.
FindClusters 的数据参数可以是数据元素列表、关联、或者对元素和标签进行索引的规则列表.
{e1,e2,}
指定为数据元素 ei 的列表的数据
{e1v1,e2v2,}
指定作为数据元素 ei 和标签 vi 之间的规则列表的数据
{e1,e2,}{v1,v2,}
指定为数据元素 ei 到标签 vi 的映射规则的数据
key1e1,key2e2|>
指定为把数据元素 ei 映射到标签 keyi 的关联的数据
FindClusters 中指定数据的方式.
FindClusters 适用于各种数据类型,包括数值、文本、图像以及布尔值向量、日期和时间. 所有数据元素 ei 必须具有相同的维度.
以下是一个数字列表:
FindClusters 基于数字的邻近度进行聚类划分:
基于规则的数据语法允许对数据元素进行聚类划分,并且返回这些元素的标签.
以下对二维点进行聚类分析,并且把数据列表中的位置作为标签进行标记:
基于规则的数据语法也可以用来对数据基于每个数据的某些组成部分进行聚类分析. 例如,用户可能想要在数据表中对数据进行聚类分析,但是忽略表中某些特定的列.
以下是一个数据条目列表:
以下对数据分类,而忽略了每个数据项的前两个元素:
原则上,有可能在给定任意维度数的情况下,对点进行聚类分析. 然而,很难想象在二维或三维以上的空间中的聚类. 为了比较本文档中的可选方法,在此将采用方便进行可视化的二维数据.
下面的命令定义了 300 个二维数据点的集合,并且分为4个含糊的簇:
以下基于点的邻近度对数据进行聚类分析:
以下是对各个簇画出的图形:
在默认设置下,FindClusters 已经求得了由点组成的4个簇.
用户也可以命令 FindClusters 寻找指定数目的簇.
以下显示了选择 3 个簇的效果:
以下显示选择 5 个簇的效果:
选项名
默认值
CriterionFunctionAutomatic
选择方法的准则
DistanceFunctionAutomatic
采用的距离函数
MethodAutomatic
采用的聚类方法
PerformanceGoalAutomatic
要优化的性能方面
WeightsAutomatic
每个样本要给予多少权重
FindClusters 的选项.
原则上,聚类技术可以用于任何数据集合. 所有这一切需要的是测量集合中的每个元素与其他元素的距离,即一个给出元素间距离的函数.
FindClusters[{e1,e2,},DistanceFunction->f] 把元素对作为较不相似来处理,当它们之间的距离 f[ei,ej] 较大时. 函数 f 可以是任意适当的距离或者相异函数. 相异函数 f 满足如下条件:
如果 ei 是数字向量,默认情况下 FindClusters 使用平方欧氏距离. 如果 ei 是布尔值 TrueFalse (或者 0 和1)元素组成的列表,默认情况下 FindClusters 采用基于不相似元素的规范化的分式而得到的相异度度量. 如果 ei 是字符串,默认情况下 FindClusters 采用基于从一个字符串变为另一个所需的点的改变数目而得到的距离函数.
EuclideanDistance[u,v]
欧氏范数
SquaredEuclideanDistance[u,v]
平方欧氏范数
ManhattanDistance[u,v]
曼哈顿距离
ChessboardDistance[u,v]
棋盘或者切比雪夫距离
CanberraDistance[u,v]
堪培拉距离
CosineDistance[u,v]
余弦距离
CorrelationDistance[u,v]
相关距离 1-(u-Mean[u]).(v-Mean[v])/(Abs[u-Mean[u]]Abs[v-Mean[v]])
BrayCurtisDistance[u,v]
布雷-柯蒂斯距离
数值数据的距离函数.
以下显示使用曼哈顿距离在 datapairs 中找到的聚类:
布尔向量之间的相异度通常由成对比较布尔向量 的元素计算得出. 关于 总结每个相异函数是很方便的,其中 是在 中的相应元素对的数目,并且分别等于 . 数值 计算 中的 对,其中 或者是 0 或者是 1. 如果布尔值是 TrueFalseTrue 相当于 1,而 False 相当于 0.
MatchingDissimilarity[u,v]
简单匹配 (n10+n01)/Length[u]
JaccardDissimilarity[u,v]
雅卡尔相异度
RussellRaoDissimilarity[u,v]
罗素-饶相异度 (n10+n01+n00)/Length[u]
SokalSneathDissimilarity[u,v]
索卡尔-斯尼思相异度
RogersTanimotoDissimilarity[u,v]
RogersTanimoto 相异度
DiceDissimilarity[u,v]
Dice 相异度
YuleDissimilarity[u,v]
Yule 相异度
布尔数据的相异函数.
以下是一些布尔数据:
这是使用布尔数据的默认相异度找到的分类:
EditDistance[u,v]
u 转换为字符串 v 的编辑次数
DamerauLevenshteinDistance[u,v]
uv 之间的 DamerauLevenshtein 距离
HammingDistance[u,v]
uv 中不相同的元素数目
字符串数据的相异函数.
编辑距离通过计算当保持字符顺序、并把一个字符串转换为另一个字符串的同时,所要进行的删除、插入和替换的次数. 相比之下,DamerauLevenshtein 距离计算删除、插入、替换和换位的次数,而汉明距离只计算替换的次数.
以下是一些字符串数据:
以下使用编辑距离对字符串数据进行聚类分析:
Method 选项可以用来指定聚类所用的不同方法.
"Agglomerate"
层次化地寻找分类
"Optimize"
通过局部优化寻找分类
"DBSCAN"
具有噪声的基于密度的空间聚类方法
"GaussianMixture"
变化的高斯混合算法
"JarvisPatrick"
JarvisPatrick 聚类算法
"KMeans"
k-平均聚类算法
"KMedoids"
围绕中心点划分
"MeanShift"
平均移动聚类算法
"NeighborhoodContraction"
将数据点移向高密度区域
"SpanningTree"
基于最小生成树的聚类算法
"Spectral"
谱聚类算法
Method 选项的明确设置.
默认情况下,FindClusters 会尝试不同的方法然后选择最好的聚类划分.
"KMeans""KMedoids" 方法决定了如何把数据聚类划分成特定的 k 簇.
"DBSCAN""JarvisPatrick""MeanShift""SpanningTree" "NeighborhoodContraction""GaussianMixture" 方法决定了如何把数据聚类划分而不假设特定的聚类数目.
"Agglomerate""Spectral""SpanningTree" 方法两种情况下都适用.
下面显示了用 "KMeans" 方法在 datapairs 中找到的聚类:
下面显示了用 "GaussianMixture" 方法在 datapairs 中找到的聚类:
还有额外的 Method 子选项允许在分类上进行更多控制. 可用的子选项取决于选择的 Method.
"NeighborhoodRadius"
指定一点邻域的平均半径
"NeighborsNumber"
指定邻域中点的平均数目
"InitialCentroids"
指定初始的质心/中心点
"SharedNeighborsNumber"
指定邻域的最小数目
"MaxEdgeLength"
指定修正长度临界值
ClusterDissimilarityFunction
指定簇之间的相异性
所有方法的子选项.
子选项 "NeighborhoodRadius" 可用在方法 "DBSCAN""MeanShift""JarvisPatrick""NeighborhoodContraction""Spectral" 中.
子选项 "NeighborsNumber""SharedNeighborsNumber" 可用在方法 "DBSCAN""JarvisPatrick" 中.
子选项 "MaxEdgeLength" 可用在方法 "SpanningTree" 中.
子选项 "InitialCentroids" 可用在方法 "KMeans""KMedoids" 中.
子选项 ClusterDissimilarityFunction 可用在方法 "Agglomerate" 中.
"NeighborhoodRadius" 子选项可用于控制普通一点附近的平均半径.
以下显示了用 "NeighborhoodContraction" 方法根据不同的 "NeighborhoodRadius" 设置在 datapairs 中找到的不同的聚类:
可以用 "NeighborsNumber" 子选项控制普通一点邻域内的邻居数量.
以下显示了用 "DBSCAN" 方法根据不同的 "NeighborsNumber" 设置在 datapairs 中找到的不同的聚类:
可以用 "InitialCentroids" 子选项改变 "KMeans""KMedoids" 方法的初配置. 糟糕的初始配置会导致糟糕的聚类.
以下显示了用 "KMeans" 方法根据不同的 "InitialCentroids" 设置在 datapairs 中找到的不同的聚类:
设置 Method->{"Agglomerate",ClusterDissimilarityFunction->f} 下,指定的链接函数 f 被用于凝聚聚类.
"Single"
最小簇间相异度
"Average"
平均簇间相异度
"Complete"
最大簇间相异度
"WeightedAverage"
加权平均簇间相异度
"Centroid"
与簇中心的距离
"Median"
与簇中位数的距离
"Ward"
Ward 最小方差相异度
f
纯函数
ClusterDissimilarityFunction 子选项的可能值.
链接方式决定了簇间的相异度,或混合程度,鉴于各个成员元素之间的相异度.
设置 ClusterDissimilarityFunction->f 下,f 是定义链接算法的纯函数. 簇之间的距离或者相异度由未合并的簇之间的距离或者相异度的信息来递归决定,并以此产生和新合并成的簇之间的距离和相异度信息. 函数 f 定义从簇 k 到由簇 ij 融合形成的新簇之间的距离. 给 f 提供的自变量为 dikdjkdijninjnk,其中 d 是簇之间的距离,而 n 是一个簇中的元素数目.
以下显示了用 "Agglomerate" 方法根据不同的 ClusterDissimilarityFunction 设置在 datapairs 中找到的不同的聚类:
CriterionFunction 选项既可用于选择采用的方法,也可用于选择簇的最佳数量.
"StandardDeviation"
均方根标准差
"RSquared"
R-平方
"Dunn"
Dunn 索引
"CalinskiHarabasz"
CalinskiHarabasz 索引
"DaviesBouldin"
DaviesBouldin 索引
Automatic
内部索引
以下显示了用不同的 CriterionFunction 设置得到的聚类结果:
以下是使用默认的 CriterionFunction 设置自动选择簇的数目而求得的簇:
以下是使用 "CalinskiHarabasz" 索引而求得的簇:
最近邻域法
Nearest 用来在一个列表中寻找与给定数据点最接近的元素.
Nearest[{elem1,elem2,},x]
给出与 x 最接近的 elemi 的列表
Nearest[{elem1->v1,elem2->v2,},x]
给出与 x 最接近的对应于 elemivi
Nearest[{elem1,elem2,}->{v1,v2,},x]
给出相同的结果
Nearest[{elem1,elem2,}->Automatic,x]
vi 取值为整数 1, 2, 3,
Nearest[data,x,n]
给出与 x 最接近的 n 个元素
Nearest[data,x,{n,r}]
给出在半径 r 内,与 x 最接近的 n 个元素
Nearest[data]
产生可以重复应用于不同 xNearestFunction[]
Nearest 函数.
Nearest 对于数值列表,张量或者字符串列表适用.
以下找出与 4.5 最接近的元素:
以下找出与 4.5 最接近的 3 个元素:
以下找出在半径 2 内,与 4.5 最接近的所有元素:
以下找出在二维空间中与 {1,2} 最接近的点:
以下找出与 cat 最接近的字符串:
基于规则的数据语法允许用户使用最近元素来返回它们的标签.
以下对二维点加标签:
以下使用连续整数对元素加标签:
如果 Nearest 要重复使用在相同的数值数据上,用户可以通过首先产生 NearestFunction 提高效率.
以下在二维空间内产生 10,000 个点的集合,以及 NearestFunction
以下在集合中寻找与 10 个目标点最接近的点:
如果不使用 NearestFunction,则需要花费更长的时间:
选项名
默认值
DistanceFunctionAutomatic
使用的距离度量
Nearest 的选项.
对于数值数据,默认情况下 Nearest 使用 EuclideanDistance. 对于字符串,则使用 EditDistance.
处理数值数据
当有一组数值数据时,寻求一个公式来逼近它常常是方便的. 例如,用户可以拟合一条直线或曲线通过这组数据所表示的点.
Fit[{y1,y2,},{f1
,
f2,},x]
fi 的线性组合拟合数据 yn
Fit[{{x1,y1},{x2,y2},},{f1
,
f2,},x]
fi 的线性组合拟合一组点 (xn,yn)
对函数的线性组合拟合曲线函数.
以下生成一个指数函数的数值表. Table 的概念将在 "值表的生成" 节讨论:
以下用 data 进行最小二乘拟合. data 中的元素被假定为相应于 的值
以下求形如 的拟合函数:
以下生成一个数据对()构成的表:
以下求新数据的形如 的拟合函数:
FindFit[data,form,{p1,p2,},x]
使用参数 pi 寻找 form 的拟合
用一般形式拟合数据.
以下寻找线性拟合的最佳参数:
以下进行非线性拟合:
从数值数据中取出信号的一个常见方法是求数据的傅立叶变换或频谱.
Fourier[data]
数值傅立叶变换
InverseFourier[data]
数值傅立叶逆变换
傅立叶变换.
以下是简单的矩形脉冲:
以下取该脉冲的傅立叶变换:
注意,Wolfram 语言中的 Fourier 函数是按照物理学中的习惯定义的,与电子工程中使用的定义相反. "离散傅立叶变换" 节将进行详细讨论.
曲线拟合
在许多情况下,用户可能想要找到对给定数据集达到最佳拟合的公式. 在 Wolfram 语言中要实现这一目的一种方法是使用 Fit.
Fit[{f1,f2,},{fun1,fun2,},x]
寻找 funi 的线性组合,使之对 fi 达到最优拟合
基本线性拟合.
这是前 20 个素数的列表:
这是上述数据的图形:
以下给出上述素数列表的线性拟合. 该结果是函数 1x 的最佳线性组合:
这是拟合函数的图形:
这是原数据与拟合函数:
以下给出数据的二次拟合:
这是二次拟合的图形:
以下显示出原数据与二次拟合函数. 二次拟合优于线性拟合:
{f1,f2,}
单自变量取值为 得到的数据点
{{x1,f1},{x2,f2},}
单自变量取值为 得到的数据点
{{x1,y1,,f1},{x2,y2,,f2},}
自变量取值为 得到的数据点
指定数据的方式.
如果以 形式给出数据,那么 Fit 将假定连续的 函数对应于在连续整数点 的函数值. 但是你也可以给出在一个或多个维度上,对应于任意点上的函数的 Fit 数据.
Fit[data,{fun1,fun2,},{x,y,}]
对多变量函数进行拟合
多变量拟合.
以下给出 的值表. 用户必须使用 Flatten 以获得 Fit 的正确形式:
以下对双变量函数进行拟合:
Fit 采用函数列表,并且使用确定并且有效的步骤来找到产生最佳二乘拟合的函数线性组合. 然而,有时候,用户可能想要找到不只包括指定函数线性组合的非线性拟合. 这可以使用 FindFit 实现,它采用任何形式的函数,并且搜索产生数据最佳拟合的参数值.
FindFit[data,form,{par1,par2,},x]
寻找使得 formdata 达到最佳拟合的 pari 的值
FindFit[data,form,pars,{x,y,}]
多变量数据拟合
寻找数据的一般拟合.
以下使用各项的简单线性组合对质数列表进行拟合:
该结果与 Fit 所得结果相同:
以下使用的是非线性形式拟合,并不能由 Fit 处理:
默认情况下,FitFindFit 产生最小二乘拟合,我们定义它来最小化 的值,其中 是给定每个原始数据点和拟合值的差异下的残差. 然而,用户也能基于其他范数考虑拟合. 如果用户设置选项 NormFunction->u,那么FindFit 将试图找到最小化 u[r] 的值的拟合,其中 r 是残差列表. 默认为 NormFunction->Norm,对应于最小二乘拟合.
在此使用 范数,它能够最小化拟合值和数据值之间的最大距离. 所得结果与最小二乘法所得结果略有不同:
FindFit 首先寻找产生最佳拟合的参数值. 有时候,用户可能要告诉系统从什么位置开始搜索. 用户可以通过给出 形式的参数实现. FindFit 也为用户提供了多种选项设置,以便用户控制如何进行搜索.
FindFit[data,{form,cons},pars,vars]
寻找在参数约束 cons 条件下的最佳拟合
寻找数据的一般拟合.
以下给出在参数约束条件下的最佳拟合:
选项名
默认值
NormFunctionNorm
采用的范数
AccuracyGoalAutomatic
试图获得的准确度的位数
PrecisionGoalAutomatic
试图获得的精度的位数
WorkingPrecisionAutomatic
在内部计算中采用的精度
MaxIterationsAutomatic
采用的最大迭代次数
StepMonitorNone
在每一步中所计算的表达式
EvaluationMonitorNone
当计算 form 时,所计算的表达式
MethodAutomatic
使用的方法
FindFit 的选项.
统计模型分析
当我们对数据进行模型拟合时,分析模型对数据拟合的好坏以及检验该拟合是否满足模型的假设条件都是非常有必要的. 在 Wolfram 系统里,对大部分常见的统计模型来说,这一工作都可以通过用于建立 FittedModel 对象的拟合函数来实现.
FittedModel
代表一个符号化的拟合模型
关于拟合模型信息的对象.
FittedModel 对象可以在某一点求值,或者用来对结果和诊断信息进行查询. 对于不同的模型类别,诊断方法有所不同. 现有的模型拟合函数可以用来拟合线性模型、广义线性模型和非线性模型.
LinearModelFit
构建一个线性模型
GeneralizedLinearModelFit
构建一个广义线性模型
LogitModelFit
构建一个二项logistic回归模型
ProbitModelFit
构建一个二项probit回归模型
NonlinearModelFit
构建一个非线性最小二乘模型
用来产生 FittedModel 对象的函数
以下假设 的值是 1, 2, 来拟合一个线性模型:
以下是拟合模型的函数形式:
在点 对模型求值:
线性拟合模型可以产生的结果的简化列表如下所示:
诸如 LinearModelFit 的模型拟合的函数和诸如 FitFindFit 的函数之间的主要差别在于从 FittedModel 对象中方便地获取诊断信息的能力. 对相关结果,不用重新拟合模型也能访问.
以下给出拟合得到的残差:
我们也可以在一个列表里同时得到多个结果,具体结果如下所示:
我们还可以把和属性计算相关的拟合选项传递给 FittedModel 对象来重载默认值.
下面给出的是默认的 95 % 的置信区间:
以下则得到 90 % 的置信区间:
对于这些模型拟合函数来说,它们所用的典型数据和其他拟合函数,如 FitFindFit 的数据有着相同的形式.
{y1,y2,}
具有一个取值为 1, 2, 的单预测变量的数据点
{{x11,x12,,y1},{x21,x22,,y2},}
有显式坐标的数据点
数据指定模式

线性模型

假设误差服从独立的正态分布的线性模型属于我们最常见的数据模型. 这种类型的模型可以用 LinearModelFit 函数来拟合.
LinearModelFit[{y1,y2,},{f1,f2,},x]
获得一个基函数为 fi,单预测变量为 x 的线性模型
LinearModelFit[{{x11,x12,,y1},{x21,x22,,y2}},{f1,f2,},{x1,x2,}]
获得一个具有多个预测变量 xi 的线性模型
LinearModelFit[{m,v}]
获得一个基于一个设计矩阵 m 和一个响应向量 v 的线性模型
线性模型拟合
线性模型采用如下形式:,在此 是拟合值或预测值, 是拟合参数,而 是预测变量 的函数. 模型对于参数 来说是线性的. 而 可以是预测变量的任何函数. 经常可以看到, 就是预测变量 本身.
对前20个元素进行线性拟合,可以采用以下过程:
另外还提供了用来进行详细模型描述和模型分析的具体选项.
选项名
默认值
ConfidenceLevel95/100
用于参数和预测的置信水平
IncludeConstantBasisTrue
是否包括一个常数基函数
LinearOffsetFunctionNone
线性预测的已知偏移量
NominalVariablesNone
名义或类别变量
VarianceEstimatorFunctionAutomatic
用于估计误差方差的函数
WeightsAutomatic
数据元素的权重
WorkingPrecisionAutomatic
内部计算所用的精度
LinearModelFit 的选项.
Weights 选项描述了加权线性回归的权值. NominalVariables 选项用来指定哪个预测变量应该作为名义变量或分类变量来处理. 用 NominalVariables->All 时,我们所用的是方差分析模型 (ANOVA) . 用 NominalVariables->{x1,,xi-1,xi+1,,xn} 时,我们所用的是协方差分析模型,除了第 个预测变量外,所有的预测变量都作为名义变量处理. 名义变量在这里是用一些代表与观察到的名义分类变量值相等或不相等关系的二进制变量来表示的.
ConfidenceLevelVarianceEstimatorFunctionWorkingPrecision 和初始拟合后的结果的计算相关. 这些选项可以在 LinearModelFit 里被设置,用以对由 FittedModel 对象所得的结果指定默认设置. 这些选项也可以在一个已经建立好的 FittedModel 对象里设置,用以重载最初赋给 LinearModelFit 的选项值.
以下是默认的和均方误差的方差估计:
IncludeConstantBasisLinearOffsetFunctionNominalVariablesWeights 只和拟合过程相关. 在一个已经建立好的 FittedModel 对象里设置这些选项将对结果没有进一步的影响.
模型拟合框架的主要特点是在拟合以后获取结果的能力. 所有这些结果的完整列表可以用 "Properties" 来得到.
采用下面的命令,我们可以得到线性模型的所有属性的数目:
这些属性包括数据、拟合模型和数值结果和诊断的基本信息.
"BasisFunctions"
基函数列表
"BestFit"
拟合函数
"BestFitParameters"
参数估计
"Data"
输入数据或设计矩阵和响应向量
"DesignMatrix"
模型设计矩阵
"Function"
最佳拟合纯函数
"Response"
输入数据的响应值
和数据及拟合函数相关的属性.
"BestFitParameters" 属性给出拟合参数值 {β0,β1,}. "BestFit" 是拟合函数 "Function" 把拟合函数指定为一个纯函数. "BasisFunctions" 给出函数 的列表,其中当模型中有常量时, 为常量1. "DesignMatrix" 是数据的设计矩阵或模型矩阵. "Response" 给出响应列表或者帮助我们从原始数据得到 值.
"FitResiduals"
实际响应和预测响应的差值
"StandardizedResiduals"
拟合残差除以每个残差的标准误差
"StudentizedResiduals"
拟合残差除以每个消除误差估计值
残差类别.
残差给我们提供了在拟合值和初始响应之间的点态差的度量. "FitResiduals" 给我们提供了观测值和拟合值之间的差值{y1-,y2-,}. "StandardizedResiduals""StudentizedResiduals" 是残差的尺度化表示. 第 个标准化残差是 ,其中 是估计误差方差, 是帽子矩阵的第 个对角线元素,而 是第 个数据点的权值. 第 学生化残差采用同样的公式,只是把 (忽略掉第 个数据点的方差估计)来替代.
"ANOVATable"
方差分析表
"ANOVATableDegreesOfFreedom"
方差分析表(ANOVA)中的自由度
"ANOVATableEntries"
表中数值的非格式化数组表示
"ANOVATableFStatistics"
表中的 F 统计量
"ANOVATableMeanSquares"
表中的均方误差
"ANOVATablePValues"
表中的
"ANOVATableSumsOfSquares"
表中的平方和
"CoefficientOfVariation"
响应均值除以估计标准偏差
"EstimatedVariance"
误差方差估计
"PartialSumOfSquares"
当非常量基函数被删除后模型平方和的改变
"SequentialSumOfSquares"
通过分支分割得到的模型平方和
和平方差误差相关的属性.
"ANOVATable" 给出了模型的格式化的方差分析表. "ANOVATableEntries" 给出了表中列出的数值,而另外剩下的 ANOVATable 属性给我们提供了表中的列元素,以便表的每个具体部分都可以在将来的计算中被方便地使用.
以上拟合模型的格式化方差分析表如下所示:
表的均方列元素如下所示:
"CorrelationMatrix"
参数关联矩阵
"CovarianceMatrix"
参数协方差矩阵
"EigenstructureTable"
参数关联矩阵的特征结构
"EigenstructureTableEigenvalues"
表的特征值
"EigenstructureTableEntries"
表中数值的非格式化数组表示
"EigenstructureTableIndexes"
表中的指标值
"EigenstructureTablePartitions"
表中的划分
"ParameterConfidenceIntervals"
参数置信区间
"ParameterConfidenceIntervalTable"
拟合参数的置信区间信息表
"ParameterConfidenceIntervalTableEntries"
表中数值的非格式化数组表示
"ParameterConfidenceRegion"
椭圆参数置信区域
"ParameterErrors"
参数估计的标准误差
"ParameterPValues"
参数 统计量的
"ParameterTable"
拟合参数信息表
"ParameterTableEntries"
表中数值的非格式化数组形式
"ParameterTStatistics"
参数估计的 统计量
"VarianceInflationFactors"
估计参数的膨胀因子列表
参数估计的属性和诊断.
"CovarianceMatrix" 给我们提供了拟合参数之间的协方差. 相应地,矩阵是 ,这里 是方差估计值, 是设计矩阵,而 是权值的对角化矩阵. "CorrelationMatrix" 是参数估计相应的相关矩阵. "ParameterErrors" 相当于协方差矩阵对角线元素的平方根.
"ParameterTable""ParameterConfidenceIntervalTable" 包括单个参数估计,参数的显著性检验和置信区间的信息.
以下有一些数据:
用两个预测变量拟合模型如下:
下面是格式化参数和参数置信区间表:
下面, 我们在表中使用99% 置信区间:
表的估计列相当于 "BestFitParameters". 统计量是除以标准误差后得到的估计值. 每个 值都是 统计量的双侧 值,而且可以用以评价参数估计是否显著地不同于0. 每个置信区间给我们提供了,在由 ConfidenceLevel 选项预订的置信水平上,参数置信区间的上界和下界. 不同的 ParameterTableParameterConfidenceIntervalTable 属性可以用以从表中获得列或非格式化的数值数组.
"VarianceInflationFactors" 可以用来测量基函数间的多重共线性. 第 个膨胀因子相当于,其中 是把第 个基函数拟合成其他基函数的线性函数的变差系数. 采用 IncludeConstantBasis->True 设置时,第一个膨胀因子相应于常数项.
"EigenstructureTable" 给我们提供了非常数基函数的特征值,条件指标和方差划分. 指标列给我们提供了每个特征值和最大特征值之间比率的平方根. 每个基函数的列给我们提供了用相应特征向量解释的基函数中的变差比例. "EigenstructureTablePartitions" 给我们提供了表中所有基函数的方差划分值.
"BetaDifferences"
测量对参数值影响的 DFBETAS 度量
"CatcherMatrix"
捕集矩阵
"CookDistances"
库克距离列表
"CovarianceRatios"
测量观测值影响的 COVRATIO 度量
"DurbinWatsonD"
自相关的杜宾-瓦特森 统计量
"FitDifferences"
测量对预测值影响的 DFFITS 度量
"FVarianceRatios"
测量观测数据影响的 FVARATIO 度量
"HatDiagonal"
帽子矩阵的对角线元素
"SingleDeletionVariances"
忽略第 个数据点的方差估计列表
和影响度量相联系的属性
影响因子的点态度量经常被用于评价每个单独的数据点是否对拟合产生大的影响. 帽子矩阵和捕集矩阵在这样的诊断分析中扮演重要角色. 帽子矩阵是满足 的矩阵 ,此处 是观测到的响应向量 而 是响应向量的预测值. "HatDiagonal" 给我们提供了帽子矩阵的对角线元素. "CatcherMatrix" 是满足 的矩阵 ,此处 是拟合参数向量.
"FitDifferences" 给出 DFFITS值,它提供了用于测量每个数据点对拟合或预测值影响的一个度量. 第 个DFFITS 值由 给出,其中 是第 个帽子对角元素值,而 是第 个学生化残差.
"BetaDifferences" 给出了DFBETAS值,它提供了用于测量每个数据点对于模型参数的影响的一个度量. 对于一个有 个参数的模型来说,"BetaDifferences" 的第 个元素是一个长度为 的列表,其中第 个值给我们提供了数据点 对于模型的第 个参数的影响的测量. 第 "BetaDifferences" 向量可以写成,其中 是捕集矩阵的第 个元素.
"CookDistances" 给我们提供了杠杆值的库克距离. 第 个库克距离由 给出,其中 是第 个标准残差.
"CovarianceRatios" 的第 个元素可以表示为 而第 "FVarianceRatios" 值等于 ,其中 是第 个单删除方差.
杜宾-瓦特森 统计量 "DurbinWatsonD" 用于检验一阶自回归过程的存在性. 统计量相当于 ,其中 是第 个残差.
上面双变量模型的库克距离图示如下:
"MeanPredictionBands"
均值预测的置信带
"MeanPredictionConfidenceIntervals"
均值预测的置信区间
"MeanPredictionConfidenceIntervalTable"
均值预测的置信区间表
"MeanPredictionConfidenceIntervalTableEntries"
表中数值的非格式化数组表示
"MeanPredictionErrors"
均值预测的标准误差
"PredictedResponse"
数据的拟合值
"SinglePredictionBands"
基于单观测值的置信带
"SinglePredictionConfidenceIntervals"
单观测值的预测响应的置信区间
"SinglePredictionConfidenceIntervalTable"
单观测值的预测响应的置信区间表
"SinglePredictionConfidenceIntervalTableEntries"
表中数据的非格式化数组表示
"SinglePredictionErrors"
单观测值的预测响应的标准误差
预测值的属性
置信区间的表格化结果可以用 "MeanPredictionConfidenceIntervalTable""SinglePredictionConfidenceIntervalTable" 得到. 这包括观测到得和预测到的响应值、标准误差估计和每个点的置信区间. 均值预测的置信区间经常被简单称为置信区间. 而单个的预测置信区间经常被称为为预测区间.
均值预测区间给出当预测者固定时响应值 的置信区间,并且由 给出,其中 是学生 分布的 分位数,自由度为 是在固定预测值上计算得到的基本函数构成的向量,而 是参数的估计协方差矩阵. 单个预测区间提供了当预测值固定时,对 值进行预测时的置信区间,并且由 给出,其中 是估计误差方差.
"MeanPredictionBands""SinglePredictionBands" 给出均值和单个预测置信区间的公式,这些公式由预测变量的函数表示.
下面是均值预测表:
如下是 90% 均值预测区间:
"AdjustedRSquared"
根据模型参数数目调整的
"AIC"
Akaike 信息量准则
"BIC"
Bayesian 信息量准则
"RSquared"
决定系数
拟合优度度量
优度检验度量用于评估一个模型拟合的效果或者用于比较模型. 决定系数 "RSquared" 是模型平方和和总平方和之间的比率. "AdjustedRSquared" 用以惩罚模型中所用的参数数目,它可以表示为 .
"AIC""BIC" 是基于似然方法的优度检验度量.两者都等于 乘以模型的对数似然值加上 ,此处 是包括估计方差的需要估计的参数数目. 对于 "AIC" ,而对于 "BIC" .

广义线性模型

线性模型可以被视为具有如下特点的模型:每个响应值 都等于一个服从正态分布的观测值,而该正态分布相应的均值是 . 广义线性模型则扩展成为 的形式,每个 值假定服从一个已知指数族形式的分布,该指数分布相应的均值是 ,而 是指数族支撑上的可逆函数. 这种类型的模型可以通过 GeneralizedLinearModelFit 得到.
GeneralizedLinearModelFit[{y1,y2,},{f1,f2,},x]
获取一个具有基函数 fi 和一个单独的预测变量 x 的广义线性模型
GeneralizedLinearModelFit[{{x11,x12,,y1},{x21,x22,,y2}},{f1,f2,},{x1,x2,}]
获取一个具有多个预测变量 xi 的广义线性模型
GeneralizedLinearModelFit[{m,v}]
基于一个设计矩阵 m 和响应向量 v 获取一个广义线性模型
广义线性模型拟合
可逆函数 被称为链接函数. 而线性组合 则称为线性预测. 常见的特例包括有恒等关联函数和高斯或正态指数族分布的线性回归模型,概率的logit模型和probit模型,用来计数的泊松模型,还有伽马(gamma)和逆高斯模型.
误差方差是预测值 的函数,并且在相差一个被称为扩散参数的常量 的情况下由分布来定义. 我们可以把一个拟合值 的误差方差写作 ,此处 是从观测值和预测到的响应值得到的扩散参数的估计,而 是和在 求值的指数族相关联的方差函数.
下面是一个线性回归模型的拟合:
下面我们对同样的数据进行正则伽马回归模型的拟合:
下面是模型的函数形式:
Logit和probit模型是常见的概率二项模型. logit模型的链接函数是 而probit模型的链接是标准正态分布 的逆累积分布函数. 这种类型的模型可以通过GeneralizedLinearModelFit 利用ExponentialFamily->"Binomial" 和合适的 LinkFunction 或者通过 LogitModelFitProbitModelFit 进行拟合.
LogitModelFit[data,funs,vars]
获取一个具有基本函数 funs 和预测变量 vars 的 logit 模型
LogitModelFit[{m,v}]
获取一个基于设计矩阵 m 和响应向量 v 的 logit 模型
ProbitModelFit[data,funs,vars]
获取一个对 data 进行拟合的 probit 模型
ProbitModelFit[{m,v}]
获取一个对设计矩阵 m 和响应向量 v 进行拟合的 probit 模型
Logit 和 probit 模型拟合.
参数估计可以通过迭代重加权最小二乘算法获取,这里的权重可以通过设定的分布的方差函数获取. GeneralizedLinearModelFit 的选项包括:用于迭代拟合的选项(比如 PrecisionGoal )、用于模型描述的选项(比如 LinkFunction )和用于进一步分析的选项(比如 ConfidenceLevel ).
选项名
默认值
AccuracyGoalAutomatic
目标准确度
ConfidenceLevel95/100
参数和预测所用的置信水平
CovarianceEstimatorFunction"ExpectedInformation"
参数协方差矩阵的估计方法
DispersionEstimatorFunctionAutomatic
用以估计扩散参数的函数
ExponentialFamilyAutomatic
y 的指数族分布
IncludeConstantBasisTrue
是否要包括常量基函数
LinearOffsetFunctionNone
在线性预测子里的已知偏移量
LinkFunctionAutomatic
模型的链接函数
MaxIterationsAutomatic
需要使用的最大迭代次数
NominalVariablesNone
名义变量或分类变量
PrecisionGoalAutomatic
目标精确度
WeightsAutomatic
数据元素的权值
WorkingPrecisionAutomatic
内部计算所用的精确度
LogitModelFitProbitModelFit 的选项和 GeneralizedLinearModelFit 的相同,除了 ExponentialFamilyLinkFunction. 这些是由 logit 模型或 probit 模型定义的,所以不是 LogitModelFitProbitModelFit 的选项.
ExponentialFamily 可以是 "Binomial""Gamma""Gaussian""InverseGaussian""Poisson" 或是"QuasiLikelihood". 二项模型对于从0 到 1 的响应是有效的. 泊松模型对于非负整数响应是有效的. 高斯或正态模型对于实响应是有效的. 伽马模型和逆高斯模型对于正响应是有效的. 拟似然模型用方差异函数 的形式定义了一个分布结构,使得对第 个数据点的拟似然函数的对数值由 给出. 对于一个"QuasiLikelihood" 模型的方差函数可以通过ExponentialFamily->{"QuasiLikelihood", "VarianceFunction"->fun} 用选项的形式来设定,这里 fun 是一个将被用于拟合值的纯函数.
DispersionEstimatorFunction 定义了一个用于估计扩散参数 的函数. 估计值 与线性和非线性回归模型中的 相似.
ExponentialFamilyIncludeConstantBasisLinearOffsetFunctionLinkFunctionNominalVariablesWeights 都定义了模型结构和优化标准的一些方面,并且只能在 GeneralizedLinearModelFit 范围内被设定. 所有其他选项可以或者在 GeneralizedLinearModelFit 里被设定,或者当取得结果和诊断时被传递给 FittedModel 对象来设定. 在计算 FittedModel 对象时设置的选项优先于在拟合时给 GeneralizedLinearModelFit 的设置.
下面给出在伽马模型中参数的 95% 和 99% 置信区间:
"BasisFunctions"
基函数列表
"BestFit"
拟合函数
"BestFitParameters"
参数估计
"Data"
输入数据或者设计矩阵和响应向量
"DesignMatrix"
模型的设计矩阵
"Function"
最佳拟合纯函数
"LinearPredictor"
拟合线性组合
"Response"
输入数据里的响应值
与数据和拟合函数有关的属性
"BestFitParameters" 对基函数给出参数估计. "BestFit" 给出拟合函数 ,而 "LinearPredictor" 给出线性组合 . "BasisFunctions" 给出函数 的列表,其中当模型中有常量时, 为常量1. "DesignMatrix" 是基本函数的设计矩阵或模型矩阵.
"Deviances"
偏差
"DevianceTable"
偏差表
"DevianceTableDegreesOfFreedom"
表中的自由度差
"DevianceTableDeviances"
表中的偏差差值
"DevianceTableEntries"
表中数据的非格式化数组表示
"DevianceTableResidualDegreesOfFreedom"
表中的残差自由度
"DevianceTableResidualDeviances"
表中的残差偏差
"EstimatedDispersion"
估计的扩散参数
"NullDeviance"
空(null)模型偏差
"NullDegreesOfFreedom"
空(null)模型自由度
"ResidualDeviance"
模型偏差和null偏差的差值
"ResidualDegreesOfFreedom"
模型自由度和null自由度的差值
扩散和模型偏差有关的属性.
偏差和偏差表是对线性模型中的方差分析所给出的模型分解的推广. 一个单独的数据点的偏差是 ,其中 是拟合模型的对数似然函数. "Deviances" 给出所有数据点的偏差值列表. 而所有偏差值的和就是模型偏差. 模型偏差可以被分解,如同线性模型的方差分析表(ANOVA table)中的平方和那样. 完全模型是预测值与数据相同的模型.
下面是一些有两个预测变量的数据:
以下对数据进行逆高斯模型的拟合:
以下是模型的偏差表:
同平方和一样,偏差是可加的. 表的偏差列告诉我们当加入给定的基函数时,模型偏差的增加值. 残差偏差列告诉我们模型偏差和包括表中前面所有项的子模型的偏差的差值. 对于大的样本,偏差增加值基本上近似于 分布,其自由度等于表中基函数的自由度.
"NullDeviance" 是空(null)模型中的偏差,常量模型等于包括一个常量的模型所有观测到的响应值的均值,或者如果没有包含常量项的话,其等于.
"ANOVATable" 一样,我们提供一系列的属性以便于从 "DevianceTable" 中获取列值或非格式化数组表示的表格数据.
"AnscombeResiduals"
站点残差
"DevianceResiduals"
偏差残差
"FitResiduals"
实际响应和预测响应的差值
"LikelihoodResiduals"
似然残差
"PearsonResiduals"
皮尔森残差
"StandardizedDevianceResiduals"
标准偏差残差
"StandardizedPearsonResiduals"
标准化皮尔森残差
"WorkingResiduals"
工作残差
残差类型.
"FitResiduals" 是残差(观测值和预测值的差值)列表. 在给定的分布假设下,残差的大小是作为预测响应值的函数改变的. 广义线性模型的分析中使用了各种类型的尺度化的残差.
如果 是第 个数据点的偏差和残差,则第 个偏差残差由 给出. 第 个皮尔逊残差被定义为 ,其中 是指数族分布的方差函数. 标准偏差残差和标准皮尔森残差包括除以 , 其中 是帽子矩阵的第 个对角线元素. "LikelihoodResiduals" 值把偏差和皮尔森残差组合起来. 第 个似然残差可以表示为.
"AnscombeResiduals" 给我们提供了将残差正态化的一种转变, 所以可以预期这些残差的概率图大致看起来像白噪声. 第 个站点残差可以写作 .
"WorkingResiduals" 给出从迭代拟合最后一步得到的残差. 第 个工作残差可以从 取值得到.
下面是逆高斯模型的残差和站点残差图:
"CorrelationMatrix"
渐近参数相关矩阵
"CovarianceMatrix"
渐近参数协方差矩阵
"ParameterConfidenceIntervals"
参数置信区间
"ParameterConfidenceIntervalTable"
拟合参数置信区间表
"ParameterConfidenceIntervalTableEntries"
表中数值的非格式化数组表示
"ParameterConfidenceRegion"
椭圆参数置信区域
"ParameterTableEntries"
表中数值的非格式化数组表示
"ParameterErrors"
参数估计的标准误差
"ParameterPValues"
参数 统计量的
"ParameterTable"
拟合参数信息表
"ParameterZStatistics"
参数估计的 统计量
参数估计的属性和诊断.
"CovarianceMatrix" 给我们提供了拟合参数间的协方差,其和线性模型中的定义十分相似. 在CovarianceEstimatorFunction->"ExpectedInformation" 设置下,启用从迭代拟合得到的预期信息量矩阵. 该矩阵为 ,其中 是设计矩阵而 是从最后一步拟合得到的权值对角矩阵. 这些权值既包括由Weights 选项描述的权值也包括与分布的方差函数相关的权值. 采用 CovarianceEstimatorFunction->"ObservedInformation" 设置时,矩阵由 给出,其中 是观察到的 Fisher 信息量矩阵,该矩阵是和模型参数有关的对数似然函数的Hessian矩阵.
"CorrelationMatrix" 是和参数估计相关的相关系数矩阵. "ParameterErrors" 和协方差矩阵的对角线元素的平方根等价. "ParameterTable""ParameterConfidenceIntervalTable" 包含单个参数估计,参数检验的显著性,以及置信区间的信息. 对于广义线性模型的测试统计量来说,渐近地服从正态分布.
"CookDistances"
list of Cook distances
"HatDiagonal"
diagonal elements of the hat matrix
和影响度量相关联的属性.
"CookDistances""HatDiagonal" 把杠杆度量从线性回归扩展到广义线性模型. 用来获取对角线元素的帽子矩阵采用迭代拟合的最终权值来定义.
对杠杆值的库克距离度量的定义和线性回归类似,除了把标准化残差用标准化皮尔森残差取代. 第 个库克距离可以表示为 ,其中 是第 个标准化皮尔森残差.
"PredictedResponse"
数据拟合值
预测值的属性.
"AdjustedLikelihoodRatioIndex"
BenAkiva 和 Lerman 调整似然比指标
"AIC"
赤池信息量准则(AIC)
"BIC"
贝叶斯信息量准则(BIC)
"CoxSnellPseudoRSquared"
Cox 和 Snell 伪
"CraggUhlerPseudoRSquared"
Cragg 和 Uhler 伪
"EfronPseudoRSquared"
Efron 伪
"LikelihoodRatioIndex"
McFadden 似然比指标
"LikelihoodRatioStatistic"
似然比
"LogLikelihood"
拟合模型的对数似然值
"PearsonChiSquare"
皮尔森 统计量
拟合优度度量.
"LogLikelihood" 是拟合模型的对数似然值. "AIC""BIC" 是被惩罚的对数似然度量方法 , 其中 是拟合模型的对数似然值, 是估计参数数目(包括了扩散参数),对于一个有 个数据点的模型来说,对 "AIC" ,而对 "BIC". "LikelihoodRatioStatistic" 给出,其中 是空(null) 模型的对数似然值.
许多优度检验方法把 从线性回归推广为或是可解释变差的度量,或是一个基于似然方法的度量. "CoxSnellPseudoRSquared" 给出. "CraggUhlerPseudoRSquared" 是 Cox 和 Snell 度量的尺度化版本 . "LikelihoodRatioIndex" 包含了对数似然比 , 而 "AdjustedLikelihoodRatioIndex" 利用惩罚参数数目来调整 . "EfronPseudoRSquared" 利用 的平方和解释,并且可以表示为 ,其中 是第 个残差而 是响应 的均值.
"PearsonChiSquare" 等于 , 其中 是皮尔森残差.

非线性模型

一个非线性最小二乘模型是线性模型的一个扩展,这里模型可以不是基函数的线性组合. 误差仍然可以假设为独立和呈正态分布的. 这种类型的模型可以用 NonlinearModelFit 函数拟合.
NonlinearModelFit[{y1,y2,},form,{β1,},x]
获取一个具有包含参数 βi 的函数 form 和一个单参数预测变量 x 的非线性模型
NonlinearModelFit[{{x11,,y1},{x21,,y2}},form,{β1,},{x1,}]
获取一个作为具有多个预测变量 xi 的函数的非线性模型
NonlinearModelFit[data,{form,cons},{β1,},{x1,}]
获取一个受 cons 约束的非线性模型
非线性模型拟合.
非线性模型的形式为 ,其中 是拟合或预测值, 是要拟合的参数,而 是预测变量. 与任何非线性优化问题相同,有必要对参数选择一个良好的初始值. 我们可以设置一个和 FindFit 的参数指定相同的初始值.
对一个平方根数列进行非线性模型的拟合:
在这里,我们还提供了用于模型拟合和模型分析的选项.
选项名
默认值
AccuracyGoalAutomatic
目标准确度
ConfidenceLevel95/100
用于参数和预测的置信水平
EvaluationMonitorNone
每次 expr 被计算时都要计算的表达式
MaxIterationsAutomatic
所用的最大迭代次数
MethodAutomatic所用的方法
PrecisionGoalAutomatic
目标精确度
StepMonitorNone
每采取一个步骤时都要计算的表达式
VarianceEstimatorFunctionAutomatic
估计误差方差的函数
WeightsAutomatic
数据元素的权重
WorkingPrecisionAutomatic
用于内部计算的精确度
一般数值选项比如 AccuracyGoalMethodWorkingPrecisionFindFit 相同.
Weights 选项用于指定加权线性回归里的权值. 最优拟合是针对一个误差加权平方和的.
所有其他选项和初拟合后结果的计算相关. 可以在 NonlinearModelFit 里设置,用于拟合过程及对从FittedModel 对象得到的结果设置默认值. 这些选项页可以在一个已经建立好的 FittedModel 对象里设置,用以重载最初赋给 NonlinearModelFit 的选项值.
"BestFit"
拟合函数
"BestFitParameters"
参数估计
"Data"
输入数据
"Function"
最佳拟合纯函数
"Response"
输入数据的响应值
和数据以及拟合函数相关的属性.
数据和非线性模型的拟合函数的基本属性和线性及广义线性模型的相同属性具有相同的行为特点,不同的是正如 FindFit 的结果一样 "BestFitParameters" 返回一个规则.
下面提供了拟合函数和参数估计的规则:
非线性模型的许多诊断扩展或推广了线性回归的概念. 这些扩展经常依赖于线性近似或大样本近似.
"FitResiduals"
实际响应和预测响应间的差值
"StandardizedResiduals"
拟合残差除以每个残差的标准误差
"StudentizedResiduals"
拟合残差除以单消除误差估计
残差类别.
和线性回归中一样,"FitResiduals" 给我们提供了观测值和预测值之间的差值 ,并且, "StandardizedResiduals""StudentizedResiduals" 是这些差值的尺度化表示.
个标准化残差是 ,其中 是估计误差方差, 是帽子矩阵的第 个对角线元素,而 是第 个数据点的权值,而第 个学生化残差可以用第 个单消除方差 取代 得到. 对于非线性模型,一个一级近似被用于设计矩阵,该矩阵是计算帽子矩阵所需要的.
"ANOVATable"
方差分析表
"ANOVATableDegreesOfFreedom"
方差分析表中的自由度
"ANOVATableEntries"
表中数值的非格式化表示
"ANOVATableMeanSquares"
表中的均方误差
"ANOVATableSumsOfSquares"
表中的平方和
"EstimatedVariance"
误差方差估计
和误差平方和相关的属性.
"ANOVATable" 对于可归结于拟合函数和误差或残差的数据提供了一种变差分解.
下面是非线性模型的方差分析表(ANOVA table):
未改正的平方和的总和给我们提供了响应平方和,而改正后的总和给我们提供了响应和其平均值差值的平方和.
"CorrelationMatrix"渐近参数相关系数矩阵
"CovarianceMatrix"
渐近参数协方差矩阵
"ParameterBias"
参数估计的估计偏移量
"ParameterConfidenceIntervals"
参数置信区间
"ParameterConfidenceIntervalTable"
拟合参数置信区间表
"ParameterConfidenceIntervalTableEntries"
表中数值的非格式化数组表示
"ParameterConfidenceRegion"
椭圆参数置信区域
"ParameterErrors"
参数估计的标准误差
"ParameterPValues"
参数 统计量的
"ParameterTable"
拟合参数信息表
"ParameterTableEntries"
表中数值的非格式化数组表示
"ParameterTStatistics"
参数估计的 统计量
参数估计的属性和诊断.
"CovarianceMatrix" 给我们提供了拟合参数间的近似协方差. 矩阵表示为 ,其中 是方差估计, 是模型线性近似的设计矩阵,而 是权值的对角矩阵. "CorrelationMatrix" 是参数估计的关联相关矩阵. "ParameterErrors" 相当于协方差矩阵的对角线元素的平方根.
"ParameterTable""ParameterConfidenceIntervalTable" 包含单个参数估计,参数显著性测试,以及用误差估计所取得的置信区间的所有信息.
"CurvatureConfidenceRegion"
曲率诊断的置信区域
"FitCurvatureTable"
曲率诊断表
"FitCurvatureTableEntries"
表中数据相应的非格式化数组
"MaxIntrinsicCurvature"
最大内在曲率的度量
"MaxParameterEffectsCurvature"
最大参数效果曲率的度量
曲率诊断.
用于许多诊断的一级近似和具有线性参数的模型是等价的. 如果接近参数估计值的参数空间足够平,那么线性近似和任何依赖于一级近似的结果都可以被视为合理的. 曲率诊断被用于评价线性近似是否合理. "FitCurvatureTable" 给我们提供了一个曲率诊断表格.
"MaxIntrinsicCurvature""MaxParameterEffectsCurvature" 是参数空间在最佳参数值附近的法向和切向曲率的尺度化度量. "CurvatureConfidenceRegion" 是参数空间在最佳参数值附近的曲率半径的尺度化度量. 如果法向和切向曲率相对于 "CurvatureConfidenceRegion" 的值都较小的话,线性近似可以被认为是合适的. 有些经验法则建议直接和 "CurvatureConfidenceRegion" 值进行比较,而另一些则建议和该值的一半进行比较.
上面非线性模型的曲率表如下:
"HatDiagonal"
帽子矩阵的对角元素
"SingleDeletionVariances"
忽略第 个数据点的方差估计列表
和影响度量相联系的属性.
帽子矩阵是满足 的矩阵 ,其中 是观测到得响应向量,而 是预测到得响应向量. "HatDiagonal" 给我们提供了帽子矩阵的对角线元素. 和其他属性相同, 采用模型的线性近似的设计矩阵.
"SingleDeletionVariances" 的第 个元素相当于 ,其中 是数据点的数目, 是参数数目, 是帽子矩阵的第 个对角元, 是整个数据集的方差估计,而 是第 个残差.
"MeanPredictionBands"预测均值的置信带
"MeanPredictionConfidenceIntervals"
预测均值的置信区间
"MeanPredictionConfidenceIntervalTable"
预测均值置信区间表
"MeanPredictionConfidenceIntervalTableEntries"
表中数据的非格式化数组表示
"MeanPredictionErrors"
预测均值的标准差
"PredictedResponse"
数据的拟合值
"SinglePredictionBands"
基于单个观测值的置信带
"SinglePredictionConfidenceIntervals"
单个观测值的预测响应的置信区间
"SinglePredictionConfidenceIntervalTable"
单个观测值的预测响应的置信区间表
"SinglePredictionConfidenceIntervalTableEntries"
表中数据的非格式化数组表示
"SinglePredictionErrors"
单个的观测值的预测响应的标准差
预测值的属性
置信区间的结果的表格由"MeanPredictionConfidenceIntervalTable""SinglePredictionConfidenceIntervalTable" 给出. 这些结果和通过LinearModelFit 求得的线性模型的结果类似,对于设计矩阵,同样采用一级近似.
"MeanPredictionBands""SinglePredictionBands" 为我们提供了预测变量的函数.
我们可以用以下方法求得拟合函数和均值预测带:
拟合曲线和置信带如下图所示:
"AdjustedRSquared"
对参数数目进行调整了的
"AIC"
Akaike 信息量准则
"BIC"
Bayesian 信息量准则
"RSquared"
决定系数
拟合优度度量.
"AdjustedRSquared""AIC""BIC""RSquared" 都是线性模型中度量的直接延伸. 决定系数 "RSquared",其中 是残差平方和, 是未修正的总平方和. 非线性模型的决定系数不象在线性模型中那样被解释成为解释方差的百分比,因为模型的平方和加上残差的平方和不一定等于总平方和. "AdjustedRSquared" 用以惩罚模型中所用的参数数目,其可以表示为 .
"AIC""BIC" 等于 乘以模型的对数似然值加上 ,其中 是包括估计方差的需要估计的参数数目. 对于 "AIC",而对于 "BIC".
近似函数和插值
在各种数值计算中,引入近似函数是很方便的. 近似函数可以看作近似实数的推广. 近似实数给出单个数值量的某种精度的值. 而近似函数给出单参数或多参数的量的某种精度的值. 例如,Wolfram 语言使用近似函数表示由 NDSolve 获得的微分方程的数值解,如 "微分方程的数值解" 中所述.
Wolfram 语言中的近似函数用 InterpolatingFunction 对象表示. 这些对象如同 "纯函数" 讨论的纯函数一样运行. 基本思想是当给定自变量的值时,该 InterpolatingFunction 对象求对应的近似函数值.
InterpolatingFunction 对象包含以插值为基础的近似函数表示. 其可以包含一系列点处的函数和导数值. 它假定函数在这些点之间是光滑的. 因此,在求特定自变量点处的函数时,InterpolatingFunction 对象用插值法求近似函数.
Interpolation[{f1,f2,}]
构造一个近似函数使得在连续整数点处取值 fi
Interpolation[{{x1,f1},{x2,f2},}]
构造一个近似函数使得在点 xi 处取值 fi
构造近似函数.
这里是 sine 函数的值表:
这里构造表示上述值的近似函数:
该近似函数生成原数据表中的每个值:
也能得到其他点处的近似值:
此情形插值是 sine 函数的相当好的近似:
可以像使用 Wolfram 语言中的其他函数一样使用近似函数. 可以画近似函数的图形,进行积分或求根等数值运算.
如果给出非数值的自变量,近似函数给出符号形式的结果:
以下是近似函数的数值积分:
以下是真实 sine 函数的数值积分:
近似函数的图形与真实 sine 函数的图形基本上是一样的:
如果对近似函数求导,Wolfram 语言将返回表示导数的另一个近似函数.
以下求近似函数的导数,并求导数在 处的值:
该结果与导数值很接近:
InterpolatingFunction 对象包含 Wolfram 语言所需的近似函数的所有信息. 然而在标准 Wolfram 语言输出格式中,仅明显给出 InterpolatingFunction 对象的定义域. 该 InterpolatingFunction 对象中实际的参数列表只用一对括号表示.
在标准输出格式中,仅明显给出 InterpolatingFunction 对象的定义域和输出类型:
如果求定义域外的值,Wolfram 语言给出一个警告,然后使用外插值求出结果:
给出的函数信息越多,Wolfram 语言构造的近似函数就越好. 例如,在一个点的序列上,不仅给出函数值,也给出导数值.
Interpolation[{{{x1},f1,df1,ddf1,},}]
构造在点 xi 处有指定导数的近似函数
构造具有指定导数的近似函数.
以下对一个sine函数以及一阶导数使用线性插值:
以下对导数寻找比前面使用的插值更好的近似:
Interpolation 给出指定点的插值多项式曲线. 使用选项 InterpolationOrder 可以指定多项式的次数. 缺省值是 InterpolationOrder->3,产生三次曲线.
以下产生一个 Cosine 函数的值表:
对表中的值使用线性插值建立近似函数:
近似函数由直线段组成:
在缺省设置 InterpolationOrder->3 下,使用三次曲线,函数看起来很光滑:
提高 InterpolationOrder 对插值多项式的次数的设置可以使近似函数更光滑. 但是如果次数太高,可能产生摆动.
ListInterpolation[{{f11,f12,},{f21,},}]
用二维整数点网格处的值构造近似函数
ListInterpolation[list,{{xmin,xmax},{ymin,ymax}}]
假定列表值来自于指定定义域上的均匀空间网格处
ListInterpolation[list,{{x1,x2,},{y1,y2,}}]
假定列表值来自于指定网格线上的网格处
多维数据组的插值.
以下对整数网格点上的数值数组进行插值:
这是其在特定点处的值:
这是另一个数值数组:
要对该数组进行插值,必须明显告诉 Wolfram 语言的定义域:
ListInterpolation 对任意维数的数组都有效. 在各种情形下,其生成一个具有适当的自变量个数的InterpolatingFunction 对象.
以下对三维数组进行插值:
产生的 InterpolatingFunction 对象具有三个自变量:
Wolfram 语言不仅能处理纯数值近似函数,也能处理包含符号参数的近似函数.
以下生成一个依赖于参数 abInterpolatingFunction
以下显示了在 2.2 处插值值如何依赖于参数:
InterpolationOrder 的缺省值下,在该点处的值不再依赖于 a
使用近似函数,经常得出 InterpolatingFunction 对象的复杂组合. 可以告诉 Wolfram 语言通过使用FunctionInterpolation 可以生成特定定义域上有效的单个 InterpolatingFunction 对象.
以下生成一个在 0 到 1 中有效的新的 InterpolatingFunction 对象:
这是生产一个嵌套 InterpolatingFunction 对象:
以下生成一个纯二维 InterpolatingFunction 对象:
FunctionInterpolation[expr,{x,xmin,xmax}]
通过计算 exprxxminxmax 的值
FunctionInterpolation[expr,{x,xmin,xmax},{y,ymin,ymax},]
构造多维近似函数
通过计算表达式构造近似函数.
离散傅立叶变换
分析各种数据的一个常见运算是求值列表的傅立叶变换或频谱分析. 基本思想是要提取具有特定频率或频率范围的数据成分.
Fourier[{u1,u2,,un}]
离散傅立叶变换
InverseFourier[{v1,v2,,vn}]
离散傅立叶反变换
离散傅立叶变换.
以下是相应于方形脉冲的数据:
以下是该数据的傅立叶变换,其包含复数:
以下是傅立叶反变换:
不论给出的数据列表的长度是否是2的整数幂,Fourier 都能有效处理:
以下生成一个长度为 200 的列表,其包含着一个带有随机噪声的周期信号:
如果直接画出其图形,可看出数据是相当随机的:
傅立叶变换显示在 处有一个强峰,在 处有一个对称的峰,反映出原信号在 附近的频率成分:
在 Wolfram 语言中,长为 的列表 的离散傅立叶变换 缺省地定义为 . 注意零频率项出现在结果列表中的第一个位置.
长为 的列表 的离散傅立叶变换 缺省地定义为 .
在不同的学科中,定义离散傅立叶变换有不同规定. 选项 FourierParameters 允许用户选择任何一种规定.
常见规定
设置
离散傅立叶变换
离散傅立叶反变换
Wolfram 语言默认
{0,1}
数据分析
{-1,1}
信号处理
{1,-1}
一般情况
{a,b}
具有不同规定的 FourierParameters 的典型设置.
Fourier[{{u11,u12,},{u21,u22,},}]
二维离散傅立叶变换
二维离散傅立叶变换.
Wolfram 语言可以求任意维数的数据的傅立叶变换. 对于 维,数据由嵌套 层的列表指定. 二维傅立叶变换常用于图像处理中.
对于实数,通常所用的离散傅立叶变换有一个问题就是结果是复数值. 我们有产生实数结果的不同的实离散傅立叶变换. Wolfram 语言有用来计算离散余弦变换和离散正弦变换的命令.
FourierDCT[list]
由实数组成的列表的傅立叶离散余弦变换
FourierDST[list]
由实数组成的列表的傅立叶离散正弦变换
离散实傅立叶变换.
以下是相应于方形脉冲的数据:
这是数据的傅立叶离散余弦变换:
这是数据的傅立叶离散正弦变换:
我们有4种傅立叶离散正弦和余弦变换可使用,分别使用数字或类型2的离散余弦变换的"DCTII"中的罗马数字表示.
FourierDCT[list,m]
类型为 m 的傅立叶离散余弦变换
FourierDST[list,m]
类型为 m 的傅立叶离散正弦变换
不同类型的离散实傅立叶变换.
缺省值是关于 FourierDCTFourierDST 的类型 2.
Wolfram 语言不需要 InverseFourierDCT 或者 InverseFourierDST 函数,由于 FourierDCTFourierDST 在使用合适的类型时是其自身的反函数. 类型 1、2、3、4 的反变换分别是类型 1、3、2、4.
检查类型 3 变换是类型 2 变换的反变换:
离散实变换对于数据或图像压缩来说是方便的.
这是看起来可能像正面或边界的数据:
离散余弦变换具有前面一些模式的绝大部分信息:
仅从前面的 20 个模式(原始数据大小的 1/10)重建正面. 振动是由于舍位造成的,并且也会出现在图像处理的应用中:
卷积和相关
卷积和相关是多种数据列表运算的核心. 其被用于信号和图像处理,统计数据分析,偏微分方程的近似,以及数列和幂级数的运算等领域.
卷积和相关的基本思想是将列表依次与数据列表的子列表进行组合. 核 与列表 的卷积的一般形式为 ,而相关的一般形式为 .
ListConvolve[kernel,list]
构造 kernellist 的卷积
ListCorrelate[kernel,list]
构造 kernellist 的相关
列表的卷积和相关.
以下构造核 {x,y} 与数据列表的卷积:
以下构造相关:
此情形中颠倒核元素的次序得出与卷积 ListConvolve 相同的结果:
以下构造数据的依次相减:
在与一个核结合构造子列表中,在数据列表的末尾总有一个事情要做. 缺省时,ListConvolveListCorrelate 绝不会构造延伸数据列表的末端的子列表. 这意味着得到的输出通常比原数据列表短.
此例中,输入列表长度是 6,而输出的长度是 4:
实际上,人们常常希望得到与原数据列表一样长的输出. 要做到这一点,需要包含延伸原数据列表一端或两端的子列表. 构造这些子列表所需的额外元素必须用某种补丁来填充. 缺省时,Wolfram 语言取原列表的拷贝作为补丁. 这样将列表周期地进行处理.
ListCorrelate[kernel,list]
不允许在两边延伸(结果比 list 短)
ListCorrelate[kernel,list,1]
允许在右边延伸(结果与 list 的长度相同)
ListCorrelate[kernel,list,-1]
允许在左边延伸(结果与 list 的长度相同)
ListCorrelate[kernel,list,{-1,1}]
允许在两边延伸(结果比 list 长)
ListCorrelate[kernel,list,{kL,kR}]
允许在左边和右边进行特定的延伸
控制数据列表末端的处理方式.
缺省时不包含延伸:
此处最后一个元素的最后一项来自原列表的开头:
此处第一个元素的第一项和最后一个元素的最后一项都包含重叠:
一般情况下,ListCorrelate[kernel,list,{kL,kR}] 被设置为结果的第一个元素中包含 list 的第一个元素与 kernel 在位置 kL 处的元素的乘积,结果的最后一个元素中包含 list 的最后一个元素与 kernel 在位置 kR 处的元素的乘积. 缺省情形下,不允许在任何一端有延伸,因此对应于 ListCorrelate[kernel,list,{1,-1}].
对长度为3的核,{-1,2} 总是使结果的第一个和最后一个元素相同:
对于多种数据,不假定数据是周期的,而用某个固定元素,如零或某个元素序列在列表的每端进行补充常常是很方便的.
ListCorrelate[kernel,list,klist,p]
用元素 p 补充
ListCorrelate[kernel,list,klist,{p1,p2,}]
pi 的循环进行补充
ListCorrelate[kernel,list,klist,list]
用原数据的循环进行补充
数据列表补充的控制.
以下用元素 p 补充:
一个常见的情况是用零补充:
当使用 {p,q} 表明补充操作时,列表 {a,b,c} 用在 a 下对齐的 p 覆盖 {,p,q,p,q,}
选择不同的核能使 ListConvolveListCorrelate 用于不同类型的运算.
以下求数据的移动平均值:
这是一个高斯核:
以下生成部分 数据
这是该数据的图形:
求高斯核与该数据的卷积:
结果是该数据得到了磨光:
可以使用 ListConvolveListCorrelate 处理符号和数值数据.
以下构造两个符号列表的卷积:
其结果精确地对应于这两个多项式乘积展开形式中的系数:
ListConvolveListCorrelate 对任意维数的数据都有效.
这是从一个文件中导入图像数据:
以下是该图像:
以下求图像数据与二维核的卷积:
以下显示了对应于数据卷积德图像:
元胞自动机
元胞自动机提供了一个方便的方式来表示多种系统,其中数组中的元胞值根据一个局部规则在离散步中更新.
CellularAutomaton[rnum,init,t]
产生一个元胞自动机的演化.
从给定的列表开始,然后在 4 步内演化规则 30:
以下显示从随机初始条件开始,规则 30 演化的 100 步:
{a1,a2,}
ai 的明确列表
{{a1,a2,},b}
在一个 b 背景(background)上叠加的值 ai
{{a1,a2,},blist}
在重复的 blist 的背景上叠加的值 ai
{{{{a11,a12,},{d1}},},blist}
偏移量为 di 的值 aij
指明一维元胞自动机的初始条件的方式.
如果用户给出初始值的明确列表,CellularAutomaton 将使该列表中的元素对应于系统中的所有元胞,并循环放置.
末端元胞的右邻为开头的元胞:
在叠加在恒定的背景上的小种子范围中建立初始条件往往是方便的. 默认情况下,CellularAutomaton 自动在足够的背景中填充,以覆盖在指定的演化步骤中可以产生的模式大小.
以下显示从包含单个黑色元胞的初始条件开始的规则 30 演化:
以下显示在重复的 {1,0,1,1} 块的背景上从包含 {1,1} 的种子的初始条件开始演化的规则 30:
特别地,当研究结构之间的相互作用时,用户可能有时候想要指定这样的元胞自动机的初始条件,即该元胞自动机中的某些块按特定的偏移位置放置.
以下使用偏移量为 的黑色元胞建立初始条件:
n
,基本规则
{n,k}
具有 k 个颜色的一般最近邻规则
{n,k,r}
具有 k 种颜色和范围 r 的一般规则
{n,{k,1}}
k-色最近邻总和规则
{n,{k,1},r}
k-色范围 r 总和规则
{n,{k,{wt1,wt2,}},r}
邻居 i 被赋于权重 wti 的规则
{n,kspec,{{off1},{off2},,{offs}}}
具有指定偏移量的邻居的规则
{lhs1->rhs1,lhs2->rhs2,}
邻居列表的明确替换
{fun,{},rspec}
通过对每个邻居列表应用函数 fun 获取的规则
指定一维元胞自动机的规则.
在最简单的情况下,一个元胞自动机对每个元胞允许 k 个可能的值或者颜色,并且具有在每边至多有 r 个邻居的规则. 规则号码 n 的数位则指定对于邻居的每个可能的配置,新的元胞应该是什么颜色的.
以下在 1 步内演化单个邻居:
这是对于一个 元胞自动机的8个可能的邻居:
以下显示 8 个邻居中每个的中间元胞的新颜色:
对于规则 30,这个序列对应于数字 30 的以 2 为基的数字:
以下使用规则号码 921408 运行一般 规则:
对于一般元胞自动机规则,规则号码的每个数位指定了 个元胞组成的不同可能的邻居应该产生的颜色. 要找到哪个数位都对应于哪个邻居,实际就是把邻居中的元胞作为号码中的数位来处理. 对于一个 元胞自动机,号码是通过 neig.{k^2,k,1} 从邻居中的元素 neig 的列表中得到.
有时候,考虑总和元胞自动机是方便的,其中每个元胞的新值仅取决于它的邻居的总和. 用户可以通过规则号码或者代码来指定总和元胞自动机,代码的每个数位表示给定总值的邻居. 该总值,举例来说,可以从 neig.{1,1,1} 得到.
一般来说,CellularAutomaton 允许用户使用任意权重序列指定规则. 另外一个有时候也比较方便的选择是 {k,1,k},它产生外层总和规则.
以下使用代码号 867 运行 的总和规则:
具有范围 的规则包含所有偏移量从 的元胞. 有时候,仅仅考虑具有指定偏移量的元胞的规则是方便的. 用户可以使用偏移量列表替换单个 来实现.
任意 元胞自动机规则可以看作是对应于一个布尔函数. 在最简单的情况下,基本布尔函数如 And 或者 Nor 具有两个变量. 这在元胞自动机规则中方便地指定为偏移量 {{0},{1}}. 注意,为了与处理高维元胞自动机兼容,偏移量必须总是在列表中给出,即使对于一维元胞自动机也是如此.
以下生成 2-元胞-邻居规则号码7的真值表,结果实际上是布尔函数 Nand:
规则号码提供了相当紧凑的方式来指定元胞自动机规则. 但是有时候,通过给出应用于每个可能邻居的一个明确函数来指定规则更加方便.
以下运行一个加法元胞自动机,其规则是将每个邻居的值相加模 4:
对于该函数给出步数作为第二个变量:
当用户使用函数指定规则时,元胞值不必是整数:
它们甚至可以是符号化的:
CellularAutomaton[rnum,init,t]
演化 t 步,保留所有步骤
CellularAutomaton[rnum,init,{{t}}]
演化 t 步,只保留最后一步
CellularAutomaton[rnum,init,{spect}]
只保留由 spect 指定的步骤
CellularAutomaton[rnum,init]
将规则演化一步,只给出最后一步
选择保持哪些步骤.
以下将规则 30 运行 5 步,只保留最后一步:
以下保持最后两步:
以下给出一步:
步规格 spect 的工作方法与使用 Take 从列表中提取元素很类似. 但是,一个不同之处是元胞自动机的初始条件被认为是第0 步. 注意,形如 {} 的任意步规格必须包含在另外一个列表中.
u
0 步到第 u
{u}
u
{u1,u2}
u1 步到第 u2
{u1,u2,du}
u1u1+du
元胞自动机步规格.
以下演化了 100 步,但是只保留每隔一步的步骤:
CellularAutomaton[rnum,init,t]
保留所有步骤和所有相关元胞
CellularAutomaton[rnum,init,{spect,specx}]
仅保留指定的步骤和元胞
选择要保留的步骤和元胞.
与用户可以指定在元胞自动机演化中哪些步骤需要保留一样,用户也可以指定保留哪些元胞. 如果用户给出一个初始条件如 {{a1,a2,},blist},那么为了指定那些元胞应该保留,rd 应该具有偏移量 0.
All
所有可以被指定初始条件影响的元胞
Automatic
所有与背景(默认)不同的区域中的元胞
0
aspec 开头对齐的元胞
x
右边的偏移量至多为 x 的元胞
-x
左边的偏移量至多为 x 的元胞
{x}
向右偏移量为 x 的元胞
{-x}
向左偏移量为 x 的元胞
{x1,x2}
偏移量从 x1x2 的元胞
{x1,x2,dx}
元胞 x1x1+dx
元胞自动机的元胞规格.
以下保留所有步骤,但是丢掉左边偏移量大于 20 的元胞:
以下仅保留元胞的中间列:
如果用户给出初始条件如 {{a1,a2,},blist},那么 CellularAutomaton 将总是以具有无穷数目的元胞进行元胞自动机运算. 通过使用 specx{x1,x2} 用户可以告诉 CellularAutomaton 在输出中仅包含在指定偏移量 x1x2 处的元胞. 默认情况下,CellularAutomaton 包括其值永远不与背景 blist 中的相同的足够远处的元胞.
一般来说,给定具有范围 的元胞自动机规则,在每边距离 处的元胞原则上会受系统演化的影响. 当 specxAll 时,所有这些元胞都被包括;在 Automatic 的默认设置下,与 blist 中的值相同的元胞被修剪.
默认情况下,仅保留不是恒定为黑色的部分:
对于 specx 使用 All 则包括所有可能被该范围内的元胞自动机影响的所有元胞:
CellularAutomaton 相当直接地推广到了任意维数. 但是,在二维以上,总和及其他特殊类型的规则会变得更为有用,因为一般规则的规则表中的项数会迅速变成天文数字.
{n,k,{r1,r2,,rd}}
具有 邻居的 维规则
{n,{k,1},{1,1}}
二维九邻居总和规则
{n,{k,{{0,1,0},{1,1,1},{0,1,0}}},{1,1}}
二维五邻居总和规则
{n,{k,{{0,k,0},{k,1,k},{0,k,0}}},{1,1}}
二维五邻居外层总和规则
较高维的规则指定.
这是代码为797的二维九邻居总和元胞自动机的规则指定:
以下给出演化中的第 0 步和第 1 步:
以下显示演化中的第 70 步:
以下显示沿着 轴的一个切片(slice)的所有步骤: