如何解释 Python OLS Statsmodel 的摘要 table?

How to interpret the summary table for Python OLS Statsmodel?

我有一个名为 control_grid 的连续因变量 y 和一个独立的分类变量 x。 x 包含两个变量:c 和 g

使用 python 包 statsmodel 我想看看自变量是否对 y 变量有显着影响,例如:

model = smf.ols('y ~ c(x)', data=df)
results = model.fit()
table = sm.stats.anova_lm(results, typ=2)

打印 table 将其作为输出:

     OLS Regression Results                            
==============================================================================
Dep. Variable:          sedimentation   R-squared:                       0.167
Model:                            OLS   Adj. R-squared:                  0.165
Method:                 Least Squares   F-statistic:                     86.84
Date:                Fri, 13 Jul 2018   Prob (F-statistic):           5.99e-19
Time:                        16:15:51   Log-Likelihood:                -2019.2
No. Observations:                 436   AIC:                             4042.
Df Residuals:                     434   BIC:                             4050.
Df Model:                           1                                         
Covariance Type:            nonrobust                                         
=====================================================================================
                        coef    std err          t      P>|t|      [0.025      0.975]
-------------------------------------------------------------------------------------
Intercept            -6.0243      1.734     -3.474      0.001      -9.433      -2.616
control_grid[T.g]    22.2504      2.388      9.319      0.000      17.558      26.943
==============================================================================
Omnibus:                       30.623   Durbin-Watson:                   1.064
Prob(Omnibus):                  0.000   Jarque-Bera (JB):               45.853
Skew:                          -0.510   Prob(JB):                     1.10e-10
Kurtosis:                       4.218   Cond. No.                         2.69
==============================================================================

在显示系数的 table 中,我不理解因变量的描述。

它说:

control_grid[T.g]

什么是"T"? 它只关注两个变量之一吗?仅在 "g" 的作用下而不是在 "c"?

的作用下

如果您转到 here,您会看到在摘要中还显示了所有四个变量 "N"、"S"、"E" 和 "W".

P.S。我的数据看起来是这样的:

index         sedimentation control_grid
0             5.0            c
1            10.0            g
2             0.0            c
3           -10.0            c
4             0.0            g
5           -20.0            g
6            30.0            g
7            40.0            g
8           -10.0            c
9            45.0            g
10           45.0            g
11           10.0            c
12           10.0            g
13           10.0            c
14            6.0            g
15           10.0            c
16           29.0            c
17            3.0            g
18           23.0            c
19           34.0            g

我不是专家,但我会尽力解释。首先,你应该知道方差分析是回归分析,所以你正在建立一个模型 Y ~ X,但在方差分析中 X 是一个分类变量。在您的情况下,Y = 沉积,X = control_grid(这是绝对的),因此模型为 "sedimentation ~ control_grid".

Ols 执行回归分析,因此它计算线性模型的参数:Y = Bo + B1X,但是,鉴于您的 X 是分类的,您的 X 是虚拟编码的,这意味着 X 只能是 0 或 1,什么与分类数据一致。请注意,在方差分析中,估计的参数数量等于类别数量 - 1,您的数据中只有 2 个类别(g 和 c),因此 ols 报告中仅显示一个参数。 "T.g"表示该参数对应"g"类。那么你的模型就是 Y = Bo + T.g*X

现在,T.c 的参数被认为是 Bo,所以实际上,您的模型是:

Y = T.cX + T.gX 其中 X 是 O 还是 1 取决于它是 "c" 还是 "g".

那么,你在问:

1) 什么是"T"? T (T.g) 仅表示您估计和显示的参数对应于类别 "g"。

2) 它只查看两个变量之一吗? 不,分析估计了两个类别(c 和 g)的参数,但截距 Bo 表示该类别其他级别的系数,在您的数据 "c".

3) 仅受 "g" 的影响而不受 "c" 的影响? 不,实际上,分析着眼于 "g" 和 "c" 的影响。如果您查看系数 T.g 和截距 (T.c) 的值,您可以了解它们是否有意义(p 值),并且您可以说它们是否对 [=42 有影响=].

干杯,