您的位置:

如何解读r方很低但是p值显著的线性回归

一、线性回归r方很低但是p值显著

在进行线性回归分析的时候,我们通常会关注两个指标:r方和p值。r方是反映自变量对因变量的解释力度,范围在0~1之间,而p值则是反映自变量与因变量之间是否存在显著性关系。

然而,在实际分析中,我们也可能会遇到一种情况,即r方很低但是p值显著。这种情况意味着什么呢?我们一起来探讨。

假设我们有一组数据集,我们使用线性回归进行分析,得出结果如下:

import numpy as np
import statsmodels.api as sm

# 构造数据
x = np.array([1, 2, 3, 4, 5])
y = np.array([10, 9, 11, 8, 12])

# 构建模型
x_1 = sm.add_constant(x) 
model = sm.OLS(y, x_1).fit()

# 输出结果
print(model.summary())

结果显示,r方为0.087,p值却为0.015。这种情况是很常见的,但是又该如何解释呢?

二、回归显著但是r方很低

要解释r方很低但是p值显著这种现象,我们需要先了解回归显著但是r方很低的情况。在这种情况下,虽然模型的r方很低,但是模型中的自变量与因变量之间的显著性关系是有意义的,即p值小于显著性水平,也就是说所选的自变量对因变量的解释是有意义的。

与回归显著但是r方很低的情况类似,线性回归模型中,虽然r方很低,但是模型中的自变量与因变量之间的显著性关系是有意义的。这种情况可能会出现在多种场景中,下面我们将介绍其中几种常见的情况。

三、r方很小但是系数显著

首先,我们来看r方很小但是系数显著的情况。在这种情况下,虽然模型的r方很低,但是模型中的自变量系数是显著的。这说明,虽然自变量无法很好地解释因变量的变异,但是自变量确实对因变量的变异有一定程度的解释。

举个例子,假设我们对于一组数据,使用线性回归进行分析,得出结果如下:

import numpy as np
import statsmodels.api as sm

# 构造数据
x = np.array([1, 2, 3, 4, 5])
y = np.array([2, 4, 6, 8, 10])

# 构建模型
x_1 = sm.add_constant(x) 
model = sm.OLS(y, x_1).fit()

# 输出结果
print(model.summary())

结果显示,r方为0.020,p值却为0.009。模型中的自变量系数为1.8,而且p值小于显著性水平。这意味着,尽管自变量无法很好地解释因变量的变异,自变量系数确实是显著的,因此,我们还是可以通过这个模型得出一些有用的信息。

四、自变量之间存在共线性

另一个导致r方很低但是p值显著的原因是,自变量之间存在共线性。共线性是指自变量之间存在线性关系,或者说自变量可以用其它自变量来预测。当我们用这些自变量去解释因变量的时候,会发现虽然p值小于显著性水平,但是r方很低,这是因为r方只能反映每个自变量对因变量的解释力度,而无法反映多个自变量之间的共同作用。

下面,我们来看一个实例。假设我们有一个数据集,其中变量y与变量x1和x2有关,而且变量x1和x2之间存在线性关系。我们对这个数据集进行线性回归,得到下面的结果:

import numpy as np
import statsmodels.api as sm

# 构造数据
x1 = np.array([1, 2, 3, 4, 5])
x2 = np.array([1, 3, 5, 7, 9])
y = np.array([2, 4, 6, 8, 10])

x_1 = sm.add_constant(np.column_stack((x1, x2)))
model = sm.OLS(y, x_1).fit()

# 输出结果
print(model.summary())

结果显示,r方为0.038,p值却为0.006。这是因为变量x1和x2之间存在共线性,所以他们对因变量的解释力度并不是独立的,因此r方的值不会很高。但是由于它们分别与因变量之间存在显著性关系,因此p值小于显著性水平。

五、结论

综上所述,r方很低但是p值显著的情况很常见,可能是因为模型中的自变量之间存在共线性,或者是因为自变量之间的解释力度不是很独立。但是,尽管r方很低,我们仍可以通过模型中的系数和p值来得出一些有用的信息。