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を使う « なたで日記

コメント

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