R 中的线性回归中的 Pr(>|t|) 是如何计算的?

How is Pr(>|t|) in a linear regression in R calculated?

用什么公式计算出R做线性回归时输出的Pr(>|t|)的值?

我知道 Pr (> | t |) 的值是 p 值,但我不明白该值是如何计算的。

例如x1Pr (> | t |)的值虽然在下面的输出结果中显示为0.021,但我想知道这个值是如何计算出来的

x1 <- c(10,20,30,40,50,60,70,80,90,100)
x2 <- c(20,30,60,70,100,110,140,150,180,190)
y <- c(100,120,150,180,210,220,250,280,310,330)

summary(lm(y ~ x1+x2))
Call:
lm(formula = y ~ x1 + x2)

Residuals:
   Min     1Q Median     3Q    Max 
    -6     -2      0      2      6 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)  74.0000     3.4226  21.621 1.14e-07 ***
x1            1.8000     0.6071   2.965    0.021 *  
x2            0.4000     0.3071   1.303    0.234    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 4.781 on 7 degrees of freedom
Multiple R-squared:  0.9971,    Adjusted R-squared:  0.9963 
F-statistic:  1209 on 2 and 7 DF,  p-value: 1.291e-09

基本上,t-value 列中的值是通过将系数估计值(在 Estimate 列中)除以标准误差获得的。 例如,在第二行的情况下,我们得到:

tval = 1.8000 / 0.6071 = 2.965

您感兴趣的列是 p 值。是t分布的绝对值大于2.965的概率。使用 t 分布的对称性,这个概率是:

2 * pt(abs(tval), rdf, lower.tail = FALSE)

这里rdf表示剩余自由度,在我们的例子中等于7:

rdf = number of observations minus total number of coefficient = 10 - 3 = 7

一个简单的检查表明这确实是 R 所做的:

2 * pt(2.965, 7, lower.tail = FALSE)
[1] 0.02095584