超越直线:在 OLS、交互项和 Tweedie 回归之间进行选择

您是否应该坚持经典的普通最小二乘回归、引入交互项或转向 Tweedie 分布,完全取决于您的数据如何处理零和极端异常值的混乱现实。文章《超越直线:在 OLS、交互项和 Tweedie 回归之间进行选择》首先出现在《走向数据科学》上。

来源:走向数据科学

一个机器学习模型,用于预测客户明年将在电子商务平台上花费多少钱。这项工作与往常一样是数据科学业务:加载数据、清理数据、理解数据并对结果进行建模。

我们想到的一个大问题:您从工具包中提取哪种算法?

对于回归模型,我认为我们倾向于默认使用 OLS 等经典方法,或者在其他时候,直接跳到 XGBoost 等复杂的集成方法。但根据经验,我发现广义线性框架通常正是您所需要的推理、速度和可解释性。

真正的挑战在于选择正确的口味。

  • 我们应该坚持标准的普通最小二乘法 (OLS) 回归吗?
  • 我们需要引入交互术语吗?
  • 或者我们的数据是否奇怪到需要进行 Tweedie 回归?
  • 选择错误的模型可能会导致模型输出不可能的预测,例如客户花费了负数的钱。

    让我们分解这三种方法,以便您可以自信地为您的特定数据环境选择正确的工具。

    数据集

    本练习使用的数据集将是 French Motor 第三方责任索赔数据集,来自 R 包 CASDatasets,许可 GPL >2。

    Christophe Dutang 和 Arthur Charpentier (2026).CASdatasets:保险数据集,R 包版本 1.2-1,DOI 10.57745/P0KHAG。

    # 基础知识

    将 pandas 导入为 pd

    将 numpy 导入为 np# 数据可视化将 matplotlib.pyplot 导入为 plt将seaborn导入为snssns.set_style('darkgrid')将plotly.express导入为px# 统计数据将 statsmodels.api 导入为 sm将 statsmodels.formula.api 导入为 smf导入 scipy.stats 作为统计数据# 预处理和建模从 sklearn.linear_model 导入 TweedieRegressor从 feature_engine.encoding 导入 OneHotEncoder进口警告从 sklearn.metrics 导入mean_absolute_error进口警告warnings.filterwarnings('忽略')要获取数据集,您可以在本 sklearn 教程 [4] 中使用一个代码片段。例如,它会假设: