Ryo*_*uki 3 statistics regression r p-value
Pr(>|t|)当用R执行线性回归时,使用什么公式来计算输出值?
我了解的值Pr (> | t |)是p值,但我不了解该值是如何计算的。
例如,尽管of Pr (> | t |)的x1值显示为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))
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
基本上,该列t-value中的值是通过将系数估计值(在该Estimate列中)除以标准误差而获得的。例如,在您的第二行中,我们得到:
tval = 1.8000 / 0.6071 = 2.965
Run Code Online (Sandbox Code Playgroud)
您感兴趣的列是p值。t分布的绝对值大于2.965的可能性。使用t分布的对称性,该概率为:
2 * pt(abs(tval), rdf, lower.tail = FALSE)
Run Code Online (Sandbox Code Playgroud)
这里rdf表示剩余自由度,在我们的例子中等于7:
rdf = number of observations minus total number of coefficient = 10 - 3 = 7
Run Code Online (Sandbox Code Playgroud)
一个简单的检查表明这确实是R所做的:
2 * pt(2.965, 7, lower.tail = FALSE)
[1] 0.02095584
Run Code Online (Sandbox Code Playgroud)