如何在不过度拟合数据的情况下选择最佳拟合?使用 N 个正态函数等对双峰分布进行建模

机器算法验证 分布 正态分布 模型选择 过拟合
2022-03-17 02:09:17

我有一个明显的双峰值分布,我试图适应它。数据可以很好地拟合 2 个正态函数(双峰)或 3 个正态函数。此外,用 3 拟合数据还有一个合理的物理原因。

引入的参数越多,拟合就越完美,因为有足够的常数,可以“拟合一头大象”。

这是分布,适合 3 条正态(高斯)曲线的总和:

分布与

这些是每次拟合的数据。我不确定我应该在这里应用什么测试来确定适合度。数据由 91 个点组成。

1 正常功能:

  • RSS: 1.06231
  • X^2:3.1674
  • F.测试:0.3092

2个正常功能:

  • RSS: 0.010939
  • X^2:0.053896
  • F.测试:0.97101

3个正常功能:

  • RSS: 0.00536
  • X^2:0.02794
  • F.测试:0.99249

可以应用什么正确的统计检验来确定这 3 种拟合中的哪一种是最好的?显然,1 正态函数拟合是不够的。那么如何区分2和3呢?

补充一点,我主要是用 Excel 和一点 Python 来做这个;我还不熟悉 R 或其他统计语言。

1个回答

这里有两种方法可以解决选择分布的问题:

  1. 对于模型比较,使用根据参数数量对模型进行惩罚的度量。信息标准做到了这一点。使用信息准则来选择要保留的模型,选择具有最低信息准则的模型(例如 AIC)。比较 AIC 的差异是否显着的经验法则是 AIC 的差异是否大于 2(这不是正式的假设检验,请参阅测试两个非嵌套模型的 AIC 差异)。

    AIC =,其中是估计参数的数量,是最大似然度,是似然函数,是观测数据以分布参数为条件的概率。2k2ln(L)kLL=maxθL(θ|x)L(θ|x)=Pr(x|θ)Pr(x|θ)xθ

  2. 如果你想要一个正式的假设检验,你至少可以通过两种方式进行。可以说更简单的方法是使用部分样本拟合分布,而不是使用卡方检验或 Kolgomorov-Smirnov 检验对其余数据进行残差分布是否显着不同。这样,您就不会像评论中提到的 AndrewM 那样使用相同的数据来拟合和测试您的模型。

    您还可以通过调整零分布来进行似然比检验。Lo Y.等人描述了一个版本。(2013) “测试正常混合物中的成分数量”。Biometrika但我无权访问该文章,因此我无法为您提供有关如何执行此操作的更多详细信息。

    无论哪种方式,如果测试不显着,则保留参数数量较少的分布,如果显着,则选择参数数量较多的分布。