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

标签 python statistics regression data-science

enter image description here

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

我尝试使用summary()函数查看statsmodels摘要。我只能看到值(value)观。我没有找到任何关于如何计算多元线性回归中各种变量的 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 值。

最佳答案

推论统计通过与已知分布进行比较来发挥作用。在回归的情况下,该分布通常是 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 值对其他每个预测变量执行相同的操作

关于python - 线性回归中多个变量的 p 值是如何计算的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56920135/

相关文章:

python - ipywidgets 与 Jupyter Lab 版本 1.0+ 兼容吗?

python - 如何在 Hive 中将一列拆分为两列

r - 分区统计 R(栅格/多边形)

python - NLTK/NLP 构建多对多/多标签主题分类器

python - 用于将二维坐标映射到值的机器学习算法

python - 使用 statsmodels 的线性回归模型中将工作日作为虚拟/因子变量

r - 从函数环境运行时,R 的 `polr` 函数是否存在潜在错误?

python - 寻求比较和过滤 Pandas 日期范围重叠的有效方法

python - 将数据拟合到广义极值分布

python - 重写修饰的子类方法