Octave

2023年4月21日 (金)

[Octave]正規分布におけるp値

>> pkg load statistics
>> % 平均10、分散3^2(標準偏差3)の正規分布における確率変数が15のときの下側p値
>> normcdf(15, 10, 3)
ans = 0.9522
>> % 平均10、分散3^2(標準偏差3)の正規分布における確率変数が15のときの上側p値
>> 1 - normcdf(15, 10, 3)
ans = 0.047790
>> % 平均10、分散3^2(標準偏差3)の正規分布における確率変数が15のときの両側p値
>> (1 - normcdf(15, 10, 3)) * 2
ans = 0.095581

2023年4月18日 (火)

[Octave]正規分布におけるパーセント点

>> pkg load statistics
>> % 平均10、分散3^2(標準偏差3)の正規分布における下側5パーセント点
>> norminv(0.05, 10, 3)
ans = 5.0654
>> % 平均10、分散3^2(標準偏差3)の正規分布における上側5パーセント点
>> norminv(1 - 0.05, 10, 3)
ans = 14.935
>> % 平均10、分散3^2(標準偏差3)の正規分布における両側5パーセント点
>> norminv(1 - 0.05 / 2, 10, 3)
ans = 15.880

2023年4月17日 (月)

[Octave]t分布におけるp値

>> % 自由度5のt分布における、確率変数が2のときの上側p値
>> 1 - tcdf(2, 5)
ans = 0.050970
>> # 自由度5のt分布における、確率変数が2のときの両側p値
>> (1 - tcdf(2, 5)) * 2
ans = 0.1019

tcdfは下側p値を返すため、上側p値を得たい場合は1からそれをひく。両側p値は上側p値を2倍する。

 

2023年3月21日 (火)

[Octave]t分布におけるパーセント点

>> pkg load statistics
>> % 自由度5のt分布における上側5パーセント点
>> tinv(1 - 0.05, 5)
ans = 2.0150
>> % 自由度5のt分布における両側5パーセント点
>> tinv(1 - 0.05 / 2, 5)
ans = 2.5706

2023年3月20日 (月)

[Octave]F分布におけるp値

>> pkg load statistics
>> % 自由度5,7のF分布における、確率変数が2のときの下側p値
>> fcdf(2, 5, 7)
ans = 0.8043
>> % 自由度5,7のF分布における、確率変数が2のときの上側p値
>> 1 - fcdf(2, 5, 7)
ans = 0.1957

2023年3月19日 (日)

[Octave]F分布におけるパーセント点

>> pkg load statistics
>> % 自由度5,7のF分布における、下側5パーセント点
>> finv(0.05, 5, 7)
ans = 0.2051
>> % 自由度5,7のF分布における、上側5パーセント点
>> finv(1 - 0.05, 5, 7)
ans = 3.9715

2023年3月18日 (土)

[Octave]χ^2分布におけるp値

>> pkg load statistics
>> % 自由度5のχ^2分布における、確率変数が12のときの下側p値
>> chi2cdf(12, 5)
ans = 0.9652
>> % 自由度5のχ^2分布における、確率変数が12のときの上側p値
>> 1 - chi2cdf(12, 5)
ans = 0.034788

2023年3月17日 (金)

[Octave]χ^2分布におけるパーセント点

>> pkg load statistics
>> % 自由度5のχ^2分布における、下側5パーセント点
>> chi2inv(0.05, 5)
ans = 1.1455
>> % 自由度5のχ^2分布における、上側5パーセント点
>> chi2inv(1 - 0.05, 5)
ans = 11.070

2023年3月15日 (水)

[Octave]連立一次方程式を解く

linsolve関数を使う。以下の連立一次方程式を解く(解はx=3,y=2)。

 x + 2y = 7
3x - 4y = 1

計算する。

>> mxaa = [1 2; 3 -4]
mxaa =
1 2
3 -4
>> mxy = [7; 1]
mxy =
7
1
>> linsolve(mxaa, mxy)
ans =
3
2

同じく以下の連立一次方程式を解く(解はx=2,y=-3,z=-14)。

 3x - 3y + z =  1
3x + 2y = 0
-1x - 5y + z = -1

計算する。

>> mxaa = [3 -3 1; 3 2 0; -1 -5 1]
mxaa =
3 -3 1
3 2 0
-1 -5 1
>> mxy = [1; 0; -1]
mxy =
1
0
-1
>> linsolve(mxaa, mxy)
ans =
2
-3
-14

2023年3月13日 (月)

[Octave]一般逆行列を求める

pinv関数を使う。

>> mx = [1 2 3 4; 5 6 7 8; 9 10 11 12; 13 14 15 16]
mx =
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
>> det(mx)
ans = 0
>> inv(mx)
warning: matrix singular to machine precision
ans =
Inf Inf Inf Inf
Inf Inf Inf Inf
Inf Inf Inf Inf
Inf Inf Inf Inf
>> pinv(mx)
ans =
-2.8500e-01 -1.4500e-01 -5.0000e-03 1.3500e-01
-1.0750e-01 -5.2500e-02 2.5000e-03 5.7500e-02
7.0000e-02 4.0000e-02 1.0000e-02 -2.0000e-02
2.4750e-01 1.3250e-01 1.7500e-02 -9.7500e-02
>> mxi = pinv(mx);
>> mx * mxi * mx
ans =
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16

当然、正方行列でなくとも求めることができる。

>> mx = [1 2 3 4; 5 6 7 8]
mx =
1 2 3 4
5 6 7 8
>> det(mx)
error: det: A must be a square matrix
>> inv(mx)
error: inverse: A must be a square matrix
>> pinv(mx)
ans =
-5.5000e-01 2.5000e-01
-2.2500e-01 1.2500e-01
1.0000e-01 -2.3434e-17
4.2500e-01 -1.2500e-01
>> mxi = pinv(mx)
mxi =
-5.5000e-01 2.5000e-01
-2.2500e-01 1.2500e-01
1.0000e-01 -2.3434e-17
4.2500e-01 -1.2500e-01
>> mx * mxi * mx
ans =
1 2 3 4
5 6 7 8

pinv関数はムーア・ペンローズ一般逆行列を数値的に求める関数のため、求まった一般逆行列は近似値であることに注意。ムーア・ペンローズ一般逆行列の定義の4つの式について、比較をした例は以下のとおり。すべての要素が1にならないことがわかる。

>> mx * mxi * mx == mx
ans =
0 0 0 0
0 0 0 0
>> mxi * mx * mxi == mxi
ans =
1 1
1 0
0 0
0 0
>> (mx * mxi).' == mx * mxi
ans =
1 0
0 1
>> (mxi * mx).' == mxi * mx
ans =
1 1 0 0
1 1 0 0
0 0 1 0
0 0 0 1
無料ブログはココログ

■■

■■■