Fork me on GitHub

从统计学角度看线性回归中的回归系数

我们对两个数组进行线性回归之后,得到了他们之间的线性方程以及一系列对回归方程的评估结果。我们希望从评估结果中得到一些信息。比如线性方程的参数是什么?比如两个数组之间的线性关系有多强,如何表明它们线性关系的强度?这里,我用R软件给出的结果来进行说明。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
> lmD <- glm(mcf~life,mcfD,family = 'gaussian')
> summary(lmD)
Call:
glm(formula = mcf ~ life, family = "gaussian", data = mcfD)
Deviance Residuals:
Min 1Q Median 3Q Max
-0.09918 -0.05403 -0.01076 0.04932 0.30786
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 9.949e-02 3.774e-03 26.36 <2e-16 ***
life 6.865e-04 5.612e-06 122.33 <2e-16 ***
---
Signif. codes: 0 ?***? 0.001 ?**? 0.01 ?*? 0.05 ?.? 0.1 ? ? 1
(Dispersion parameter for gaussian family taken to be 0.004424822)
Null deviance: 70.7886 on 1034 degrees of freedom
Residual deviance: 4.5708 on 1033 degrees of freedom
AIC: -2669
Number of Fisher Scoring iterations: 2

这里我想研究一批机器使用时长(life)与故障次数(mcf)之间的线性关系.于是我使用lmD <- glm(mcf~life,mcfD,family = 'gaussian')得到两个数组之间的线性模型。再用summary(lmD)列出这个模型的统计结果。从Call之后的模型统计结果可以分为5个部分。我们解释前面三个结果。我们假设回归模型为y=ax+b.

1.线性模型。mcf是因变量,life是自变量,如果有多个自变量可以写成life1+life2+life…的形式,系统会默认在后面+1表示常量(即1*b,又称为截距),mcfD是data.frame,family是对#误差分析的假设#,误差即模型预测值与真实值的差。我们假设误差是服从正态分布的。

2.残差。残差指模型的误差。这里给出了误差的0%,25%,50%,75%,100%分位点的值。

3.系数。这里给出了我们在线性模型中给出的自变量和常量的回归系数及系数作为样本估计量的统计结果。第一行是常量的回归系数b(截距)和统计结果,第二行是life的回归系数a和统计结果。我们知道这些回归系数是那两个数组(life,mcf)的估计量,是一个随机变量,所以我们统计了它们的标准差表示他们的离散程度。后面的t-value和p-value是假设检验中的概念。下面是对这两个参数的解释。简单来说,p-value越小,说明我们的回归参数不为0的概率更大,线性程度更强。

我们分四点来解释假设检验中的内容,这个是从统计学角度来看线性回归的回归系数的关键内容。
a). 在我们对参数进行估计之后,会希望评估参数的估计是否准确,这就是假设检验做的事情。这里的t-value和p-value就是对回归系数进行假设检验之后得到的结果。假设检验首先会提出一个假设”回归系数为0”,这个叫原假设,它的否命题”回归系数不为0”叫做备择假设。然后我们要根据证据来选择支持或拒绝原假设。

b). 这里我们要提到置信水平(confidencce level),这个概率叫第一类错误的概率,也称为弃真概率,是指拒绝原假设且原假设为真的概率,这是我们进行假设检验的一个准则。这个值给我们定义了”我对这次假设检验有把握”的程度。一般情况下,我们把置信水平设置为0.01或0.05

c). 我们知道多次实验得到的样本均值进行变换之后服从t分布。(X_mean - mu/std.error) ~ t(degreee of freedom). t分布的密度图类似于0-1正态分布,是一个钟形曲线,是对多次实验的样本均值分布的描述。所以样本均值应该分布于0附近。如果离0太远了,我们就有理由因为这个样本均值而拒绝我们的原假设。于是,我们先算出(X_mean - mu/std.error),称为t-value。再根据t分布的界值表找到对应自由度和t-value的对应的P(x > |t-value|),如果这个概率值太小,说明我们的t-value离0太远了,所以要拒绝我们的原假设。另外,我们也可以先从t分布的自由度和置信水平来找对应的值。如果t-value超过了这个值,那么也说明在我们的置信水平之下,它不是一个可信的样本均值了。所以要拒绝原假设。这里就是t-value和置信水平的变换,t-value可以确定一个与置信水平进行对比的概率,置信水平可以确定一个与t-value进行对比的值。通过这两种对比的方式我们都可以判断是否要拒绝原假设。

d). 在我们这里的回归参数的假设检验中,我们要检验的结论是:真实的系数不等于0(回归系数6.865e-04和9.949e-02)。因为系数不等于0说明两组数据之间的是有线性关系的,如果拒绝这个假设,我们就认为这个模型是有意义的。

最后来回答一下,之前提出的两个问题,回归参数是什么在第三点中有。判断线性关系显著性则是看第三点中的p-value的值,这个值越小说明回归系数越不可能为0,则线性关系越显著。但是真正判断两个数组之间的线性相关性的强弱,我们应该用相关系数,用pearson相关系数判断线性相关性的强弱,用spearman相关系数判断非线性相关性的强弱。

这是我在之前犯的一个错误,我觉得线性关系的强弱可以用显著性来判断,然而这个显著性其实是用来判断回归系数的情况。其实我们并不需要把回归系数求出来就已经可以判断了。

No pain, No gain