如何解释 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 有影响=].
干杯,
我有一个名为 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 有影响=].
干杯,