/* -*- MaTX -*- * * 【名前】 * corrcoef_col() - 相関係数(列毎のデータ) * * 【形式】 * C = corrcoef_col(X) * Matrix C; * Matrix X; * * C = corrcoef_col(X,Y) * Matrix C; * Matrix X,Y; * * 【機能説明】 * X がベクトルのとき,corrcoef_col(X)は X の成分の相関係数 1 を返す。 * X が行列のとき,corrcoef_col(X) は,X の列毎にデータが保存されて * いると見なし,相関係数を求める。 * * corrcoef_col(X,Y) は,X と Y が同じ長さのベクトルなら, * corrcoef_col([makecolv(X) makecolv(Y)])と等価である。 * * 【例題】 * corrcoef_col([1 2 3 4 5]) = [1] * C = corrcoef_col([2 3 1 4 5], [10 9 7 8 6]) * === [C] : ( 2, 2) === * ( 1) ( 2) * ( 1) 1.41421355E+00 -5.65685428E-01 * ( 2) -5.65685428E-01 1.41421355E+00 * * 【関連項目】 * sum, median, mean, and corrcoef_row * * ------------------------------------------------------------------------ * * 【名前】 * corrcoef_row() - 相関係数(行毎のデータ) * * 【形式】 * C = corrcoef_row(X) * Matrix C; * Matrix X; * * C = corrcoef_row(X,Y) * Matrix C; * Matrix X,Y; * * 【機能説明】 * X がベクトルのとき,corrcoef_row(X)は X の成分の相関係数 1 を返す。 * X が行列のとき,corrcoef_row(X) は,X の行毎にデータが保存されて * いると見なし,相関係数を求める。 * * corrcoef_row(X,Y) は,X と Y が同じ長さのベクトルなら, * corrcoef_row([[makerowv(X)][makerowv(Y)]])と等価である。 * * 【例題】 * corrcoef_row([1 2 3 4 5]) = [1] * C = corrcoef_row([2 3 1 4 5], [10 9 7 8 6]) * === [C] : ( 2, 2) === * ( 1) ( 2) * ( 1) 1.41421355E+00 -5.65685428E-01 * ( 2) -5.65685428E-01 1.41421355E+00 * * 【関連項目】 * sum, median, mean, and corrcoef_col */ Func Array corrcoef_col(x, y, ...) Array x, y; { Array cc; Matrix dv, cv; error(nargchk(1, 2, nargs, "corrcoef_col")); if (nargs == 1) { cv = cov_col(x); } else if (nargs == 2) { cv = cov_col(x, y); } dv = diag_vec(cv); cc = Array(cv) / sqrt(Array(dv*dv#)); return cc; } Func Array corrcoef_row(x, y, ...) Array x, y; { error(nargchk(1, 2, nargs, "corrcoef_row")); if (nargs == 1) { return trans(corrcoef_col(trans(x))); } else { return trans(corrcoef_col(trans(x), trans(y))); } }