现实中“过度拟合”的例子是什么?


107

我有点理解“过度拟合”的含义,但是我需要有关如何提出适用于过度拟合的真实示例的帮助。


12
也许您可以对“过度拟合的含义”进行解释,以使人们可以解决您不了解的部分,而不必猜测它们可能是什么?
goangit 2014年

3
@ssdecontrol虚假相关性并不过分。实际上,虚假相关不需要涉及显式模型,隐式模型通常是具有两个参数的直线。
尼克·考克斯

1
@whuber:也许更适合在meta上进行讨论,但是我很惊讶地看到您将这篇文章转换为社区wiki。这是否意味着OP不会因将来的投票而获得声誉提升?对我来说,这对他来说几乎像是一种“惩罚”。是什么原因呢?
变形虫

4
@amoeba这不是惩罚:显然,这个问题没有一个正确或规范的答案。最初,它是非CW的问题,因此没有话题了,应该立即关闭,BTW,但是由于社区集体创建一些好的榜样并赋予CW地位可能有价值而不是关闭它似乎是一个合理的解决方案。
whuber

17
到目前为止,几乎没有这些答案(只有11个答案中有2个!)甚至试图解决该问题,而这需要一个真实的例子。这意味着不是模拟,不是理论示例,不是卡通,而是认真应用于实际数据的模型。还要注意,该问题明确地试图使答案远离对过度拟合的解释。
ub

Answers:


96

这是xkcd总统选举时间序列模型的一个很好的例子在此处输入图片说明

只有56次总统选举和43位总统。要学习的数据不多。当预测变量的空间扩展到包括假牙和名字的Scrabble point值之类的东西时,模型很容易从拟合数据(信号)的通用特征开始与噪声进行匹配。发生这种情况时,历史数据的拟合度可能会提高,但是当用于推断未来的总统选举时,该模型将惨遭失败。


15
我认为您应该添加一些有关样本偏差的信息,以说明这与过度拟合之间的关系。只是动画片的剪切和粘贴缺少了解释。
尼尔·斯莱特

5
此示例的一个不错的功能是它演示了过拟合和复杂性之间的区别。“加利福尼亚州也一样,国家也一样”的规则很简单,但仍然过时。
汤姆·明卡2014年

2
实际上,@ TomMinka的过拟合可能是由于复杂性(模型太复杂而无法容纳太简单的数据,因此其他参数将适合手边的任何事物)引起的,或者如您所指出的那样,由嘈杂的功能引起的,决策中的权重超过了相关性特征。而且还有许多其他可能的过拟合源(数据或模型的内在差异,与目标目标不相关的数据等)。我认为我们应该说存在过度拟合s,而不仅仅是过度拟合(这意味着只有一个原因,这通常是不正确的)。
令人惊讶的2014年

80

我最喜欢的是美国人口普查人口与时间的关系的Matlab示例:

  • 线性模型非常好
  • 二次模型更接近
  • 一个四次模型预测从明年开始总歼灭

(至少我衷心希望这是过度拟合的例子)

http://www.mathworks.com/help/curvefit/examples/polynomial-curve-fitting.html#zmw57dd0e115在此处输入图片说明


1
只是要清楚准确地底下的情节他们说:“第六度多项式拟合超出数据范围的行为使一个糟糕的选择外推和您可以拒绝此契合。
usεr11852

49

陈等人的研究。(2013年)将两个三次方拟合为预期寿命随纬度变化的不连续性。

Chen Y.,Ebenstein,A.,Greenstone,M。和Li,H.2013。持续暴露于空气污染对中国淮河政策预期寿命影响的证据。美国国家科学院院刊 110:12936-12941。 抽象

尽管它在杰出的期刊等上发表过,也得到了杰出人士的默许,等等,但我仍然将其作为过度拟合的初步例子。

一个有说服力的迹象是立方的不可信性。隐式拟合三次方是由于某些原因,预期寿命会随您所居住的纬度的三次多项式而变化。这似乎是难以置信的:很难想象会引起这种影响的合理的物理机制。

另请参见以下博客文章,以对本文进行更详细的分析:持续使用多项式回归对因果推理的影响的证据(声称煤加热使10亿人的寿命减少了5年)


5
+1安德鲁·盖尔曼(Andrew Gelman)甚至写了一两个博客文章,说明了为什么它是不可行的。这是一个:andrewgelman.com/2013/08/05/…–
Sycorax

@ user777 Gelman博客可能是我第一次听说的方式。但是我认为最适合提供参考,添加我的个人评论的虚张声势,并让人们自行判断。
Nick Cox 2014年

1
我删去了@DW所做的编辑,该编辑对不同国家的预期寿命进行了评论,而这根本不是本文的内容。
尼克·考克斯

2
我认为另一个示例是说明性的(尽管可能比“现实世界”更人为设计)是反馈中间结果的预测竞赛-例如kaggle。通常,有些人会优化排行榜的结果,但他们并不是坚持样本的赢家。Rob Hyndman对此进行了一些讨论。但是,这比我认为OP在这里需要的要深入得多。
安迪W

2
我正要发布由此发表的Gelman&Imbens论文:nber.org/papers/w20405(很遗憾
门口了

38

20143月14日的《科学》杂志上,David Lazer,Ryan Kennedy,Gary King和Alessandro Vespignani指出了Google流感趋势中的问题,这些问题归因于过拟合。

数字

这是他们讲故事的方式,包括对过度拟合的性质及其导致算法失败的原因的解释:

2013年2月,《自然》报道GFT预测,像流感样疾病(ILI)的医生就诊比例是疾病控制与预防中心(CDC)的两倍以上。尽管GFT是为预测CDC报告而构建的,但这还是发生了。...

本质上,该方法是在5000万个搜索词中找到最佳匹配项以适合1152个数据点。找到与流感的倾向相匹配但在结构上不相关且因此无法预测未来的搜索词的可能性非常高。实际上,GFT开发人员报告说,他们淘汰了与流感无关但与CDC数据密切相关的季节性搜索字词,例如与高中篮球有关的数据。这本来是一个警告,说明大数据已适合少数情况,这是数据分析中的标准问题。当GFT完全错过了非季节性的2009年甲型H1N1流感大流行时,这种排除特殊搜索词的特殊方法失败了。

[重点已添加。]


3
不幸的是,这个例子有一些问题。该论文提出了GFT做出错误预测的两个截然不同的原因:过拟合和搜索引擎的变化。作者承认他们无法确定哪个原因(如果有)是正确的,因此本质上是推测。此外,有关过度拟合的段落是指系统的原始版本,而图中的预测是使用修改后的系统进行的。
Tom Minka 2014年

1
@Tom撰写本文并非仿佛是关于过度拟合的指控是推测:作者断然断言。我认为这是一个合理的声明。他们还解决了必须进行投机的原因:Google对算法不开放或不透明。在我看来,过度拟合是仅在一个版本中还是在多个版本中都显得无关紧要,但是我记得作者也解决了这一问题,并指出了当前算法中持续过度拟合的证据。
ub

2
本文仅说过拟合是数据分析中的标准问题。它并没有声称过度拟合是原因。参考文献(2)进行了更详细的说明,但再次指出,过度拟合只是一个“可能的问题”,其陈述为“因为用于定义原始GFT模型和更新GFT模型的搜索算法和结果查询项仍未公开,因此难以确定系统性能欠佳的原因,并提出改进建议。”
Tom Minka 2014年

@Tom在这里给出的引号是准确的,我会坚持使用它作为对为什么在当前情况下值得考虑Google Flu模型的充分支持。
ub

有趣的讨论。我只补充说,如果标记了线,则图形可能会更好地支持该参数。
rolando2 2014年

32

几周前,我看到了这张图片,并认为它与眼前的问题非常相关。

模因图片

它不是线性拟合序列,而是拟合了四次多项式,该多项式具有完美的拟合度,但得出的答案显然很荒谬。


12
这不能回答所要求的问题,可能最好是作为注释或根本不发布。这没有提供过拟合的真实示例(这就是问题的要旨)。它还没有说明示例图像与过拟合的关系。最后,它很短。我们希望提供详尽,详细的答案来回答所提出的问题,而不仅仅是与该问题相关的讨论。
DW 2014年

9
实际上,由于模型过于复杂,这确实是过度拟合的情况,因为您可以构造无穷个高阶(非线性)函数,以便生成无数个不同的序列最后项,同时仍拟合其他(已知)术语,如此处所述,通过使用Lagrange插值
令人惊讶的2014年

@ user1121352在动画片中,高阶多项式真实的模型,因此它根本不适合过度拟合。如“9”(下一个奇数),或“11”(下一个奇素数)的回答实际上是水用快速,因为它使用一个过于简单的模型来预测下一个值。该漫画实际上说明了相反的情况,那就是更复杂的模型可能是正确的。
Sycorax 2014年

8
四次多项式(由我解释)旨在作为一个荒谬的解决方案,因为任何人在看到荒谬的解决方案之前给出的显而易见的答案将是9(或任何其他OEIS值)。我以为“总督”格式表达了讽刺意味,但我们清楚地看到了这里的坡定律在起作用。
2014年

2
不过,这正是我要提出的要点,那就是我们不知道真正的功能是什么。如果您要进行原始分析,则没有像OEIS这样的资源可以呼吁真理:这就是您的模型正在尝试建立的模型。我很欣赏动画片试图讽刺,但是在特定讨论中动画片的位置暴露了关于过度拟合和统计建模的一个重要问题。它的原始创建者的意图是无关紧要的,因为您已经在这里对其进行了重新上下文化!
Sycorax 2014年

22

对我而言,最好的例子是天文学中的托勒密体系。托勒密认为地球处于宇宙的中心,并创建了一个复杂的嵌套圆形轨道系统,可以很好地解释物体在天空上的运动。天文学家不得不不断加圈来解释偏差,直到有一天它变得如此混乱以至于人们开始怀疑它。那时哥白尼提出了一个更现实的模型。

这是过度适合我的最好例子。您不能将数据生成过程(DGP)过度拟合到数据。您只能过度拟合错误指定的模型。几乎我们所有的社会科学模型都被错误地指定了,因此关键是要记住这一点,并使它们保持简约。不是尝试捕获数据集的每个方面,而是尝试通过简化来捕获基本特征。


15
这似乎不是过度拟合的示例。托勒密体系作为预测模型没有错:它很复杂,只是因为坐标系是地心的,而不是起源于银河系的质心。因此,问题在于使用过于复杂的模型进行了准确,合理的拟合。(椭圆比周转轮简单得多。)找到简约非线性模型是一个真正的挑战!
ub

1
最后,您将得到很多圆圈来模拟托勒密系统中木星的卫星轨道。
Aksakal 2014年

17
没错-但从表面上看,并不一定过拟合。酸性测试在于对未来价值的预测,该预测在该系统中可以很好地运行到1400年。当模型非常复杂时,数据不是过拟合的,而是当它如此灵活以至于通过捕获无关的细节而产生的预测比对模型训练数据上的模型残差进行分析所得出的预测要准确得多。
ub

2
EY=k=09βkxi

2
EY=k=09βkxkx

22

假设您在图形上有100个点。

您可能会说:嗯,我想预测下一个。

  • 用一条线
  • 具有二阶多项式
  • 具有三阶多项式
  • ...
  • 具有100阶多项式

在这里,您可以看到此示例的简化图示: 在此处输入图片说明

多项式阶数越高,将越适合现有点。

但是,尽管看起来像是点的更好模型,但高阶多项式实际上使它们过度拟合。它模拟噪声而不是真实的数据分布。

因此,如果您使用完美拟合的曲线向图形添加新的点,则与使用简单的低阶多项式相比,曲线可能离曲线更远。


“因此,如果您使用完美拟合的曲线向图形添加一个新点,则与使用简单的低阶多项式相比,它离曲线的距离可能会更远” –而且,即使新点的数据生成过程(即总体中的关系)实际上是一个高幂多项式,就像您(过度拟合)的多项式一样。
Silverfish

19
这里的图片实际上是不正确的-例如,9度多项式仅被绘制为分段线性函数,但是我怀疑实际上它应该在点之间的范围内上下波动。您也应该在5度多项式中看到这种效果。
肯·威廉姆斯

17

可能导致福岛灾难的分析是过度拟合的一个例子。在地球科学中,有一个众所周知的关系描述给定观测到的“较小”地震发生的频率,即一定规模的地震发生的概率。这就是所谓的古腾堡-里希特(Gutenberg-Richter)关系,它提供了数十年的直线对数拟合。分析反应堆附近的地震风险(此数据来自内特·西尔弗(Nate Silver)的优秀著作《信号与噪声》(The Signal and Noise)),在数据中显示出“扭曲”。忽略扭结,估计9级地震的年风险约为300分之一,这肯定是有待准备的。然而,对双斜率线的过度拟合(显然是在对反应堆进行初始风险评估时所做的)将风险预测降低到13,000年中的约1。不能指责工程师没有设计反应堆来抵御这种不太可能发生的事件-但绝对应该指责过高(然后推断)数据的统计学家...

在此处输入图片说明


双斜率模型是否过拟合是否定论?纽结很突出;我想如果每个线段都是从例如3个点来估计的,那么比通过估计一条线,您会得到更好的保留率预测。(当然,随后观察到的“ 13,000年中的1个”事件是反对的!!但这很难解释,因为如果这种情况没有发生,我们将不会重新检查该模型。)如果有物理原因要忽略感觉到的扭结则认为过拟合的情况更强-我不知道这些数据通常与理想的Gutenberg-Richter关系匹配得如何。
Silverfish 2014年

这确实非常生动地说明了外推的危险,并且需要考虑到错误后果严重性的损失函数……
Silverfish 2014年

3
问题确实在于,最后一些点使用的数据很少,因此它们具有很大的不确定性。仔细查看数据,您会看到只有一个7.9事件,然后是几个7.7s。关于8.0级以上地震的发生并不多见,因此鲜为人知-但是,当您观察到9.0级地震(引起海啸的东北地震)时,您可以得出自己的结论。直线可能是保守的-但是在核安全方面,保守是好的。
弗洛里斯2014年

1
@Floris好点。如果他们使用一个不仅显示观察到的频率,还显示那些频率的置信区间的箱形图,那会更好。这样一来,您可能会在图表左侧获得非常狭窄的方框,而在右侧获得非常宽的方框。(可以假设每个频率都遵循泊松分布来计算此类置信区间。)
user763305 2014年

3
@ user763305-是的,我很确定添加置信区间会显示一条直线与数据并不矛盾(换句话说,您不能拒绝数据遵循一条直线的零假设)。
Floris 2014年

15

“啊!帕特要离开公司了。我们如何找到替代者?”

招聘启事:

通缉:电气工程师。42岁,雌雄同体,拥有电气工程,数学和畜牧学学位。身高必须为68英寸,棕色头发,左眼上方有痣,并且容易长发long鹅,并滥用“律师”一词。

从数学的意义上讲,过度拟合通常是指使用比所需数量更多的参数来制作模型,从而导致更适合特定数据集,但没有从兴趣类别中获取适合其他数据集所需的相关细节。

在上面的示例中,发布者无法区分相关特征和无关特征。所获得的资格仅可能由他们已经知道适合该职位(但不再想要)的一个人来满足。


8
在娱乐的过程中,此答案无法从统计学意义上洞悉过度拟合的含义。也许您可以扩大答案以阐明这些非常特殊的属性与统计模型之间的关系。
Sycorax 2014年

+1分。我只在很小的程度上同意@ user777。也许一句话就会把简洁的例子带回家。但是添加太多将使简单性失去意义。
ndoogan 2014年

我认为这是一个很好的答案-它表现出非常普通的过拟合类型,该类型实际上会记住训练数据,尤其是在训练数据量不足以使模型的表达力饱和的情况下。
肯·威廉姆斯

14

这是伪造的,但我希望它可以说明情况。

例子1

k=100n=100

set.seed(123)
k <- 100
data <- replicate(k, rnorm(100))
colnames(data) <- make.names(1:k)
data <- as.data.frame(data)

现在,让我们拟合线性回归:

fit <- lm(X1 ~ ., data=data)

以下是前十个预测变量的摘要:

> summary(fit)

Call:
lm(formula = X1 ~ ., data = data)

Residuals:
ALL 100 residuals are 0: no residual degrees of freedom!

Coefficients:
              Estimate Std. Error t value Pr(>|t|)
(Intercept) -1.502e-01         NA      NA       NA
X2           3.153e-02         NA      NA       NA
X3          -6.200e-01         NA      NA       NA
X4           7.087e-01         NA      NA       NA
X5           4.392e-01         NA      NA       NA
X6           2.979e-01         NA      NA       NA
X7          -9.092e-02         NA      NA       NA
X8          -5.783e-01         NA      NA       NA
X9           5.965e-01         NA      NA       NA
X10         -8.289e-01         NA      NA       NA
...
Residual standard error: NaN on 0 degrees of freedom
Multiple R-squared:      1, Adjusted R-squared:    NaN 
F-statistic:   NaN on 99 and 0 DF,  p-value: NA

结果看起来很奇怪,但让我们对其进行绘图。

在此处输入图片说明

X1X1

> sum(abs(data$X1-fitted(fit)))
[1] 0

它为零,因此图并不对我们说谎:该模型非常适合。分类的精确度如何?

> sum(data$X1==fitted(fit))
[1] 100

X1

例子2

再举一个例子。让我们补充一些数据:

data2 <- cbind(1:10, diag(10))
colnames(data2) <- make.names(1:11)
data2 <- as.data.frame(data2)

所以看起来像这样:

   X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11
1   1  1  0  0  0  0  0  0  0   0   0
2   2  0  1  0  0  0  0  0  0   0   0
3   3  0  0  1  0  0  0  0  0   0   0
4   4  0  0  0  1  0  0  0  0   0   0
5   5  0  0  0  0  1  0  0  0   0   0
6   6  0  0  0  0  0  1  0  0   0   0
7   7  0  0  0  0  0  0  1  0   0   0
8   8  0  0  0  0  0  0  0  1   0   0
9   9  0  0  0  0  0  0  0  0   1   0
10 10  0  0  0  0  0  0  0  0   0   1

现在让我们对此进行线性回归:

fit2 <- lm(X1~., data2)

因此我们得到以下估计:

> summary(fit2)

Call:
lm(formula = X1 ~ ., data = data2)

Residuals:
ALL 10 residuals are 0: no residual degrees of freedom!

Coefficients: (1 not defined because of singularities)
            Estimate Std. Error t value Pr(>|t|)
(Intercept)       10         NA      NA       NA
X2                -9         NA      NA       NA
X3                -8         NA      NA       NA
X4                -7         NA      NA       NA
X5                -6         NA      NA       NA
X6                -5         NA      NA       NA
X7                -4         NA      NA       NA
X8                -3         NA      NA       NA
X9                -2         NA      NA       NA
X10               -1         NA      NA       NA
X11               NA         NA      NA       NA

Residual standard error: NaN on 0 degrees of freedom
Multiple R-squared:      1, Adjusted R-squared:    NaN 
F-statistic:   NaN on 9 and 0 DF,  p-value: NA

R2=1X1

X1=10+X2×9+X3×8+X4×7+X5×6+X6×5+X7×4+X8×3+X9×2

X1=1

10+1×9+0×8+0×7+0×6+0×5+0×4+0×3+0×2

这是不言自明的。您可以认为示例1示例2类似,但添加了一些“噪音”。如果您有足够大的数据并将其用于“预测”某些内容,那么有时只有一个“功能”可能会让您相信,您有一个“模式”可以很好地描述您的因变量,而这可能只是一个巧合。在示例2中并没有真正预测到结果,但是在示例1中发生了完全相同的变化,只是变量的值不同。

现实生活中的例子

现实生活中的例子是,通过观看由全球意识项目的计算机伪随机数字生成器随机绘制的数字“模式” 或“白鲸”中的“秘密信息”来预测2001年9月11日的恐怖袭击,这些信息揭示了暗杀名人的事实(受圣经中类似的发现启发)。

结论

如果您看起来很努力,就会发现任何东西的“样式”。但是,这些模式不会让您了解有关宇宙的任何知识,也不会帮助您得出任何一般性结论。它们将完全适合您的数据,但将毫无用处,因为它们将无法容纳数据本身。他们不会让您做出任何合理的样本外预测,因为他们会做的是,他们宁愿模仿而不是描述数据。


5
我建议将现实生活中的例子放在此答案的顶部。这是与该问题实际相关的部分-其余部分是肉汁。
shadowtalker 2014年

8

导致现实生活过度拟合的一个常见问题是,除了正确指定模型的术语外,我们可能还添加了一些无关紧要的东西:正确术语的不相关幂(或其他变换),不相关变量或不相关交互。

如果您添加了一个不应该出现在正确指定的模型中但又不想删除它的变量,则这会在多元回归中发生,因为您担心会导致遗漏的变量偏差。当然,您无法知道自己错误地将其包括在内,因为您看不到全部样本,只能看到样本,因此无法确定正确的规格。(正如@Scortchi在评论中指出的那样,可能没有“正确的”模型规范之类的东西-从这个意义上讲,建模的目的是找到“足够好”的规范;避免过度拟合涉及避免模型复杂性大于可以从可用数据中获得的数据。)如果您想要一个真实的过度拟合示例,则每次都会发生这种情况您应该将所有潜在的预测变量都放入回归模型中,一旦将其他预测变量的影响分摊后,它们中的任何一个实际上都不与响应相关。

对于这种类型的过度拟合,好消息是这些不相关项的包含不会引入估计量的偏差,并且在非常大的样本中,不相关项的系数应接近零。但是,还有一个坏消息:由于现在将来自样本的有限信息用于估算更多参数,因此只能以较低的精度进行估算-因此,真正相关的术语的标准误差会增加。这也意味着它们与真实值的距离可能比正确指定的回归估计值的距离还远,这反过来意味着,如果给定了解释变量的新值,则过拟合模型的预测将不如对预测值的准确性正确指定的模型。

这是2010年美国50个州的原木GDP与原木人口的关系图。选择了10个州的随机样本(以红色突出显示),对于该样本,我们拟合了简单的线性模型和5级多项式。点,多项式具有额外的自由度,因此它比直线可以“蠕动”更靠近观测数据。但是,作为整体的50个州服从了几乎线性的关系,因此与较不复杂的模型相比,多项式模型在40个样本外点上的预测性能非常差,尤其是在外推时。多项式有效地拟合了样本的某些随机结构(噪声),但并未推广到更广泛的人群。在推断超出样品观察范围的情况下,效果特别差。答案的修订版。)

从过于复杂的模型推断

Ryi=2x1,i+5+ϵix2x3x1x2x3

require(MASS) #for multivariate normal simulation    
nsample <- 25   #sample to regress 
nholdout <- 1e6  #to check model predictions
Sigma <- matrix(c(1, 0.5, 0.4, 0.5, 1, 0.3, 0.4, 0.3, 1), nrow=3)
df <- as.data.frame(mvrnorm(n=(nsample+nholdout), mu=c(5,5,5), Sigma=Sigma))
colnames(df) <- c("x1", "x2", "x3")
df$y <- 5 + 2 * df$x1 + rnorm(n=nrow(df)) #y = 5 + *x1 + e

holdout.df <- df[1:nholdout,]
regress.df <- df[(nholdout+1):(nholdout+nsample),]

overfit.lm <- lm(y ~ x1*x2*x3, regress.df)
correctspec.lm <- lm(y ~ x1, regress.df)
summary(overfit.lm)
summary(correctspec.lm)

holdout.df$overfitPred <- predict.lm(overfit.lm, newdata=holdout.df)
holdout.df$correctSpecPred <- predict.lm(correctspec.lm, newdata=holdout.df)
with(holdout.df, sum((y - overfitPred)^2)) #SSE
with(holdout.df, sum((y - correctSpecPred)^2))

require(ggplot2)
errors.df <- data.frame(
    Model = rep(c("Overfitted", "Correctly specified"), each=nholdout),
    Error = with(holdout.df, c(y - overfitPred, y - correctSpecPred)))
ggplot(errors.df, aes(x=Error, color=Model)) + geom_density(size=1) +
    theme(legend.position="bottom")

这是我一次运行的结果,但是最好多次运行模拟,以查看不同生成的样本的效果。

>     summary(overfit.lm)

Call:
lm(formula = y ~ x1 * x2 * x3, data = regress.df)

Residuals:
     Min       1Q   Median       3Q      Max 
-2.22294 -0.63142 -0.09491  0.51983  2.24193 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)
(Intercept) 18.85992   65.00775   0.290    0.775
x1          -2.40912   11.90433  -0.202    0.842
x2          -2.13777   12.48892  -0.171    0.866
x3          -1.13941   12.94670  -0.088    0.931
x1:x2        0.78280    2.25867   0.347    0.733
x1:x3        0.53616    2.30834   0.232    0.819
x2:x3        0.08019    2.49028   0.032    0.975
x1:x2:x3    -0.08584    0.43891  -0.196    0.847

Residual standard error: 1.101 on 17 degrees of freedom
Multiple R-squared: 0.8297,     Adjusted R-squared: 0.7596 
F-statistic: 11.84 on 7 and 17 DF,  p-value: 1.942e-05

x1R2

>     summary(correctspec.lm)

Call:
lm(formula = y ~ x1, data = regress.df)

Residuals:
    Min      1Q  Median      3Q     Max 
-2.4951 -0.4112 -0.2000  0.7876  2.1706 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)   4.7844     1.1272   4.244 0.000306 ***
x1            1.9974     0.2108   9.476 2.09e-09 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 

Residual standard error: 1.036 on 23 degrees of freedom
Multiple R-squared: 0.7961,     Adjusted R-squared: 0.7872 
F-statistic:  89.8 on 1 and 23 DF,  p-value: 2.089e-09

R2R2

>     with(holdout.df, sum((y - overfitPred)^2)) #SSE
[1] 1271557
>     with(holdout.df, sum((y - correctSpecPred)^2))
[1] 1052217

R2y^y(这样做的自由度比正确指定的模型要大,因此可以产生“更好的”拟合)。查看保留项集上的预测的平方误差总和,我们没有用它来估计回归系数,并且我们可以看到过度拟合模型的表现更差。实际上,正确指定的模型是做出最佳预测的模型。我们不应该基于用来估计模型的数据集的结果对预测性能进行评估。这是误差的密度图,正确的模型规格会产生更多接近于0的误差:

保留集的预测错误

该模拟清楚地表示了许多相关的现实情况(只需想象任何依赖于单个预测变量的现实响应,并假设在模型中包括无关的“预测变量”即可),但是它具有可以在数据生成过程中使用的优势,样本大小,过拟合模型的性质等。这是检查过度拟合效果的最佳方法,因为对于观察到的数据,您通常无法访问DGP,并且在可以检查和使用的意义上,它仍然是“真实”数据。以下是一些值得尝试的有价值的想法:

  • 多次运行模拟,看看结果如何不同。与大样本相比,小样本量会发现更多的可变性。
  • n <- 1e6x1
  • 尝试通过使用方差-协方差矩阵的非对角元素来减少预测变量之间的相关性Sigma。只需记住将其保持为正半定(包括对称)即可。您应该发现,如果降低了多重共线性,那么过拟合模型的性能不会那么差。但是请记住,相关的预测变量确实存在于现实生活中。
  • 尝试试验过拟合模型的规格。如果包含多项式项该怎么办?
  • ydf$y <- 5 + 2*df$x1 + rnorm(n=nrow(df))yxi
  • yx2x3x1df$y <- 5 + 2 * df$x1 + 0.1*df$x2 + 0.1*df$x3 + rnorm(n=nrow(df))x2x3xx1x2x3nsample <- 25x1x2x3nsample <- 1e6,它可以很好地估计较弱的影响,并且仿真显示,复杂模型的预测能力优于简单模型。这表明“过度拟合”是模型复杂性和可用数据的问题。

1
(-1)非常重要的一点是要了解,过度拟合并非仅由于包含了在正确指定的模型中不会出现的“无关”或“外部”术语而导致。确实,可能有人认为,在许多应用程序中,简单真实模型的想法没有多大意义,而预测建模的挑战是建立一个模型,其复杂度与可用数据量成正比。
Scortchi

1
我会将您的照片发送给我的国会议员,以支持移民改革
原型

1
(+1)我认为所做的修改可以改善对过度拟合的解释,而不会牺牲易懂性。
Scortchi

1
@Aksakal我试图解决这个问题:“我需要有关如何提出适用于过度拟合的实际示例的帮助”。目前尚不清楚是否要求OP寻找过分适合的已发表论文,或者-更自然的意思是“跟上来”-以构建自己的示例。如果过度拟合不好,那么为什么在现实生活中有人会过度拟合?我的回答是,这样一个例子:分析师可能更倾向于对模型的规格过高与模型规格不正确(由于担心OVB或怀疑关系呈曲线关系)。图形/模拟只是显示了以下结果:错误的样本外预测
Silverfish 2014年

1
@Aksakal对我来说,不清楚图形的多项式模型是“虚幻的”。主要特征是线性的,但是我们知道它是完全线性的吗?如果我们可以使用假设的数百万个政治单位,并且我必须以任何一种方式下注,那么我宁可赌博,也可以检测到轻微的曲线关系,而不是所有多项式项都无关紧要。尽管如此,拟合到低n值,只有线性模型可以避免过度拟合。(由于无法从“可能的美国各州”的理论上无限的样本中进行采样,因此我们无法解决此问题;这是模拟数据的优势!)
Silverfish 2014年

4

当我试图自己理解这一点时,我开始用类比来描述真实的对象,因此,如果您想了解一般的想法,我想它就是“现实世界”:

假设您要向某人描述椅子的概念,以便他们得到一个概念模型,使他们可以预测找到的新对象是否是椅子。您去宜家(Ikea)并获得了一些椅子样本,并通过使用两个变量开始对其进行描述:这是一个有4条腿可以坐着的对象。好吧,这也可能描述了凳子或床或许多其他东西。您的模型不尽人意,就好像您要尝试为变量分布太少的复杂分布建模一样,很多非主席事物将被识别为主席。因此,让我们增加变量的数量,例如,添加对象必须具有后盖。现在,您已经有了一个可以接受的模型来描述您的椅子组,但是它的通用性足以允许将一个新对象标识为一个椅子。您的模型描述了数据,并且能够做出预测。但是,假设您碰巧有一套所有椅子都是黑色或白色并由木头制成的椅子。您决定将这些变量包括在模型中,然后突然将黄色塑料椅子识别为椅子。因此,您已经过度拟合了模型,并包含了数据集的特征,就好像它们通常是椅子的特征一样((如果愿意,您可以通过将样本的随机变化解释为“噪声”识别为“信号”)。整个“现实世界的椅子”的特征)。因此,您要么增加样本并希望包括一些新的材料和颜色,要么减少模型中的变量数量。不能将黄色塑料椅子识别为椅子。因此,您已经过度拟合了模型,并包含了数据集的特征,就好像它们通常是椅子的特征一样((如果愿意,您可以通过将样本的随机变化解释为“噪声”识别为“信号”)。整个“现实世界的椅子”的特征)。因此,您要么增加样本并希望包括一些新的材料和颜色,要么减少模型中的变量数量。不能将黄色塑料椅子识别为椅子。因此,您已经过度拟合了模型,并包含了数据集的特征,就好像它们通常是椅子的特征一样((如果愿意,您可以通过将样本的随机变化解释为“噪声”识别为“信号”)。整个“现实世界的椅子”的特征)。因此,您要么增加样本并希望包括一些新的材料和颜色,要么减少模型中的变量数量。

这可能是一个简单化的类比,并且在进一步的审查中可能会细分,但是我认为它可以作为一般性的概念化……让我知道是否需要澄清某些部分。


您能否更详细地解释“噪声”和“信号”的概念,以及过拟合模型描述噪声的事实,导致我在理解这一点时遇到了问题。
quirik '17

4

在预测建模中,其想法是使用手头的数据来发现现有趋势,并将其推广到未来数据。通过在模型中包含具有较小的,不重要的影响的变量,您将放弃这个想法。您正在做的事情是考虑特定样本中的特定趋势,这些趋势只是由于随机噪声而不是真正的潜在趋势而出现。换句话说,变量太多的模型适合噪声而不是发现信号。

这是我在说什么的夸张插图。这里的点是观察到的数据,线是我们的模型。看看那完美的搭配-多么棒的模型!但是,我们真的发现了趋势吗?还是只是适应噪音?可能是后者。

在此处输入图片说明


4

过度拟合的一种形式在体育运动中非常普遍,即通过没有或只能模糊地预测未来结果的因素来确定解释过去结果的模式。这些“模式”的一个共同特征是它们通常基于很少的情况,因此纯粹的机会可能是对该模式的最合理的解释。

例子包括类似的东西(“引号”由我编造,但通常看起来很相似)

自从教练开始穿着魔术般的红色外套以来,A队已经赢得了所有X场比赛。

类似:

我们不会在季后赛中刮胡子,因为那帮助我们赢得了过去的X场比赛。

不太迷信,但也有过度拟合的形式:

多特蒙德足球俱乐部从未输过一场冠军联赛主场比赛,而他们此前至少打进过一次进球,而他们此前输掉了德甲联赛两次以上的进球,却没有输给西班牙对手。

类似:

罗杰·费德勒(Roger Federer)至少在当年的澳网公开赛中打入半决赛,赢得了他所有戴维斯杯比赛的冠军。

前两个是很明显的废话(至少对我而言)。最后两个例子可能很好地适用于样本(例如,过去),但是我很乐意与一个对手打赌,如果该对手输了4,该“信息”将大大影响他的多特蒙德击败马德里的赔率:即使他当年赢得了澳网冠军,上个星期六他还是在沙尔克获得1球,或者费德勒击败德约科维奇。


3

这是一个“现实世界”的例子,并不是在研究中偶然碰到它,而是在它使用日常概念而没有许多特定于统计的术语的意义上。也许这样说对某些受过其他领域培训的人会更有帮助。

假设您有一个数据库,其中包含有关罕见病患者的数据。您是一名医学研究生,想看看您是否可以识别出这种疾病的危险因素。这家医院有8例这种疾病,您已经随机记录了100篇有关这些疾病的信息:年龄,种族,出生顺序,他们小时候是否患有麻疹等。您还记录了8位无此疾病的患者的数据。

您决定对危险因素使用以下启发式方法:如果在多于一个患病患者中某个因素具有给定值,但在您的对照组中有0个,您将认为它是危险因素。(在现实生活中,您会使用更好的方法,但我想保持简单)。您发现您的患者中有6名是素食主义者(但没有一个对照是素食主义者),有3名是瑞典祖先,其中有2名患有口吃障碍。在其他97个因素中,没有一个以上的病人发生任何事情,但在对照组中却不存在。

多年后,其他人对这种孤儿疾病产生了兴趣,并复制了您的研究成果。因为他在较大的医院工作,该医院与其他医院有数据共享合作,所以他可以使用约106例数据,而不是您的8例。他发现,在患者组和对照组中,口吃者的患病率是相同的。口吃不是危险因素。

这里发生的是,您的小组中有25%的口吃者是偶然发生的。您的试探法无法得知这是否与医学相关。您给它提供了标准,以决定何时考虑数据中的“足够有趣”的模式以使其足以包含在模型中,并且根据这些条件,结结足够有趣。

您的模型已经过拟合,因为它错误地包含了在现实世界中并不真正相关的参数。它非常适合您的样本-8位患者+ 8个对照-但不符合真实世界的数据。当模型对样本的描述比对现实的描述更好时,称为过拟合。

如果您选择了8位具有特征的患者中的3位阈值,就不会发生-但是您有更高的机会错过一些真正有趣的东西。尤其是在医学中,许多疾病仅在极少数具有危险因素的人群中发生,这是一个很难权衡的问题。有避免这种情况的方法(基本上是与第二个样本进行比较,看看解释力是保持不变还是下降),但这是另一个问题。


非常让人联想到xkcd.com/882
Floris

3

这是现实生活中过度拟合的示例,我曾对此进行过尝试,然后尝试(未成功)避免:

我有数千个独立的双变量时间序列,每个序列不超过50个数据点,并且建模项目涉及将向量自回归(VAR)拟合到每个序列。没有尝试过对观察值进行正则化,估计方差分量或类似的东西。时间点是在一年的过程中测量的,因此数据受各种季节和周期性影响的影响,每个季节仅出现一次。

与其余数据相比,数据的一个子集显示出极高的格兰杰因果关系率。抽查显示,在此子集中,正峰值出现了一个或两个间隔,但是从上下文中可以清楚地看出,两个峰值都是直接由外部来源引起的,一个峰值没有引起另一个峰值。使用这种模型进行样本外预测可能是完全错误的,因为模型过于拟合:没有通过平均峰值到其余数据中来“消除”峰值,而是没有足够的观察结果表明峰值实际上在驱动估计。

总体而言,我认为该项目进展并不顺利,但我认为它所产生的结果几乎没有本来可以做的有用。造成这种情况的部分原因是,即使有一个或两个滞后,多次独立的VAR程序仍然很难区分数据和噪声,因此适合后者的代价是要提供对噪声的了解。前任的。


1

在这个话题上有很多聪明的人---比我更精通统计。但是我仍然看不到外行人的例子容易理解。总统的例子在典型的过度拟合方面并没有完全解决这个问题,因为从技术上来说,尽管在每个疯狂的主张中它都过度拟合,但通常过度拟合模型都会过度拟合-ALL-给定的噪声,而不仅仅是其中的一个元素。

我真的很喜欢Wikipedia中的偏差-偏差权衡解释中的图表:http : //en.wikipedia.org/wiki/Bias%E2%80%93variance_tradeoff

(最下面的图表是过度拟合的示例)。

我很难想像一个听起来不像是完整的庞然大物的真实示例。想法是数据部分是由可测量,可理解的变量引起的,部分是随机噪声。尝试将此噪声建模为模式会给您带来误差。

一个经典的例子是在MS Excel中基于R ^ 2完全建模(无论多么荒谬,您都试图使用多项式从字面上尽可能地拟合方程/模型)。

假设您正在尝试将冰淇淋的销售量模拟为温度的函数。您拥有“真实世界”数据。您绘制数据并尝试最大化R ^ 2。您会发现使用实际数据,最接近的拟合方程不是线性的或二次的(这在逻辑上是合理的)。像几乎所有方程式一样,您添加的无意义的多项式项(x ^ 6 -2x ^ 5 + 3x ^ 4 + 30x ^ 3-43.2x ^ 2-29x)-越适合数据。那么,这如何将温度与冰淇淋销售合理地联系起来?您将如何解释这个荒谬的多项式?事实是,这不是真正的模型。您已经过拟合数据。

您无法解释噪音-可能是由于促销或其他一些可变因素或“噪音”所致,例如一只蝴蝶拍打着翅膀在宇宙中拍打(这是无法预料的)-并试图根据温度对其进行建模。现在,通常,如果您的噪声/误差不平均为零或与自相关,等等,这意味着那里存在更多的变量---最终您将获得通常随机分布的噪声,但是,这是我能做到的最好的方法解释一下。


2
总统漫画中后来的“模特” 确实适合所有给定的噪音。
Ben Voigt 2014年

在我看来,尽管可笑的规则可以准确地预测所有前任总统,但漫画在大多数过拟合的场景中都没有。大多数预测并没有预测二分变量。它还幽默地提到了下次选举将打破的规则-换句话说,过度拟合模型始终被错误控制,使其成为未来的完美预测器。大多数过拟合模型不是基于可以被测试为多余的1个错误变量,而是通常基于模型中的太多变量,偶然地全部加入这些变量以降低R ^ 2。
约翰·巴布森

0

大多数优化方法都有一些忽悠因素,也就是超参数。一个真实的例子:

Nmin=5,  finc=1.1,  fdec=0.5,  αstart=0.1,  fα=0.99.

这是过度适合还是仅仅适合于特定的问题集?



0

我最喜欢的是1998年世界杯足球赛前发现的“ 3964公式”:

巴西在1970年和1994年赢得了冠军。将这两个数字加起来,您将获得3964;在这个数字上,您将获得3964。德国分别在1974年和1990年获胜,再次达到3964。阿根廷分别在1978年和1986年获胜(1978年+1986年= 3964)。

这是一个非常令人惊讶的事实,但是每个人都可以看到,建议不要将任何将来的预测都基于该规则。确实,根据规则,1998年世界杯的获胜者应该是1966年+ 1998 = 3964,而英格兰则是1966年获胜。这没有发生,获胜者是法国。


-2

有点直观,但也许会有所帮助。假设您想学习一些新语言。你如何学习?您可以使用示例,而不是学习课程中的规则。特别是电视节目。因此,您喜欢犯罪节目,并且观看一些警察节目的系列节目。然后,您进行另一场犯罪表演,并观看该系列的一些系列节目。在第三个节目中,您会看到-您几乎了解所有内容,没问题。您不需要英文字幕。

但是,当您下次访问时,您在街上尝试了刚学到的语言,您意识到除了谈论“军官!那个男人拿了我的包并枪杀了那个女士!”之外,您再无话可说。当您的“训练错误”为零时,您的“测试错误”很高,这是由于语言“过拟合”,仅研究了有限的单词子集并假设单词足够。


8
并不是说过分拟合,而是在学习一部分语言。如果观看犯罪后发现您学习了整个但奇怪的语言,并且在所有与犯罪有关的主题上都与英语相吻合,而当您谈论任何其他主题时却完全显得胡言乱语(或可能是中文),那么就算过头了。
amoeba 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.