logo
生物科学研究所 井口研究室
Laboratory of Biology, Okaya, Nagano, Japan
Home

偏相関と重回帰の検定統計量 t 値と p 値は同じ

井口豊(生物科学研究所,長野県岡谷市)
最終更新: 2024 年 1 月 19 日

1. はじめに

タイトル名が紛らわしくなってしまったが,偏相関分析の偏相関係数の検定統計量 t と重回帰分析の偏回帰係数の検定統計量 t は同じ数値であり,それぞれの有意確率 p も同じである,という意味である。当然だが,計算に使われる自由度も等しい。なお,ここでいう相関は, Pearson 相関のことである。

意外と知られていないようだが,両者とも,ある変数が別の変数を「調整」している,という意味で同様な手法なので,同じ統計量や有意確率が出ても不思議ではない。

ここでは,統計ソフト R とそのパッケージ ppcor を利用する。

2. 偏相関係数と偏回帰係数の検定の比較

以下のような 5 変数 x1, x2, x3, x4, x5 の仮想的な乱数標本データセットを考える。それぞれ,大きさ n は 20 とする。

その上で,以下のようなモデルを考えて計算する。

スクリプトは以下のとおりである。


#############
n <- 20

set.seed(1)

x1 <- rnorm(n)
x2 <- rnorm(n)
x3 <- rnorm(n)
x4 <- rnorm(n)
x5 <- rnorm(n)

# 偏相関係数 検定統計量 t と 有意確率 p
library(ppcor)
pcor.test(x1, x2, cbind(x3,  x4,  x5))[2:3]

# 重回帰の偏回帰係数 検定統計量 t と 有意確率 p
summary(lm(x1 ~ x2 + x3 + x4 + x5))$coef[2, 3:4]

################

結果は以下の通りである。


################################################
> summary(lm(x1 ~ x2 + x3 + x4 + x5))$coef[2, 3:4]
   t value   Pr(>|t|) 
-0.2671884  0.7929627 

> pcor.test(x1, x2, cbind(x3,  x4,  x5))[2:3]
    p.value  statistic
  0.7929627 -0.2671884
################################################

両分析で,全く同じ t 値と p 値が得られることが分かる。

実は, pcor.test のこれらの計算法は,以前は違っていた。以前のバージョンは,奥村さんの解説参照。

2. 偏相関係数と偏回帰係数の検定の自由度

どちらの方法で計算しても,同じ t 値と p 値が得られるが,自由度の説明が異なる場合があるので注意が必要だ。

偏相関係数の検定の場合は,自由度 ν が以下のように説明される。

\begin{eqnarray} \nu=n-c-2 \end{eqnarray}

ここで n は,各変数のデータ数(欠損が無いとして)であり,上記の計算では, 20 である。 c は統制変数(control variable)の個数であり,上記の計算では, x3, x4, x5 の合計 3 個である。したがって,偏相関係数の検定の自由度は以下のようになる。

\begin{array}{rcl} \nu&=&20-3-2\\ &=&15 \end{array}

一方で,重回帰分析の偏回帰係数の検定の場合は,自由度 ν が以下のように説明される。

\begin{eqnarray} \nu=n-p-1 \end{eqnarray}

ここで n は,偏相関係数の検定と同じく,各変数のデータ数(欠損が無いとして)であり,上記の計算では, 20 である。 p は偏回帰係数(パラメータ parameter とも呼ばれる)の個数であり,上記の計算では, x2, x3, x4, x5 の合計 4 個である。したがって,偏回帰係数の検定の自由度は以下のようになる。

\begin{array}{rcl} \nu&=&20-4-1\\ &=&15 \end{array}

つまり,どちらの方法でも,同じ自由度になるのである。 R を使って,上記の結果で t 値から p を求めるには以下のようにする


#############
2 * pt(0.2671884, df = 15, lower.tail = FALSE)

#############

p 値が,上記の結果と一致することが確認できる。


################################################
> 2 * pt(0.2671884, df = 15, lower.tail = FALSE)
[1] 0.7929627

################################################

なお,単回帰式における標準回帰係数は,相関係数(Pearson 相関係数)に等しくなる,ということも,知っておくべきである。

Home