线性回归中的多个变量的p值如何计算?

时间:2019-07-07 07:25:36

标签: python statistics regression data-science

enter image description here

我想知道如何在多元线性回归中计算各种变量的p值。我确信在阅读了少于5%的资源后,表明该变量对于模型而言很重要。但是,如何在多元线性回归中为每个变量计算p值?

我尝试使用summary()函数查看statsmodels摘要。我可以看到这些值。我没有找到关于如何计算多元线性回归中各个变量的p值的任何资源。

import statsmodels.api as sm
nsample = 100
x = np.linspace(0, 10, 100)
X = np.column_stack((x, x**2))
beta = np.array([1, 0.1, 10])
e = np.random.normal(size=nsample)
X = sm.add_constant(X)
y = np.dot(X, beta) + e
model = sm.OLS(y, X)
results = model.fit() 
print(results.summary())

这个问题没有错误,但是需要直觉如何在多元线性回归中计算各种变量的p值。

1 个答案:

答案 0 :(得分:1)

推论统计通过与已知分布进行比较来工作。在回归的情况下,该分布通常为t-distribution

您会注意到,每个变量都有一个估计的系数,根据该系数可以计算出相关的t统计量。例如,x1的t值为-0.278。要获得p值,我们将该t值放在t分布上,并计算获得与所计算的t值一样极端的值的概率。您可以通过注意到p值列称为P>|t|

来获得一些直觉

这里的另一个皱纹是t分布的确切形状取决于自由度

因此,要计算p值,您需要2条信息:t统计量和模型的剩余自由度(在您的情况下为97)

x1为例,您可以像这样计算Python中的p值:

import scipy.stats
scipy.stats.t.sf(abs(-0.278), df=97)*2

0.78160405761659357

使用其他各自的t值对其他每个预测变量执行相同的操作