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
広告

コメントをどうぞ(承認された後に公開されます。メールアドレスの記入は自由ですが、記入した場合でも一般公開されることはありません)

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中