数据科学家面试问题:线性回归低,你会怎么做R2R2

机器算法验证 回归 自习 数理统计
2022-03-03 14:28:05

我遇到了一个面试问题,面试官问我假设你的对于价格弹性模型来说非常低(在 5% 到 10% 之间)。你会如何解决这个问题?R2

除了我将进行回归诊断以查看出了什么问题或是否应该应用任何非线性方法这一事实之外,我想不出其他任何事情。不知何故,我认为面试官对我的回答不满意。尽管较低,但在这种情况下是否还有其他方法可以拟合模型并将其用于生产水平预测?R2

编辑:在稍后阶段,他们在面试期间给了我数据来模拟问题,我尝试添加滞后变量、竞争对手价格的影响、季节性假人,看看它是否有任何不同。达到 17.6%,它在保持样本上的表现很差。就我个人而言,我认为将这样的模型用于实时环境中进行预测是不道德的,因为它会给出错误的结果并导致客户流失(想象一下使用这种模型的定价建议对您的公司收入!)。在这种情况下,还有什么其他事情太明显以至于每个人都需要知道吗?我不知道的东西,我很想说'银弹'?R2

另外,让我们想象一下,在添加外生变量后进一步提高了 2%,那么在这种情况下可以做些什么呢?我们是否应该放弃建模项目,或者仍然有希望开发一个生产水平质量的模型,该模型由保留样本的性能表示?R2

Edit2我在economics.stackexchange.com论坛上发布了这个问题,以便从经济学的角度理解这个问题

3个回答

如果我们从这个角度来看问题。价格弹性是需求与产品价格之间的关系。

当这种情况下的 r 平方较低时,我们可能会暗示该特定产品的价格和需求之间的关系不是很强。

从定价的角度来看,这可能意味着您找到了一种可以任意定价的产品,而不会对需求产生很大影响,或者尽管定价不同,但需求却非常不稳定。

如果您查看Veblen 商品,它们是弹性反向的示例。随着价格上涨,需求增加。

另一方面,如果 r-square 较低,则它可能仅表示在需求方面价格相对不重要的一类产品。在我的脑海中,一种抗癌药物可能是一种可以坚持这种特性的东西。药物的重要性超过了它所要求的价格,并且需求不会发生变化。

最后,我假设面试官的意图可能是判断你是否知道低 r 方的含义,而不是找出如何用更高的 r 方构建更好的模型。

我不确定面试官的目的是什么,但是当面对一个表现不佳的模型时,这些是我考虑的事情,也是我作为面试官喜欢听到的答案(现在已经面试了几年)。

  1. 获取更多数据:这可能并不总是有帮助,但有几件事可以帮助您评估此解决方案的效果:

    • 使用不同的样本大小运行模型 - 如果结果随着更多数据而改善,那么合理假设获得更多数据将继续提高模型性能。
    • 特征与样本的比率 - 选择特征后,尝试了解每个特征值是否有足够的样本。请参阅有关此主题的已回答问题
    • 缺少目标值 - 弹性在不同价格范围之间的表现可能不同。在您的样本数据偏向特定范围的情况下,您很有可能无法进行概括(例如,90% 的样本适用于 0-10 之间的价格,而另外 10% 的样本适用于介于1000-10000)。除了获取更多数据(拆分模型训练,不要使用回归)之外,还有其他方法可以解决这个问题。
  2. 更好的特征工程:如果你有足够的数据并且你知道深度学习,那么这个可能是无关紧要的。如果您不符合上述标准,请将您的精力集中在这一标准上。在用户行为模型中,我们的人类直觉比机器训练模型更好地理解了许多关系。
    就像您设计了更多功能并大大提高了模型性能一样。这一步很容易出错,因为它通常涉及基于逻辑的代码(如果 Elses/数学公式)。

  3. 更好的模型选择:正如您所建议的,也许非线性模型会更好。你的数据是同质的吗?你有理由相信交叉特征能更好地解释价格弹性吗?(季节性 * 竞争对手的价格)。

  4. 超参数调整:网格搜索模型的超参数(+交叉验证结果)是一个很好的实践,但就我的经验而言,它很少能大大提高性能(肯定不是从 5% 到 90%)。

还有更多可以做的事情,但这些点足够通用。

除了@DaFanat 和@Arun 的建议之外,我想补充一点,一些视觉检查可能会有所帮助。

例如,某些异常值可能会影响您的在解决收入管理问题后,我不得不不断调查影响点异常值通常与特定的一次性事件相关联,例如促销活动、折扣等。R2