MATLABを用いた相関係数のt検定

投稿日: 更新日:

function[p] = TTestForCorrelationCoefficient(r, n, type)
%Student's t-test of correlation coefficient
%相関係数のt検定
%『入力』
%r 相関係数
%n 相関係数を調べた時のサンプル数
%type 1で片側検定, 2で両側検定(デフォルト)
%『出力』
%p 相関がないといえる確率
%有意水準α=0.05としたとき、α>pであれば、危険率5%で優位な相関がある。

if nargin < 3
	type = 2;
end

% 相関係数を正とする
r = abs(r);
% 0 から 1 とする
r = min(r, 1);
% 統計量
t = r * sqrt(n - 2) ./ sqrt(1 - r.*r);
% 自由度
DF = n - 2;
% スチューデントの t 分布
p = 1.0 - tcdf(t, DF);
% 両側検定は2倍の面積
if type==2
	p = p * 2;
end
% NaN(相関係数が1の時に起こる)だったら、必ず相関があるので 0 に。
p(isnan(p)) = 0;

相関係数のt検定を参考

tcdfのために、Statistics Toolbox($1,000)が必要です。
ない場合は、C言語による最新アルゴリズム辞典affiliate)のP429のtdist.cが多分それです

関連記事
MATLABでExcelのTDISTとTINVを使う « なたで日記

広告

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

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

WordPress.com ロゴ

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

Twitter 画像

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

Facebook の写真

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

Google+ フォト

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

%s と連携中