深度学习回归和OLS的对比

2021-08-28  本文已影响0人  多多爸

照着R语言和深度学习第三章 “3.6预测房价:一个回归的例子” 做了一遍,用同样的数据又跑了一遍OLS作对比,算是对深度学习多了点理解。

1. 数据

数据来自1970年代中期波士顿,内生变量是郊区房屋的价格中位数,外生变量包括房屋特征、住房所在区域的特征等13个变量。书里没有具体说明数据来源,也没有变量名或者标签,估计是截面数据,否则应该包括年份变量。训练样本404个,测试样本102个。

2. 模型设置

3. 模型训练

4. 测试

5. OLS模型

为了保持可比性,也是用训练样本跑的回归,然后使用回归系数对测试样本进行预测,然后计算MAE,结果为3.3,就是说精度比深度学习方法低了10%。

为了省事,没有用K折方法,由于K折验证降低样本量,估计使用K折或者bootstrap会进一步降低精度。

由于不知道自变量的定义,无法采用更有效的模型,比如传统的房价模型会把某几个变量做交叉或者做二次项,这类模型会获得更高的精度,用这些更好的模型作对比会更有意义,毕竟深度学习模型是高度非线性的。曾经用美国的数据跑过,调一下模型可以使R平方从65%提高到80%,那么把精度再提高10%也许不算难事。

6. 结论与若干细节

  1. 研究问题的影响
    住房市场是很成熟的市场,每个变量的影响在交易过程中已经被考虑得很充分,也就是说市场已经给每个变量制定了合理的价格。这些价格的形成来自买家与卖家(也许还有中介)的讨价还价过程,也就是来自人的计算。人在讨价还价时不会做特别复杂的计算,非常可能就是靠大脑中的线性模型计算,比如100平米的房子比50平米贵两倍。这种情况下,OLS和深度学习取得相同的效果是可以理解的。
    但这不是说深度学习是多此一举,更好的解释是,如果真实的模型是线性的,那么深度学习这个黑箱最终给出的也是个线性模型。对于更复杂的市场,或许深度学习更有优势。
  2. 样本量的影响
    即便真实的世界定价是非线性的,想从几百个样本当中提取复杂的非线性关系,恐怕也不容易。
  3. 运行速度
    大概是batch_size的影响,深度学习跑得很慢,而OLS基本上是一个命令搞定,回车敲下去,立刻出结果。再一次,样本量如果够大(再大的样本OLS还是非常快),batch_size设置大一些,速度可能不再是个问题,而且还可能获得OLS抓不到的效应。
  4. 对世界的理解
    OLS可以看到每个变量的影响,而且还需要我们思考变量是否内生,以确定因果关系。深度学习目的却只在预测,无法提供对世界的理解。经济学知识(以及其他社会科学知识)和计量经济学方法,对于理解世界来说,仍然不可缺少。好的深度学习模型仍然需要和专业知识合作——至少输入哪些变量、生成哪些新变量还是需要专家来决定吧。
    现在我明白了Susan Athey为什么会结论机器学习,或者AI,并不能用来揭示因果关系,只是在模型选择上提供帮助。
  5. 几个细节问题
    (1)为了让模型跑得更快,深度学习通常会把因变量进行标准化变换,每个变量增加1,意味着增加一个标准差。如果是在OLS当中做这种变换,回归系数的解释需要跟着调整。但深度学习并不在意回归系数,只要因变量不做标准化,预测结果的单位是保持不变的。(当然OLS的预测也不会跟着因变量标准化而变化。)
    (2)OLS通常要考虑的内生性、样本选择等问题,原因是一旦出现上述问题,对系数的估计会出现不一致——也就是说样本一旦改变,估计结果会发生显著变化。机器学习虽然不考虑这些问题,但通过使用测试样本,可以对估计结果一致性做出反应,也就是说过拟合。或许机器学习方法能够为计量的结果提供一些参考,这个问题就有待计量经济学家去回答了。

Update

(2021.9.23)
TensorFlow for R网站给出了波士顿房价变量说明,所给的代码也比书里更详细,值得读。

上一篇下一篇

猜你喜欢

热点阅读