ものには原因と結果がある。どのような原因がどの程度結果に影響を与えたのか、 それどころか結果に影響を与えなかった原因(と考えられる要因)もいろいろある。 これらを定量的に評価するのが回帰分析だ。 特に、結果を原因量の多項式で表すモデルを多項式回帰モデルと呼ぶ。 以下、回帰分析について説明する。
まず、結果を表す数値(目的変数)を、影響を与えた数値(説明変数)で表す多項式、 すなわち多項式回帰モデルを次のように立てる。
`y = a_0 + a_1 x + ... + a_m x_m + epsilon`
ここで、`epsilon` は残差と呼ばれ、平均 0、分散 `sigma^2`の正規分布に従うことを仮定する。
この式の、 `a_0, a_1, ..., a_m` および分散 `sigma^2` を推定することを多項式回帰分析と呼ぶ。
このプログラムでは、上記パラメータを推定するだけでなく、 モデルのあてはまりのよさを評価する AIC も出力する。 AIC は以前の項でも触れたが、パラメータの選択の際に役に立つ。 多項式の最高次の次数を `m` 、データ数を `n` とするとき、`"AIC"(m)`の数式は次の通りである。 なお、導出は省略する。
`"AIC"(m) = n log 2 pi + n log d(m) + n + 2(m + 2)`
ここで `d(m)` は最高次数 `m` のモデルの残差分散 `hat(sigma) ^2` であり、次式であらわされる。
` hat(sigma) ^2 = 1/n sum_(i=1)^n (y_i - hat a_0 - hat a_1x_i - hat a_2x_i^2 - ... - hat a_m x_i^m )^2 `
例題:全部で11個のデータがある。これらのデータに対して、
説明変数 `x` から目的変数 `y` を求めるモデル
`y = a_0 + a_1 x + a_2 x^2`
を立てた。
定数`a_0, a_1, a_2` および残差分散を、
最小二乗法で求めよ。
また、AICを求めよ。
ここで `x` は下記の第 1 列、`y` は下記の第 2 列である。
0.0 0.012 0.1 0.121 0.2 -0.097 0.3 -0.061 0.4 -0.080 0.5 0.037 0.6 0.196 0.7 0.077 0.8 0.343 0.9 0.448 1.0 0.434
答:「コピー」ボタンをクリックすると、上記例が左下の欄に入力される。
「計算」ボタンをクリックすると、右の欄に分散と係数
ai(a0, a1, ..., am)
が表示される。ただし、ai をa[i] と表記している。
結果は次のようになる。このとき順番が前後しているのは、
計算の精度を高めるために効果的なピボット選択つき QR 法という解法を用いていること、
この方法ではピボット選択により、パラメータを求める順番がべきの昇順とは無関係になるからだ。
残差分散:0.00592857808857805
AIC :-19.19103192119212
a[0] = 0.035489510489511
a[2] = 0.972960372960375
a[1] = -0.492051282051284
上記は多項式の最高次数を2としていたが、一次式でも、また三次以上の多項式でもかまわない。 下のラジオボタンを選べば、その数字を最高次数とする多項式、モデルとAICが求められる。 上記の値の場合は、最高次数が2の場合にAICが最小となる。
下のラジオボタンで多項式次数が -1 というのは、自由パラメータ数が残差分散のみの 1 であることをいう。このとき係数はない。 多項式次数が 0 は、自由パラメータ数が残差分散と定数項の 2 である。このとき係数は定数項の a[0] だけである。
残差分散 | |
AIC | |
係数 |
数式記述には一部 ASCIIMath を用いている。
MARUYAMA Satosi