我正在尝试为具有右偏结果以及存在“异常值”的数据集选择回归模型(由于数据的性质,异常值是非常高的值)。数据是时间敏感的,因此对于模型构建,我根据时间(无 k 倍 CV)将数据集拆分为训练集和测试集,目的是在预测准确性方面获得最佳模型。
考虑到结果的偏度和异常值的存在,RMSE 和 R^2 似乎不太合适。就预测准确性而言,用于评估不同模型(例如特征和超参数)的最佳误差指标是什么?数据集的大小很小(训练范围为 500,测试范围为 100),因此即使是极少数的异常值也可能会改变我的评估结果。
我正在尝试为具有右偏结果以及存在“异常值”的数据集选择回归模型(由于数据的性质,异常值是非常高的值)。数据是时间敏感的,因此对于模型构建,我根据时间(无 k 倍 CV)将数据集拆分为训练集和测试集,目的是在预测准确性方面获得最佳模型。
考虑到结果的偏度和异常值的存在,RMSE 和 R^2 似乎不太合适。就预测准确性而言,用于评估不同模型(例如特征和超参数)的最佳误差指标是什么?数据集的大小很小(训练范围为 500,测试范围为 100),因此即使是极少数的异常值也可能会改变我的评估结果。
我不认为这里的问题是您的指标;RMSE & R^2 通常是可以接受的。通常,偏离正态并不是主要问题(参见此处的讨论)。但是,如果您有许多异常值,如果您将正在使用的误差分布更改为可能表现出偏度的误差分布,您可能会改进您的模型。
或者,您可以转换您的数据,以便您的残差随后更正态分布。如果您的残差是右偏斜的,则对数变换或平方根变换可能会解决您的问题。
只是在这里吐口水,但这似乎是一个与统计问题一样多的经济学问题。鉴于您的应用程序,您似乎想要选择最大化您的“利润”的模型:用户在没有代金券的情况下将花费多少加上代金券的额外支出减去代金券的成本。
我假设您正在预测支出,并根据预测的支出将它们分类为少数凭证类别之一。如果是这样,对于不同类型的消费者来说,错误分类会让您付出更多代价,具体取决于有多少人、他们花费了多少以及他们对您的代金券有多敏感。
如果是这样,您可以执行以下操作:
= ...
现在,您有了一个基于错误分类概率的利润函数。您可以使用它来选择模型。与 RMSE 或其他指标一样,它或多或少地对不同的尺寸误差进行加权,但它基于您的具体情况而不是数学函数。
由于您的响应变量正在支出,因此假设它是对数正常并使用对数转换可能是合理的,这可以消除偏度。我相信收入分配通常很符合对数正态分布,所以也许支出也是如此。
你说的时间敏感是什么意思?你有时间测量吗?如果是这样,您可能正在处理错误不独立的时间序列问题。这将使典型回归的标准错误等内容无效。您可能想研究解释时间相关性的模型。