MATLABでExcelのTDISTとTINVを使う

アルゴリズム
スポンサーリンク

Excel の TDIST関数は、

TDIST(http://office.microsoft.com/ja-jp/excel-help/HP005209312.aspx) より引用

スチューデントの t 分布のパーセンテージ (確率) を返します。
数値 (x) は t の計算値で、この t に対してパーセンテージが計算されます。
t 分布は、比較的少数の標本から成るデータを対象に仮説検定を行うときに使われます。
この関数は、t 分布表の代わりに使用することができます。

書式

TDIST(x,自由度,尾部)

x t 分布を計算する数値を指定します。

自由度 分布の自由度を整数で指定します。

尾部 片側分布を計算するか両側分布を計算するか、数値で指定します。
尾部に 1 を指定すると片側分布の値が計算され、2 を指定すると両側分布の値が計算されます。

これをMATLABで同じ関数を定義する場合は、

function [ dst ] = excelTDIST( x, degrees_freedom, tails )
	dst = (1 - tcdf(x, degrees_freedom)) * tails;
	return

上記のようになります。
tcdfは、t分布の累積分布関数(cumulative distribution function)です。
tcdfの第1引数はt値。第2引数は自由度(degree-of-freedom)です。

Excel の TINV関数は、

TINV(http://office.microsoft.com/ja-jp/excel-help/HP005209317.aspx) より引用

スチューデントの t 分布の t 値を、確率の関数と自由度で返します。
書式
TINV(確率,自由度)
確率 スチューデントの両側 t 分布に従う確率を指定します。
自由度 分布の自由度を指定します。

これは、両側となっているようでMATLABで同じ関数を定義する場合は、

function [ t ] = excelTINV( probability, degrees_freedom)
	t = - tinv( probability / 2, degrees_freedom);
	return

あるいは

function [ t ] = excelTINV( probability, degrees_freedom)
	t = tinv( 1 - probability / 2, degrees_freedom);
	return

上記のようになります。
tinvは、t分布の累積分布関数の逆関数(inverse function)です。

関連記事
MATLABを用いた相関係数のt検定 « なたで日記


オマケ
F分布累積分布関数の定義。 cdf(‘F’,X,A,B) と同じです。

function [ cdf ] = fcdf( x, d1, d2 )
	cdf = betacdf( d1*x/(d1*x+d2), d1/2, d2/2 );
	return

コメント

タイトルとURLをコピーしました