You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解读statsmodels多元线性回归model.summary()的分类变量与截距?

多元线性回归结果解读疑问

我正在使用statsmodels库执行多元线性回归,检验混杂变量对因变量的影响,代码如下:

model = ols(f'{metric}_diff ~ {" + ".join(confounding_variable_names)}', data=df).fit()

数据样例(仅展示2行):

Age     Sex  Experience using a gamepad (1-4)   Experience using a VR headset (1-4)  Experience using hand tracking (1-3)  Experience using controllers in VR (1-3) Glasses  ID_1  ID_2       Method_1       Method_2 ID_controller ID_handTracking  CorrectGestureCounter_controller  CorrectGestureCounter_handTracking  IncorrectGestureCounter_controller  IncorrectGestureCounter_handTracking
IDs                                                                                                                                                                                                                                                                                                                                                                                                          
ID_K_1_3     25  Female                                 4                                     3                                     1                                         2     Yes   K_1   K_3     controller   handTracking           K_1             K_3                                21                                  34                                   5                                     2
ID_K_4_5     19    Male                                 4                                     2                                     1                                         2     Yes   K_4   K_5     controller   handTracking           K_4             K_5                                21                                  36                                  14                                    17

执行model.summary()后得到回归输出:

OLS Regression Results                                
======================================================================================
Dep. Variable:     CorrectGestureCounter_diff   R-squared:                       0.477
Model:                                    OLS   Adj. R-squared:                  0.249
Method:                         Least Squares   F-statistic:                     2.088
Date:                        Wed, 28 Dec 2022   Prob (F-statistic):              0.105
Time:                                15:29:41   Log-Likelihood:                -73.565
No. Observations:                          24   AIC:                             163.1
Df Residuals:                              16   BIC:                             172.6
Df Model:                                   7                                         
Covariance Type:                    nonrobust                                         
==========================================================================================================
                                             coef    std err          t      P>|t|      [0.025      0.975]
----------------------------------------------------------------------------------------------------------
Intercept                                -24.6404      9.326     -2.642      0.018     -44.410      -4.871
Sex[T.Male]                               -7.3225      3.170     -2.310      0.035     -14.043      -0.602
Glasses[T.Yes]                            -2.4210      2.995     -0.808      0.431      -8.771       3.929
Age                                        0.2957      0.183      1.613      0.126      -0.093       0.684
Experience_using_a_gamepad_1_4             1.8810      1.853      1.015      0.325      -2.047       5.809
Experience_using_a_VR_headset_1_4          0.9559      3.213      0.297      0.770      -5.856       7.768
Experience_using_hand_tracking_1_3        -2.4689      3.633     -0.680      0.506     -10.170       5.232
Experience_using_controllers_in_VR_1_3     2.3592      4.840      0.487      0.633      -7.902      12.620
==============================================================================
Omnibus:                        0.621   Durbin-Watson:                   2.566
Prob(Omnibus):                  0.733   Jarque-Bera (JB):                0.702
Skew:                          -0.277   Prob(JB):                        0.704
Kurtosis:                       2.371   Cond. No.                         205.
==============================================================================

疑问:

  1. Sex旁的[T.Male]和Glasses旁的[T.Yes]是什么含义?该如何解读?
  2. 为什么输出中会添加Intercept?
  3. 在混杂变量分析场景下是否需要关注它?

问题解答

1. Sex[T.Male]和Glasses[T.Yes]的含义与解读

这是statsmodels对**分类变量(类别型自变量)自动做的虚拟编码(Dummy Coding)**处理:

  • 对于Sex变量,它包含Female和Male两个类别,statsmodels默认选择其中一个作为基准组(参照组),这里基准组是Female(因为结果里只显示了[T.Male])。Sex[T.Male]的系数(-7.3225)表示:在其他所有变量保持不变的情况下,男性群体的因变量CorrectGestureCounter_diff平均值比女性低7.3225,且这个差异在0.05的显著性水平下是统计显著的(P值=0.035<0.05)。
  • 对于Glasses变量,它的类别是Yes和隐含的No,基准组是No,Glasses[T.Yes]的系数(-2.4210)表示:戴眼镜的群体因变量平均值比不戴眼镜的群体低2.4210,但这个差异不显著(P值=0.431>0.05)。

简单来说,[T.类别名]代表该类别相对于基准组的差值,基准组是该变量中未出现在结果里的那个类别。

2. 为什么输出中会添加Intercept?

Intercept(截距项)是线性回归模型的默认组成部分,它代表所有自变量取基准值时,因变量的预测平均值:

  • 对于连续变量(比如Age),基准值是0;
  • 对于分类变量,基准值是前面提到的基准组(比如Sex的Female、Glasses的No)。

在你的模型里,截距项(-24.6404)的含义是:当Age=0、性别为Female、不戴眼镜、所有Experience类变量都取0时,因变量的预测值。虽然Age=0在现实中没有实际意义,但从数学拟合角度,它是模型的必要项,能让回归直线更好地贴合数据分布。

statsmodels的ols模型默认包含截距项,若要去掉可在公式中加-1,比如f'{metric}_diff ~ {" + ".join(confounding_variable_names)} - 1',但除非有明确统计需求,一般不建议这么做。

3. 混杂变量分析场景下是否需要关注Intercept?

在混杂变量分析中,核心目标是检验各混杂变量对因变量的影响是否显著,以及效应大小,通常情况下:

  • 截距项本身的实际意义有限(尤其当自变量基准值在现实数据中不存在时,比如Age=0);
  • 不需要特别关注截距项的显著性,除非你的研究问题本身聚焦于“所有混杂变量处于基准状态时的因变量水平”。

你的重点应放在各个混杂变量(如Sex、Age、各类Experience变量)的系数、P值和置信区间上,判断它们是否属于需要控制的混杂因素。


内容的提问来源于stack exchange,提问作者Wojtek Wencel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 18:11:05