1. ホーム
  2. r

[解決済み] Rの線形回帰におけるPr(>|t|)はどのように計算されるのですか?

2022-03-04 03:50:29

質問

の値は、どのような計算式で算出されるのでしょうか? Pr(>|t|) Rで線形回帰を行ったときに出力される?

の値は、「1」であると理解しています。 Pr (> | t |) はp値ですが、その値の算出方法がよくわかりません。

例えば 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))

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 列)を標準誤差で割ったものです。 例えば、あなたの場合、2行目にあるように、次のようになります。

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