AIC 或 BIC 值差异的实际意义是什么?

机器算法验证 可能性 造型 aic 信息论 比克
2022-03-28 10:13:34

通常,当讨论统计数据的差异时,该讨论是在该差异的重要性的背景下提出的。当检查自熵,即信息内容时,尤其是但不仅是在比较非嵌套模型时,我们使用 AIC、AICc、BIC 或其他信息内容指数的较低值来建议更好的模型是什么. 然而,更一般地,熵是逐个案例的,即逐个数据的,可变的。

问题 基于来自特定数据集的比较信息内容指数,我们有多大把握知道,对于较少限制的数据集,较低的指数值正确地暗示了更普遍的正确模型?

我觉得信息内容的非嵌套模型比较并不总是在所有情况下都相关,例如看到这个Q/A嵌套是指所有测试的模型都可以通过从父模型中消除参数来导出。非嵌套是指模型包含的参数不在具有子集格式的集合中。

在子集数据的上下文中,对于嵌套或非嵌套模型的信息内容比较的可变性,我真的很感激。

2个回答

两个模型的 AIC(或 BIC)差异是对数似然比减去常数的两倍:立即得出结论,在任何特定情况下,选择 AIC 对应于执行似然比检验,但在不同情况下,它对应于不同显着性水平的检验。

对于嵌套模型,零假设必须是较小的模型成立。给定一些规律性条件,威尔克斯定理适用;因此,如果p是模型之间自由参数数量的差异,渐近地,当较小的模型实际上成立时,AIC 选择较大模型的概率是卡方 rv 与p自由度超过2p. 为了p=1检验的显着性为 0.157;为了p=2, 0.135; & 很快。当可以进行精确测试时,对数似然比的分布当然取决于模型是什么。

对于非嵌套模型,即使找到对数似然比的渐近分布也需要计算零下相当复杂的期望(参见非嵌套模型的广义对数似然比测试对数比较中引用的 Cox 或 Vuong 的论文)两个非嵌套模型的可能性)。关于 AIC 差异的重要性,我怀疑总体上可以说很多。

@RichardHardy 已经简洁地给出了道德:

你如何定义什么是“正确的模型”?是数据生成过程(DGP)吗?如果是这样,您为什么要使用 AIC 来识别 DGP?AIC 回答的问题不是“哪个模型是 DGP?”。尝试问一个不同的问题,例如“哪个模型会在某种类型的损失(与使用的可能性相关)下给出更好的预测?”,您可能会发现 AIC 的回答“正确”(或者可能不是?)。也就是用锤子敲钉子

AIC 的问题包括它在小样本中的准确性(偏差校正项仅是一阶)以及当两个模型都不是特别接近真实模型时(在 Kullback-Leibler 散度的意义上);但它不能因为没有做它没有做的事情而受到批评:有假设检验。

假设从标准正态分布生成值,N(0,1). 如果我们只生成了两个值,n=2,那么我们有一个离散的均匀分布,而不是一个令人信服的正态分布的离散近似。确实,这对任何人都是正确的n=2,无论哪个生成分布产生这些值,离散均匀分布都是默认结果。正态分布和均匀分布相互之间是非嵌套的。事实上,它们有非常不同的形状。如果我们生成N(0,1)为增加n并检查 AIC 是否适合正态分布与均匀分布,即使我们知道我们的生成函数是N(0,1),对于正态分布拟合,AIC 并不总是小于均匀分布拟合。下图显示了在 1000 次重复中,正态分布模型的 AIC 有多少次优于(小于)均匀分布模型的 AICn从不同n=5n=100.

在此处输入图像描述

如图所示,正态分布(即正确答案)的 AIC 仅在 1000 次试验中 395 次或 39.5% 的时间被选择优于均匀分布n=5. 这在 1000 次试验中增加到 949 次n=100,这个值的错误率仍然略高于 5%。据说 AIC 是渐近正确的,这似乎是正确的。顺便说一句,BIC 对两个参数模型的选择与 AIC 相同。但这对小到中等大小的值有用吗n?

以上是模型选择的观察概率示例。据称, AIC选择正确模型的可能性如下:

数量被称为模型的相对似然。它与似然比检验中使用的似然比密切相关。事实上,如果候选集中的所有模型都具有相同数量的参数,那么使用 AIC 乍一看可能与使用似然比检验非常相似。然而,有一些重要的区别。特别是,似然比检验仅对嵌套模型有效,而 AIC(和 AICc)没有这样的限制。expAICminAICi2i

现在请注意,上述可能性是可以互惠的。也就是说,如果模型 A 的可能性是模型 B 的两倍,那么模型 B 的可能性是模型 A 的二分之一。在当前上下文中,我们不处理可能性,我们使用真实数据创建了蒙特卡罗模拟,例如我们观察到做出正确选择的概率。我们在这个模拟中观察到,做出正确选择的可能性很大程度上受的影响,除非很大,否则我们似乎没有得到可靠的答案。nn

关于程序:列表初始化为正态分布(nd)AIC(ndAlist),nd BIC(ndBlist),均匀分布(ud)AIC和BIC(udAlist,udBlist)。使用了两个 do 循环。外部 do 循环以从 5 增加到 100 内部 do 循环 (1)nn=5nN(0,1). 然后 (2) 从 dat 创建一个名为 edistdata 的经验 CDF。(3) 定义从 nd 和 ud 的 CDF 拟合的 cdfn 和 cdfu 函数。(4) 通过改变 cdfn 和 cdfu 的参数对 edistdata 的最佳拟合。注意:拟合 CDF 而不是 PDF 会显着降低噪声,并且是一种常见的过程。这是完成的,而不是例如使用均值和方差来计算 nd 或 min 和 max 来计算 ud,因为拟合对 nd 和 ud 使用单一算法,并且 NonlinearModelFit 例程输出模型的 AIC 和 BIC 以及作为输出 nlmn 和 nlmu 的选项的参数适合输出,例如 nlmn["AIC"]。注意:假设使用 ML 正确计算了 AIC 和 BIC 拟合参数,因为相反的情况将毫无意义。

(*Mathematica Program*)
ndAlist = {};
ndBlist = {};
udAlist = {};
udBlist = {};
Do[
 AICndlist = {};
 BICndlist = {};
 AICudlist = {};
 BICudlist = {};
  Do[dat = 
   RandomVariate[NormalDistribution[0, 1], n, WorkingPrecision -> 40];
   edistdata = Table[{x, CDF[EmpiricalDistribution[dat], x]}, {x, dat}];
   cdfn[a1_, a2_, x_] := CDF[NormalDistribution[a1, a2], x];
   cdfu[b1_, b2_, x_] := CDF[UniformDistribution[{b1, b2}], x];
   nlmn = NonlinearModelFit[edistdata, cdfn[a1, a2, x], {{a1, 0}, {a2, 1}}, x];
   nlmu = NonlinearModelFit[edistdata, cdfu[b1, b2, x], {{b1, -2}, {b2, 2}}, x]; 
   AICndlist = AppendTo[AICndlist, nlmn["AIC"]]; 
   BICndlist = AppendTo[BICndlist, nlmn["BIC"]]; 
   AICudlist = AppendTo[AICudlist, nlmu["AIC"]]; 
   BICudlist = AppendTo[BICudlist, nlmu["BIC"]],
  {i, 1, 1000}];
 ndA = 0.; udA = 0.; ndB = 0.; udB = 0.;
 Do[If[AICndlist[[j]] < AICudlist[[j]], ndA = ndA + 1, udA = udA + 1], 
 {j, 1, 1000}];
 Do[If[BICndlist[[j]] < BICudlist[[j]], ndB = ndB + 1, udB = udB + 1], 
 {j, 1, 1000}];
Print["n: ", n, "\nAIC nd/1000: ", ndA, "\tAIC ud/1000: ", udA, "\nBIC nd/1000: ", ndB, "\tBIC ud/1000: ", udB];
ndAlist = AppendTo[ndAlist, {n, ndB}]; 
ndBlist = AppendTo[ndBlist, {n, ndB}], {n, 5, 100, 5}]
Print[ndAlist]
ListPlot[ndAlist, AxesLabel -> {"n", "AIC ND < AIC UD"}, PlotRange -> {{0, 100}, {0, 1000}}, PlotRangePadding -> {{0, 1}, {0, 0}}]

数值输出

n: 5
AIC nd/1000: 395.   AIC ud/1000: 605.
BIC nd/1000: 395.   BIC ud/1000: 605.

n: 10
AIC nd/1000: 572.   AIC ud/1000: 428.
BIC nd/1000: 572.   BIC ud/1000: 428.

n: 15
AIC nd/1000: 684.   AIC ud/1000: 316.
BIC nd/1000: 684.   BIC ud/1000: 316.

n: 20
AIC nd/1000: 725.   AIC ud/1000: 275.
BIC nd/1000: 725.   BIC ud/1000: 275.

n: 25
AIC nd/1000: 769.   AIC ud/1000: 231.
BIC nd/1000: 769.   BIC ud/1000: 231.

n: 30
AIC nd/1000: 777.   AIC ud/1000: 223.
BIC nd/1000: 777.   BIC ud/1000: 223.

n: 35
AIC nd/1000: 811.   AIC ud/1000: 189.
BIC nd/1000: 811.   BIC ud/1000: 189.

n: 40
AIC nd/1000: 841.   AIC ud/1000: 159.
BIC nd/1000: 841.   BIC ud/1000: 159.

n: 45
AIC nd/1000: 848.   AIC ud/1000: 152.
BIC nd/1000: 848.   BIC ud/1000: 152.

n: 50
AIC nd/1000: 848.   AIC ud/1000: 152.
BIC nd/1000: 848.   BIC ud/1000: 152.

n: 55
AIC nd/1000: 877.   AIC ud/1000: 123.
BIC nd/1000: 877.   BIC ud/1000: 123.

n: 60
AIC nd/1000: 886.   AIC ud/1000: 114.
BIC nd/1000: 886.   BIC ud/1000: 114.

n: 65
AIC nd/1000: 900.   AIC ud/1000: 100.
BIC nd/1000: 900.   BIC ud/1000: 100.

n: 70
AIC nd/1000: 901.   AIC ud/1000: 99.
BIC nd/1000: 901.   BIC ud/1000: 99.

n: 75
AIC nd/1000: 914.   AIC ud/1000: 86.
BIC nd/1000: 914.   BIC ud/1000: 86.

n: 80
AIC nd/1000: 932.   AIC ud/1000: 68.
BIC nd/1000: 932.   BIC ud/1000: 68.

n: 85
AIC nd/1000: 935.   AIC ud/1000: 65.
BIC nd/1000: 935.   BIC ud/1000: 65.

n: 90
AIC nd/1000: 946.   AIC ud/1000: 54.
BIC nd/1000: 946.   BIC ud/1000: 54.

n: 95
AIC nd/1000: 952.   AIC ud/1000: 48.
BIC nd/1000: 952.   BIC ud/1000: 48.

n: 100
AIC nd/1000: 949.   AIC ud/1000: 51.
BIC nd/1000: 949.   BIC ud/1000: 51.

{{5,395.},{10,572.},{15,684.},{20,725.},{25,769.},{30,777.},{35,811.},{40,841.},{45,848.},{50,848.},{55,877.},{60,886.},{65,900.},{70,901.},{75,914.},{80,932.},{85,935.},{90,946.},{95,952.},{100,949.}}

输出图如上所示。

这里的答案与 Yafune等人最近的一篇论文的结果相呼应。关于 Akaike 信息准则 (AIC) 方法进行临床数据分析的样本量确定的说明,不幸的是,这是在付费墙后面。那些作者在他们的讨论中指出,“AIC 通常用于不考虑与统计检验的功效相对应的概率。由于 AIC 通常用于探索性分析,因此通常很难预先确定样本量。对于这种情况, 之后最好通过检查与统计检验的功效相对应的概率来调查样本量是否足够大。如果样本量不够大,则 AIC 方法可能无法得出以下结论:我们寻找。”

为此,我们只补充一点,该论文中指出的样本量很容易超过 100,幂为 0.8。