裏 RjpWiki

Julia ときどき R, Python によるコンピュータプログラム,コンピュータ・サイエンス,統計学

GNU Octave にも手を出してみる

2022年07月06日 | Octave

MATLAB は GNU Octave と部分的な互換性があるようだ。

そこで,MATLAB プログラムを動かすときには GNU Octave をインストールして使えばよいようだ。

https://octave.org/download.html

Windows では 7.1.0 がダウンロードできるようだ。
https://octave.org/download.html#ms-windows

macOS ではちょっと面倒なようだ。
https://github.com/octave-app/octave-app/releases
6.2.0 で我慢する。

====

GNU Octave の実行は他のアプリケーションと同じように,アイコンをクリックするだけ。

IDE 環境ウインドウが開く。コマンドウインドウになにか入力すれば,それが実行され,結果が表示される。


必要なパッケージの準備

例えば,以下のプログラムでは 「chi2cdf は statistics パッケージにあるよ!」 と言われる。

コマンドラインで statistics パッケージの最新バージョンを調べて(たとえば statistics-1.4.3.tar.gz のとき) wget でダウンロードする。

% wget http://downloads.sourceforge.net/project/octave/Octave%20Forge%20Packages/Individual%20Package%20Releases/statistics-1.4.3.tar.gz

パッケージを octave コマンドウインドウでインストールする(1回だけ)

>> pkg install -global statistics-1.4.3.tar.gz

パッケージを使用するとき(セッションごと)

>> pkg load statistics

使用するプログラム。

>> function [chisq, df, p] = ChiSquareTest(x)
    [nrow , ncol] = size(x);
    df = (nrow - 1) * (ncol - 1);
    colsums = sum(x, 1);
    rowsums = sum(x, 2);
    n = sum(rowsums);
    expectations = (rowsums * colsums) / n;
    Zscores = (x .- expectations) .^ 2 ./ expectations;
    chisq = sum(sum(Zscores));
    p = 1 - chi2cdf(chisq, df);
end

>> x = [55 22 16 7; 40 32 24 4];
[chisq, df, p] = ChiSquareTest(x)
chisq = 6.6385
df = 3
p = 0.084359

>> [chisq, df, p] = ChiSquareTest([10 5; 6 11])
chisq = 3.1373
df = 1
p = 0.076523

* プログラム中に日本語があると変なことが起きることがあるようだ(プログラムをコピペできない)。
* MATLAB のすべてが octave で利用できるというものではない。例えば,icdf('chi2', x, df) はないので,1 - chi2cdf(x, df) とするなど,エラー回避が必要になることもある。

コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« Julia の RCall が動く環境 | トップ | GNU Octave: 二次元配列の要... »
最新の画像もっと見る

コメントを投稿

Octave」カテゴリの最新記事