如何建模有界目标变量?

机器算法验证 回归 界限
2022-01-29 06:08:40

我有 5 个变量,我试图预测我的目标变量,它必须在 0 到 70 的范围内。

如何使用这条信息更好地为我的目标建模?

3个回答

你不必做任何事情。预测器可能会正常工作。即使预测器外推到范围之外的值,也可能将预测限制在范围内(即,使用max(0,min(70,y^))代替y^) 会做得很好。交叉验证模型以查看这是否有效。

然而,受限范围增加了因变量之间存在非线性关系的可能性(y) 和自变量 (xi)。这方面的一些额外指标包括:

  • 残值的更大变化时y^与范围两端的残差变化相比,处于其范围的中间。

  • 特定非线性关系的理论原因。

  • 模型错误规格的证据(以通常的方式获得)。

  • 二次项或高阶项的意义xi.

考虑一个非线性的重新表达y如果这些条件中的任何一个成立。

有很多方法可以重新表达y建立更线性的关系xi. 例如,任何递增函数f在区间上定义[0,70]可以通过“折叠”创建对称递增函数yf(y)f(70y). 如果f随着它的论点接近,变得任意大和负0, 的折叠版本f将映射[0,70]到所有实数中。此类函数的示例包括对数和任何负幂。使用对数相当于@user603推荐的“logit链接”。另一种方法是让G是任何概率分布的逆 CDF 并定义f(y)=G(y/70). 使用正态分布给出“概率”转换。

利用转换族的一种方法是进行实验:尝试可能的转换,对转换后的对象执行快速回归y反对这xi,并测试残差:它们应该看起来独立于y(同调且不相关)。这些是与自变量呈线性关系的迹象。如果反向变换的预测值的残差往往很小,它也会有所帮助。这表明转换改善了拟合。要抵抗异常值的影响,请使用稳健的回归方法,例如迭代重新加权最小二乘法

重要的是要考虑为什么您的值限制在 0-70 范围内。例如,如果它们是 70 个问题测试中正确答案的数量,那么您应该考虑“成功次数”变量的模型,例如过度分散的二项式回归。其他原因可能会导致您找到其他解决方案。

数据转换:重新调整您的数据所在的位置[0,1]并使用带有 logit 链接的 glm 模型对其进行建模。

编辑:当您重新缩放向量(即,将所有元素除以最大条目)时,通常在您这样做之前,筛选(眼球)以查找异常值。

更新

假设您可以访问 R,我将使用强大的glm 例程进行建模部分,请参阅glmrob()包装内robustbase.