多変量最小自乗分析

この章では、従属変数が二つ以上の独立変数の関数となっている場合を扱う。

最も簡単な場合は、独立変数が二つで切片が0の場合である。
5 ' Program MLTVAR
10 ' 汎用の多変量フィッティングプログラム
20 DATA 5, 2
30 DATA 1,6,2,8,3,10,4,12,5,14
40 DATA 2823,3994,5166,6338,7509
50 DIM A(30,30),B(30,30),C(30,30),Y(30),E(30),F(30)
60 READ N, M
70 FOR I=1 TO N
80 FOR J=1 TO M
90 READ A(I,J)
100 NEXT J
105 NEXT I
110 PRINT "非同次ベクトルは"
120 FOR I=1 TO N
130 READ Y(I)
140 PRINT Y(I);
150 NEXT I
160 PRINT : PRINT "係数行列は"
170 FOR I=1 TO N
180 FOR J= 1 TO M
190 PRINT A(I,J);
200 NEXT J : PRINT
210 NEXT I
220 FOR I=1 TO N
230 FOR J=1 TO M
240 B(J,I)=A(I,J)
250 NEXT J
255 NEXT I
260 PRINT "係数行列の転置行列は"
270 FOR I=1 TO M
280 FOR J=1 TO N
290 PRINT B(I,J);
300 NEXT J : PRINT
305 NEXT I
310 FOR I=1 TO N
320 FOR J=1 TO M
330 C(I,J)=0
340 FOR K=1 TO N
350 C(I,J)=C(I,J)+B(I,K)*A(K,J)
360 NEXT K
362 NEXT J
364 NEXT I
370 PRINT "積行列は"
380 FOR I=1 TO M
390 FOR J=1 TO M
400 PRINT C(I,J);
410 NEXT J : PRINT
415 NEXT I
420 FOR I=1 TO M
430 X = C(I,I)
440 C(I,I) = 1
450 FOR J=1 TO M
460 C(I,J) = C(I,J)/X
470 NEXT J
480 FOR K=1 TO M
490 IF K=I THEN 550
500 X = C(K,I)
510 C(K,I) = 0
520 FOR L=1 TO M
530 C(K,L) = C(K,L) - X*C(I,L)
540 NEXT L
550 NEXT K
560 NEXT I
570 PRINT "逆行列は"
580 FOR I=1 TO M
590 FOR J=1 TO M
600 PRINT C(I,J);
610 NEXT J : PRINT
615 NEXT I
620 FOR I=1 TO M
630 E(I) = 0
640 FOR K=1 TO N
650 E(I) = E(I) + B(I,K)*Y(K)
660 NEXT K
665 NEXT I
670 PRINT "入力行列の転置行列とBベクトルの積は"
680 FOR I=1 TO M
690 PRINT E(I)
700 NEXT I
710 FOR I=1 TO M
720 F(I)=0
730 FOR K=1 TO M
740 F(I) = F(I) + C(I,K)*E(K)
750 NEXT K
755 NEXT I
760 PRINT "係数の列ベクトルは"
770 FOR I=1 TO M
780 PRINT F(I)
790 NEXT I
800 END

mltvar.bas

のように表現できる。
解のベクトルMは次のように表される。(具体的な式の導出についてはテキストを参照してください。)
  C-C : 346 KJ mol-1
   C-H : 412.8 KJ mol-1
C2H6 C3H8 C4H10 C5H12 C6H14
原子化エンタルピー 2823 3994 5166 6338 7509
C-C結合の数 1 2 3 4 5
C-H結合の数 6 8 10 12 14

2002 Copyright 木原 寛
既知の独立変数の組(xi1, xi2)の値に対して、従属変数の測定値y1が一つ得られる。

Xを既知の入力変数からなる行列、Yを従属変数の値からなる非同次ベクトル、Mは傾き
すなわち回帰問題の解のベクトルであるとすると、
問題 結合エンタルピーの和が分子の原子化エンタルピーに等しいとして、エタンからヘキサン
までの5つの直鎖アルカンのデータからC-CとC-Hの結合エンタルピーを求めなさい。
(p.83 コンピュータプロジェクト 6-2)