回帰分析における残差の自由度がn-kになる理由をk元一次方程式で説明してみる

# はじめに
この記事では，単回帰分析や重回帰分析において残差の自由度は$n-k$になる(サンプル数が$n$，説明変数の個数をがk$)ということを，連立方程式を使って理解しよう試みた記事なります．多少粗い説明でもいいから，それなりの説明が欲しいと言う方のご参考になれば嬉しいです．

## 前提
統計検定などに頻出する回帰分析に関する記事です．「そもそも回帰分析とはどんなやつか」という内容を書籍などで確認なさっていることが前提になります．

## 構成
初めに10個の変数を使って自由度を$1$から順に試す，ということをやっています．次に10個の変数に「平均値は$10$」のような制約のあるパターンで試します．最後に説明変数が$1$から順に増えていく回帰分析を対象にして，自由度を確かめるという構成になっています．

初めの2つはできるだけ丁寧に自由度を$1$から試すと言うことをやっているので，分量だけ見れば結構多いです．後の2つは初めにかなり丁寧に試したので，本当に$n-k$なのか($n$はサンプル数，$k$は説明変数の個数)ということだけを確かめているために，$n-k-1$と$n-k$だけを試しています．

# 説明
## 自由度の計算例
[自由度 | 統計学の時間 | 統計WEB](https://bellcurve.jp/statistics/course/14989.html#:~:text=%E8%87%AA%E7%94%B1%E3%81%AB%E5%80%A4%E3%82%92%E5%8F%96%E3%82%8C%E3%82%8B,%E5%89%B2%E3%81%A3%E3%81%9F%E3%82%82%E3%81%AE%E3%81%A7%E3%81%97%E3%81%9F%E3%80%82)を拝見すると次のように書いて下さっています．

> 自由に値を取れるデータの数のことを自由度と言います．サンプルサイズnの標本の自由度はnであり，基本的にはサンプルサイズがそのまま自由度となります．

したがって次のような「10個の数値($x_0, x_1, ..., x_9$)」の自由度を考える場合に

```math
x_0=?, x_1=?, x_2=?, x_3=?, x_4=?, x_5=?, x_6=?, x_7=?, x_8=?, x_9=?
```

自由度は(たぶん)1からサンプルサイズである10までのいずれかの値になるはずです．以下，自由度を1～10まで試して「もう自由に決めても大丈夫な値がない」という最大のところを探ってみます．「自由に決めてよい値に変える」という動作を以下では「$=?$」の「$?$」を具体的な数値($10$とか，$11$とか)と書き換えることで表現しようと思います．

### 自由度1

```math
x_0=10, x_1=?, x_2=?, x_3=?, x_4=?, x_5=?, x_6=?, x_7=?, x_8=?, x_9=?
```
自由に決めてもいい値が他にもあるので自由度を上げます．

### 自由度2

```math
x_0=10, x_1=11, x_2=?, x_3=?, x_4=?, x_5=?, x_6=?, x_7=?, x_8=?, x_9=?
```
自由に決めてもいい値が他にもあるので自由度を上げます．

### 自由度3

```math
x_0=10, x_1=11, x_2=12, x_3=?, x_4=?, x_5=?, x_6=?, x_7=?, x_8=?, x_9=?
```
自由に決めてもいい値が他にもあるので自由度を上げます．

 ...

### 自由度8

```math
x_0=10, x_1=11, x_2=12, x_3=13, x_4=14, x_5=15, x_6=16, x_7=17, x_8=?, x_9=?
```
自由に決めてもいい値が他にもあるので自由度を上げます．

### 自由度9

```math
x_0=10, x_1=11, x_2=12, x_3=13, x_4=14, x_5=15, x_6=16, x_7=17, x_8=18 x_9=?
```
自由に決めてもいい値が他にもあるので自由度を上げます．

### 自由度10

```math
x_0=10, x_1=11, x_2=12, x_3=13, x_4=14, x_5=15, x_6=16, x_7=17, x_8=18, x_9=19
```
自由に決めてもいい値が他にないので，$自由度=10$と言えると思います．

## 自由度の計算例(制約があるパターン)
先ほどの計算例は制約が特になく，単に「10個の数値($x_0, x_1, ..., x_9$)」が与えられたという状況でした．これに対して制約「10個の数値($x_0, x_1, ..., x_9$)の平均値は$10$」という制約があるパターンで自由度を1から10まで上げてみましょう．できるだけ丁寧にやりたいので自由度が1の状態から10の状態まで途中飛ばしながらですが，やってみます．回帰分析に話を応用するときにはできるだけ割愛しますのでご勘弁ください．対象とする値は先ほどと同様に次のような10個の値たちです．

```math
x_0=10, x_1=11, x_2=12, x_3=13, x_4=14, x_5=15, x_6=16, x_7=17, x_8=18, x_9=19
```

制約は次のように設定します．

```math
\frac{x_0+x_1+x_2+x_3+x_4+x_5+x_6+x_7+x_8+x_9}{10}=10
```

### 自由度1

```math
x_0=10, x_1=?, x_2=?, x_3=?, x_4=?, x_5=?, x_6=?, x_7=?, x_8=?, x_9=?
```
自由に決めてもいい値が他にもあるので自由度を上げます．

### 自由度2

```math
x_0=10, x_1=11, x_2=?, x_3=?, x_4=?, x_5=?, x_6=?, x_7=?, x_8=?, x_9=?
```
自由に決めてもいい値が他にもあるので自由度を上げます．

### 自由度3

```math
x_0=10, x_1=11, x_2=12, x_3=?, x_4=?, x_5=?, x_6=?, x_7=?, x_8=?, x_9=?
```
自由に決めてもいい値が他にもあるので自由度を上げます．

 ...

### 自由度8

```math
x_0=10, x_1=11, x_2=12, x_3=13, x_4=14, x_5=15, x_6=16, x_7=17, x_8=?, x_9=?
```
自由に決めてもいい値が他にもあるので自由度を上げます．

### 自由度9

```math
x_0=10, x_1=11, x_2=12, x_3=13, x_4=14, x_5=15, x_6=16, x_7=17, x_8=18, x_9=?
```
制約のことも考慮して他に自由に決めても良い値があるか考えます．ここで次のように制約の式を変形すると

```math
\frac{x_0+x_1+x_2+x_3+x_4+x_5+x_6+x_7+x_8+x_9}{10}=10
\\
⇔
\\
x_9=10\cdot10-(x_0+x_1+x_2+x_3+x_4+x_5+x_6+x_7+x_8)
```
という具合に，$x_9$が求められると思います．具体的には

```math
x_9=10\cdot10-(10+11+12+13+14+15+16+17+18)
\\=-26
```

以上より，9個まで自由に値を決めると10個目が自ずと確定するため，10個目は自由に決めることはできなくなりました．よって自由に決めてもいい値が他にないので，$自由度=9$と言えると思います．

## 回帰分析における残差の自由度に発展させる
以上の計算から，自由度を上げていって自ずと決まる値が出てくるまで上げられる最大の値が自由度になる，というふうに考えられると思います．このことを利用して回帰分析における残差の自由度を考えてみます．

### まずは単回帰分析から
冒頭との繰り返しになってしまうかもしれませんが，単回帰分析の自由度を計算する上で必要になる事項を以下のように設定します．

- $n$：サンプル数
- $k$：説明変数の数(今回は単回帰分析で，切片も説明変数にカウントするため$k=2$)
- $e_i(i \in {1,2,...,n})$：残差たち
- $x_{1i}(i \in {1,2,...,n})$：説明変数(回帰分析をするときにはどんな値かわかるので定数だと言えます)

更に次のような成約が発生します．([27-3. 予測値と残差 | 統計学の時間 | 統計WEB](https://bellcurve.jp/statistics/course/9704.html)より)

- $e_1 + e_2 + ... + e_n = 0$：残差の総和は$0$
- $x_{11}e_1 + x_{12}e_2 + ... + x_{1n}e_n = 0$：説明変数と残差の積和は$0$
    - これは説明変数と残差には相関がないと言うところから得られるようです．
    - 簡単な説明
        - $x_{1i}$と$e_i$は無相関($i \in {1,2,...,n}$)より相関係数$\frac{ (x_{11}-\bar{x_1})(e_1-\bar{e}) + (x_{12}-\bar{x_1})(e_2-\bar{e}) + ... + (x_{1n}-\bar{x_1})(e_n-\bar{e}) } { \sqrt{(x_{11}-\bar{x_1})^2 + (x_{12}-\bar{x_1})^2 + ... + (x_{1n}-\bar{x_1})^2 } \cdot \sqrt{ (e_1-\bar{e})^2 + (e_2-\bar{e})^2 + ... + (e_n-\bar{e})^2 } } = 0$
        - $0 \leqq 相関係数 \leqq 1$より分母は$0$じゃない
        - よって分子$(x_{11}-\bar{x_1})(e_1-\bar{e}) + (x_{12}-\bar{x_1})(e_2-\bar{e}) + ... + (x_{1n}-\bar{x_1})(e_n-\bar{e})$が$0$になるはず
        - ここで$e_1 + e_2 + ... + e_n = 0$より$\bar{e}=0$となるため，$(x_{11}-\bar{x_1})e_1 + (x_{12}-\bar{x_1})e_2 + ... + (x_{1n}-\bar{x_1})e_n = 0$
        - 更に式変形すると$(x_{11}-\bar{x_1})e_1 + (x_{12}-\bar{x_1})e_2 + ... + (x_{1n}-\bar{x_1})e_n = (x_{11}e_1 + x_{12}e_2 + ... + x_{1n}e_n) - \bar{x_1}(e_1 + e_2 + ...+ e_n)$となり$e_1 + e_2 + ... + e_n = 0$より$(x_{11}e_1 + x_{12}e_1 + ... + x_{1n}e_n) - \bar{x_1}(e_1 + e_2 + ...+ e_n) = (x_{11}e_1 + x_{12}e_2 + ... + x_{1n}e_n) = 0$
    - そもそもなんで説明変数と残差は無相関なのかということに関しては，すみません割愛させていただきます．

それでは自由度を$1$から$n$へ順番に上げてみて，自由度がいくつになるのか試してみたいと思います．以下では．自由度$1$から順に上げていって他にも自由に決められる値があり，順に自由度を上げていく内に自由度$n-3$まで辿り着いたという設定で話を進めます．

#### 自由度n-3
次のように$e_1$から$e_{n-3}$までの値を自由に決めてみます．

```math
e_1 = 1, e_2 = 2, ... , e_{n-3}=97, e_{n-2}=? , e_{n-1} = ?, e_n = ?
```

このときに先述の2つの制約の式を使うと，それぞれ次のような式が得られると思います($e_1 = 1, e_2 = 2, ... , e_{n-3}=97$を代入しただけ)．

- $1 + 2 + ...+ 97 + e_{n-2} + e_{n-1} + e_n = 0$
- $x_{11} + 2x_{12} + ... + 97x_{1n-3} + x_{1n-2}e_{n-2} + x_{1n-1}e_{n-1} + x_{1n}e_n = 0$

更に変形するとそれぞれ

- $e_{n-2} + e_{n-1} + e_n = -(1 + 2 + ...+ 97)$
- $x_{1n-2}e_{n-2} + x_{1n-1}e_{n-1} + x_{1n}e_n = -( x_{11} + 2x_{12} + ... + 97x_{1n-3} )$

と変形できると思います．$x_{11}$から$x_{1n-3}$は先述の通り未知数ではないため，上の2つ目の式における右辺は定数だと言えます．ただし，ここではまだ上の2つの式を使っても未知数が$e_{n-2}$，$e_{n-1}$，$e_n$の3つあるため，連立しても未知数が求められません．

#### 自由度n-2
次のように$e_1$から$e_{n-2}$までの値を自由に決めてみます．

```math
e_1 = 1, e_2 = 2, ... , e_{n-2}=98 , e_{n-1} = ?, e_n = ?
```

このときに先述の2つの制約の式を使うと，それぞれ次のような式が得られると思います($e_1 = 1, e_2 = 2, ... , e_{n-2}=98$を代入しただけ)．

- $1 + 2 + ...+ 98 + e_{n-1} + e_n = 0$
- $x_{11} + 2x_{12} + ... + 98x_{1n-2} + x_{1n-1}e_{n-1} + x_{1n}e_n = 0$

更に変形するとそれぞれ

- $e_{n-1} + e_n = -(1 + 2 + ...+ 98)$
- $x_{1n-1}e_{n-1} + x_{1n}e_n = -( x_{11} + 2x_{12} + ... + 98x_{1n-2} )$

と変形できると思います．ここで$x_{11}$から$x_{1n}$は全部定数なので，未知数は$e_{n-1}$と$e_n$の2つだけということになります．更に上の2式は2現連立一次方程式になっているので解けば$e_{n-1}$と$e_n$は自ずと求められることになります．

自由度$n-3$までは連立方程式が立てられませんでしたが，自由度$n-2$では連立方程式を立てて残った未知数を自ずと得ることができたので，自由度は$n-2$となると思います．

### 重回帰分析へ(説明変数k≧3)
ここから説明変数の数が$3$以上の状況へ発展させてみようと思います．基本的には，自由度が1つ増える度に制約の式も1つ増えるから単回帰分析の時と同じように連立方程式を立てられるようになり，まだ自由に決めていない残差たちも自ずと求められるという流れです．

#### k=3のとき
説明変数が3個のときも自由度は$n-3$になるか($自由度=n-説明変数の個数$)になっているか見てみましょう．

- $n$：サンプル数
- $k$：説明変数の数(切片も説明変数に含めて$k=3$)
- $e_i(i \in {1,2,...,n})$：残差たち
- $x_{1i}(i \in {1,2,...,n})$と$x_{2i}(i \in {1,2,...,n})$：説明変数(この値たちもやはり回帰分析をするときにはどんな値かわかるので定数だと言えます)

単回帰分析のときと同様に次のような制約があります(単回帰分析のときに対して制約の式が1つ増えた)．

- $e_1 + e_2 + ... + e_n = 0$：残差の総和は$0$
- $x_{11}e_1 + x_{12}e_2 + ... + x_{1n}e_n = 0$：説明変数と残差の積和は$0$
- $x_{21}e_1 + x_{22}e_2 + ... + x_{2n}e_n = 0$：説明変数と残差の積和は$0$
    - これは説明変数$x_{2i}$に関しても同様に，残差には相関がないと言うところから得られます．

それでは本当に自由度$n-4$では全ての残差は自ずと決まらず，自由度$n-3$になったところで自ずと決められるようになるのか見てみたいと思います．以下では．自由度$1$から順に上げていって他にも自由に決められる値があり，順に自由度を上げていく内に自由度$n-4$まで辿り着いたという設定で話を進めます．

##### 自由度n-4
次のように$e_1$から$e_{n-4}$までの値を自由に決めてみます．

```math
e_1 = 1, e_2 = 2, ... , e_{n-4}=96, e_{n-3}=?, e_{n-2}=? , e_{n-1} = ?, e_n = ?
```

このときに先述の3つの制約の式を使うと，それぞれ次のような式が得られると思います($e_1 = 1, e_2 = 2, ... , e_{n-4}=96$を代入しただけ)．

- $1 + 2 + ...+ 96 + e_{n-3} + e_{n-2} + e_{n-1} + e_n = 0$
- $x_{11} + 2x_{12} + ... + 96x_{1n-4} + x_{1n-3}e_{n-3} + x_{1n-2}e_{n-2} + x_{1n-1}e_{n-1} + x_{1n}e_n = 0$
- $x_{21} + 2x_{22} + ... + 96x_{2n-4} + 97x_{2n-3} + 98x_{2n-2} + x_{2n-1}e_{n-1} + x_{2n}e_n = 0$

同じように変形するとそれぞれ

- $e_{n-3} + e_{n-2} + e_{n-1} + e_n = -(1 + 2 + ...+ 96)$
- $x_{1n-3}e_{n-3} + x_{1n-2}e_{n-2} + x_{1n-1}e_{n-1} + x_{1n}e_n = -( x_{11} + 2x_{12} + ... + 96x_{1n-4} )$
- $x_{2n-3}e_{n-3} + x_{2n-2}e_{n-2} + x_{2n-1}e_{n-1} + x_{2n}e_n = -( x_{21} + 2x_{22} + ... + 96x_{2n-4} )$

と変形できると思います．ここではまだ上の3つの式を使っても未知数が$e_{n-3}$，$e_{n-2}$，$e_{n-1}$，$e_n$の4つあるため，連立しても未知数が求められません．

##### 自由度n-3
これに対して，次のように$e_1$から$e_{n-3}$までの値を自由に決めてみます．

```math
e_1 = 1, e_2 = 2, ... , e_{n-4}=96, e_{n-3}=97, e_{n-2}=? , e_{n-1} = ?, e_n = ?
```

このときに先述の3つの制約の式を使うと，それぞれ次のような式が得られると思います($e_1 = 1, e_2 = 2, ... , e_{n-3}=97$を代入しただけ)．

- $1 + 2 + ...+ 97 + e_{n-2} + e_{n-1} + e_n = 0$
- $x_{11} + 2x_{12} + ... + 96x_{1n-4} + 97x_{1n-3} + x_{1n-2}e_{n-2} + x_{1n-1}e_{n-1} + x_{1n}e_n = 0$
- $x_{21} + 2x_{22} + ... + 96x_{2n-4} + 97x_{2n-3} + x_{2n-2}e_{n-2} + x_{2n-1}e_{n-1} + x_{2n}e_n = 0$

同じように変形するとそれぞれ

- $e_{n-2} + e_{n-1} + e_n = -(1 + 2 + ...+ 97)$
- $x_{1n-2}e_{n-2} + x_{1n-1}e_{n-1} + x_{1n}e_n = -( x_{11} + 2x_{12} + ... + 97x_{1n-3} )$
- $x_{2n-2}e_{n-2} + x_{2n-1}e_{n-1} + x_{2n}e_n = -( x_{21} + 2x_{22} + ... + 97x_{2n-3} )$

と変形できると思います．自由度$n-4$までは連立方程式が立てられませんでしたが，自由度$n-3$では連立方程式を立てて残った未知数を自ずと得ることができたので自由度は$n-3$となると思います．

#### k=4以上のとき
説明変数の個数($k$個)が4個以上の場合も同じように$k$元連立一次方程式が立てられるとなるという原理で自由度は$n-k$という結論が出せなくもないかなと思っています．

雰囲気的には数学的帰納法的な感じで示してみるのも良いかなと思いました．ただし厳密な証明にはなっていないように考えられたため，本記事ではとりあえずやってないです．「厳密な証明になってないんじゃないか」という話に関しては次節を御覧ください．

## 必要十分条件か
以上までの説明がちゃんと証明になっているのか，必要十分条件なのかが気がかりかとたぶん思います．私の結論は必要十分条件ではないんじゃないかなと思っています．たとえば単回帰分析の時に，説明変数$x_{1n-1}$と$x_{1n}$が等しかった場合には，連立方程式が解けなくなるからです．

なのでできれば必要十分条件を見つけたかったけれど，それなりに納得できるかなという理由を見つけてみたと言うところです．納得できないと言う方は申し訳ありません泣

# おわりに
回帰分析における残差の自由度が$n-kに$なる理由を連立方程式を使って理解しようと試みました．必要十分条件を見つけられたわけではないので，ちゃんとした証明になっていないと思います．多少粗い説明でも$$いいから，それなりに納得できそうな説明が欲しいという方へ，ちょっとでも参考になったら嬉しいです