APL/J言語:最小自乗法

Easy Jの第4章を読み中。

   x,:y
2.1 2.4 3.6 3.7 4.3  5.1 5.5  5.8 5.9  6.6  7.4  8.2
4.1   6 5.5 8.2 7.5 12.6 8.1 10.8 7.2 13.1 11.3 15.6

というようなデータがあって、逆行列の%.(パーセントドット)を使って、

   y%.x
1.78636

が最少自乗法による傾き曲線です、とのこと。
ためしにx,yをプロットしてみます。

   load 'plot'
   'marker' plot x;y


しかし、1.786361はy=kxのときのkで、現実はy=kx+cのようになるので、つぎのようにする、とのこと。

   y%.1,.x
1.27181 1.56334

結論として、下記が解とのこと。

   y = 1.272 + 1.563x

追記:ここから先、まったく理解していませんが、翻訳しておきます。
上記の%.(パーセントドット)の右側の引数(1,.x)はx^/i.2とも書ける。なぜならばx^0は常に1だから。したがって:

   y %. x^/i.2
1.27181 1.56334

この考え方を展開して、0, 1, 2乗について同様のことを行うと最適二次曲線を得ることができる。

   y %. x^/i.3
2.76797 0.880348 0.0678142

このことを検証するために、次の多項式を考える。
0.5x^3 + 4x^2 + 5x - 6
この係数を逆にならべ、xを変化させてyを算出する。

   coef=._6 5 4 0.5
   +x =._4+i.9
_4 _3 _2 _1 0 1 2 3 4
   +y =. coef p. x
6 1.5 _4 _7.5 _6 3.5 24 58.5 110
   x,:y
_4  _3 _2   _1  0   1  2    3   4
 6 1.5 _4 _7.5 _6 3.5 24 58.5 110

これに先ほどのルールで順次最適曲線を算出すると、3次曲線の係数がもとまる。

   y %.x^/i.2
20.6667 10.9
   y %.x^/i.3
_6 10.9 4
   y %. x^/i.4
_6 5 4 0.5