简单线性回归、p 值和 AIC

机器算法验证 回归 p 值 最小二乘 aic
2022-03-15 23:38:06

我意识到这个话题在例如here之前已经出现过多次,但我仍然不确定如何最好地解释我的回归输出。

我有一个非常简单的数据集,由一列x 值和一列y 值组成,根据位置(loc)分为两组。点看起来像这样

在此处输入图像描述

一位同事假设我们应该对每个组进行单独的简单线性回归,我已经使用y ~ x * C(loc). 输出如下所示。

                            OLS Regression Results                            
==============================================================================
Dep. Variable:                      y   R-squared:                       0.873
Model:                            OLS   Adj. R-squared:                  0.866
Method:                 Least Squares   F-statistic:                     139.2
Date:                Mon, 13 Jun 2016   Prob (F-statistic):           3.05e-27
Time:                        14:18:50   Log-Likelihood:                -27.981
No. Observations:                  65   AIC:                             63.96
Df Residuals:                      61   BIC:                             72.66
Df Model:                           3                                         
Covariance Type:            nonrobust                                         
=================================================================================
                    coef    std err          t      P>|t|      [95.0% Conf. Int.]
---------------------------------------------------------------------------------
Intercept         3.8000      1.784      2.129      0.037         0.232     7.368
C(loc)[T.N]      -0.4921      1.948     -0.253      0.801        -4.388     3.404
x                -0.6466      0.230     -2.807      0.007        -1.107    -0.186
x:C(loc)[T.N]     0.2719      0.257      1.057      0.295        -0.242     0.786
==============================================================================
Omnibus:                       22.788   Durbin-Watson:                   2.552
Prob(Omnibus):                  0.000   Jarque-Bera (JB):              121.307
Skew:                           0.629   Prob(JB):                     4.56e-27
Kurtosis:                       9.573   Cond. No.                         467.
==============================================================================

在此处输入图像描述

查看系数的 p 值,位置的虚拟变量和交互项与零没有显着差异,在这种情况下,我的回归模型基本上简化为上图中的红线。对我来说,这表明将单独的线拟合到两组可能是一个错误,更好的模型可能是整个数据集的单个回归线,如下所示。

                            OLS Regression Results                            
==============================================================================
Dep. Variable:                      y   R-squared:                       0.593
Model:                            OLS   Adj. R-squared:                  0.587
Method:                 Least Squares   F-statistic:                     91.93
Date:                Mon, 13 Jun 2016   Prob (F-statistic):           6.29e-14
Time:                        14:24:50   Log-Likelihood:                -65.687
No. Observations:                  65   AIC:                             135.4
Df Residuals:                      63   BIC:                             139.7
Df Model:                           1                                         
Covariance Type:            nonrobust                                         
==============================================================================
                 coef    std err          t      P>|t|      [95.0% Conf. Int.]
------------------------------------------------------------------------------
Intercept      8.9278      0.935      9.550      0.000         7.060    10.796
x             -1.2446      0.130     -9.588      0.000        -1.504    -0.985
==============================================================================
Omnibus:                        0.112   Durbin-Watson:                   1.151
Prob(Omnibus):                  0.945   Jarque-Bera (JB):                0.006
Skew:                           0.018   Prob(JB):                        0.997
Kurtosis:                       2.972   Cond. No.                         81.9
==============================================================================

在此处输入图像描述

这对我来说在视觉上看起来不错,并且所有系数的 p 值现在都很重要。但是,第二个模型的 AIC 比第一个模型高得多

我意识到模型选择不仅仅是p 值或AIC,但我不知道该怎么做任何人都可以提供有关解释此输出和选择合适模型的任何实用建议吗?

在我看来,单个回归线看起来不错(尽管我意识到它们都不是特别好),但似乎至少有一些理由来拟合单独的模型(?)。

谢谢!

根据评论编辑

@Cagdas Ozgenc

使用 Python 的 statsmodels 和以下代码拟合两线模型

reg = sm.ols(formula='y ~ x * C(loc)', data=df).fit()

据我了解,这本质上只是这样的模型的简写

y=β0+β1x+β2l+β3xl

在哪里l是表示位置的二进制“虚拟”变量。实际上,这本质上只是两个线性模型,不是吗?什么时候loc=D,l=0并且模型简化为

y=β0+β1x

这是上图中的红线。什么时候loc=N,l=1模型变成

y=(β0+β2)+(β1+β3)x

这是上图中的蓝线。此模型的 AIC 会在 statsmodels 摘要中自动报告。对于我简单使用的单线模型

reg = ols(formula='y ~ x', data=df).fit()

我觉得这样可以吗?

@user2864849

我不认为单线模型明显更好,但我确实担心回归线的约束有多差loc=D是。这两个位置(D 和 N)在空间上相距很远,如果从中间某处收集额外数据产生的点大致绘制在我已经拥有的红色和蓝色集群之间,我一点也不感到惊讶。我还没有任何数据来支持这一点,但我不认为单线模型看起来太糟糕,我喜欢让事情尽可能简单:-)

编辑 2

为了完整起见,这里是@whuber 建议的残差图。从这个角度来看,两线模型确实看起来要好得多。

两线型号

在此处输入图像描述

单线模型

在此处输入图像描述

谢谢大家!

3个回答

您是否尝试在没有交互的情况下使用两个预测变量?所以它会是:

y ~ x + 位置

AIC 在第一个模型中可能会更好,因为位置很重要。但交互作用并不重要,这就是 P 值不显着的原因。然后,您将其解释为控制 Loc 后 x 的影响。

我认为您很好地挑战了仅 p 值和 AIC 值就可以确定模型的可行性的概念。我也很高兴你选择在这里分享。

正如您所展示的,当您考虑各种术语及其可能的相互作用时,需要进行各种权衡。所以要记住的一个问题是模型的目的如果您被委托确定位置对的影响y,那么无论 p 值有多弱,您都应该将位置保留在模型中。在这种情况下,空结果本身就是重要信息。

乍一看,似乎清楚D地暗示了一个更大的位置y但是只有一小x部分你同时拥有位置DN价值。为这个小区间重新生成模型系数可能会产生更大的标准误差。

但也许您不关心超出其预测能力的位置y这是您碰巧拥有的数据,并且在您的绘图上对其进行颜色编码揭示了一个有趣的模式。在这种情况下,您可能对模型的可预测性您最喜欢的系数的可解释性更感兴趣。我怀疑 AIC 值在这种情况下更有用。我对AIC还不熟悉;但我怀疑它可能会惩罚混合术语,因为您可以在很小的范围内更改固定的位置x很少有该位置解释x尚未解释。

您必须分别报告这两个组(或者可能考虑多级建模)。简单地组合这些组违反了回归的基本假设之一(以及大多数其他推论统计技术),即观察的独立性。或者换句话说,分组变量(位置)是一个隐藏变量,除非在您的分析中考虑到它。

在极端情况下,忽略分组变量会导致辛普森悖论。在这个悖论中,您可以有两组都存在正相关,但如果将它们结合起来,您就会得到(错误的、不正确的)负相关。(当然,反之亦然。)参见http://www.theregister.co.uk/2014/05/28/theorums_3_simpson/