我想知道如何在多元线性回归中计算各种变量的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值。
答案 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值对其他每个预测变量执行相同的操作