月曜日, 5月 23, 2016

簡単な行列計算

無料とはいえ、Octaveのあるサイトでは企業関係者で50ドル、個人で10ドル、学生で5ドルのdonationを希望しているのでとりあえずPayPalで10ドル支払った。明細を見たら日本円で1145円ほどだった。

 リナックス、Mac、WindowsなどにもOctaveは対応しているが、Mac版はOSX10.10のYosemiteとOSX10.11のEl Capitanにしか最新版が対応してなくて、しかも時としてバグがあるらしいようなことが書いてある。SheepShaverは10.9.5のMaverickまでは動くはずであるが、気持ちが悪いのでMacへのインストールを諦め、昨日会社でしたWinsowsにダウンロードした。
DELLのノートである。狭い部屋なので、このノートが限界である。他にあるMacbookは埃をかぶっているが10.9.5で止めてある。ハードデスクレスなので、いざという時にセカンドマシンにと最初のiMacの後銀座のアップルストアで購入して持ってきた。

このサイトから昨日同様ダウンロードしたが
[   ]octave-4.0.2.zip
[   ]octave-4.0.2-installer.exeだけで今の所動いている。会社では〜.exeファイルをクリックしたらJavafileがないと言われ、元に戻ってインストールし直した。昨年の今頃突然HDが壊れ、新規のHDを入れ直しそのまま使っていたので、今日も何か言われるかと思っていたら、何も言われずOKだった。後で、コンパネで見たら、2013年にはインストールされていた。
今の所、RもOctaveもMatLabも各種のマニュアルを見たりして大変だったが、OctaveはMatLab互換というので、(一部に違いがあるが)今日はOctaveだけにとどめる。

Rの行列の入力方法は今は忘れてしまったが、どこがそう違うのかわからないくらいよく似ているようである。

今日は、昔のTheoristで実行した例の8個のデータだけからなる重回帰プログラムを始めて入力して実行してみた。


最初の目的変数データをyベクトルとして入力。ただし、これは列ベクトルなので、後からy’に直す必要がある。

Mathematicaでは8個のデータでもダメだった。

上のページの3列のベクトルがその演算結果で
y=0.508216 + 0.7758925 x1 + 0.55187 x2
の事を表している。この本によればこの3個の偏回帰係数の元の意味はyは売上高、x1は各支店の広告費、x2は従業員数だそうである。

ベクトルを表す式をかけば

である。ここではCで前半のX’*Xの逆行列を計算させ、Dで後半のX’yを計算させたが、
yは本来列ベクトルなので、y’として置き換えて使用した。

MatLabでは、エラーメッセージが赤で出て注釈文が出るが、Octaveではエラーネッセージだけであるので、最初はどこが悪いのかわからなかった。

その点WYSIWYGになれた場合は、注意が必要である。



0 件のコメント: