Location : Home > Languages > Perl > Package Title : Statistics::RankCorrelation |
![]() |
Statistics::RankCorrelation - 2ベクトル間の順位相関係数を計算
use Statistics::RankCorrelation; $x = [ 8, 7, 6, 5, 4, 3, 2, 1 ]; $y = [ 2, 1, 5, 3, 4, 7, 8, 6 ]; $c = Statistics::RankCorrelation->new( $x, $y ); $n = $c->spearman; $m = $c->csim;
本モジュールは2つの標本ベクトル間の順位相関係数を計算する。
作業例は eg/ ディレクトリ及びモジュールテストファイルにある。
下の関数セクションにも順位相関係数を挙げている。
new
$c = Statistics::RankCorrelation->new( \@u, \@v );
本メソッドは新たな Statistics::RankCorrelation オブジェクトをコンストラクトする。
引数として2つの数値ベクトルを与えられれば(配列参照)、ベクトルの統計的な順位を計算してオブジェクトは初期化される。もし大きさが等しくなければ小さいほうのベクトルの不足部分は0で埋められる。
x_data, y_data
$x = $c->x_data; $c->y_data( $y );
配列参照としてコンストラクタに提供されたデータ標本を(オプションとして集合で)返す。
x_rank, y_rank
$rx = $c->x_rank; $c->y_rank( $ry );
配列参照として統計的に順位付けされたデータを(オプションとして集合で)返す。
spearman
$n = $c->spearman;
スピアマンの順位相関係数はデータ値の順位に基づく関係性のノンパラメトリックな指標で、ピアソン積モーメント相関の特殊ケースである。
計算式は以下の通り。
6 * sum( ( Xi - Yi ) ^ 2 ) 1 - -------------------------- N * ( N ^ 2 - 1 )
Where X 及び Y は2つの順位ベクトルで、i は 1 から標本数 N までの値をとるインデクスである。
csim
$n = $c->csim;
輪郭類似性指標(contour similarity index)を返す。これは2ベクトル間の類似性を示す1次元の指標である。この指標は [-1..1] の範囲の値(両端を含む)を返し、元ベクトルの高低を示す値からなる2値データを用いた行列を用いて計算される。
この指標は音楽における輪郭解析(musical contour analysis)で用いられる。
rank
$ranks = rank( [ 1.0, 3.2, 2.1, 3.2, 3.2, 4.3 ] ); # [1, 4, 2, 4, 4, 6]
与えられたデータに対する標準の順位の配列参照を返す。
データは統計的順位を計算するに先立ちソートされていなければならないことに注意すること。この処理は初期化メソッドで自動的に行われる。
データに同じ値がある場合は順位は平均化される。例としては以下のようになる。
sorted data: [ 1.0, 2.1, 3.2, 3.2, 3.2, 4.3 ] ranks: [ 1, 2, 3, 4, 5, 6 ] tied ranks: 3, 4, and 5 tied average: (3 + 4 + 5) / 3 == 4 averaged ranks: [ 1, 2, 4, 4, 4, 6 ]
pad_vectors
( $u, $v ) = pad_vectors( [ 1, 2, 3, 4 ], [ 9, 8 ] ); # [1, 2, 3, 4], [9, 8, 0, 0]
他方のベクトルと対照して不足する入力ベクトルの値に0を追加する。すなわち、短い方のベクトルの後ろを 0 で埋める(pad)処理を行う。
correlation_matrix
$matrix = correlation_matrix( $u );
単一ベクトルに対する相関行列を返す。本関数はベクトル自身の値で高低を示す正方2次行列を構成する。
他の順位相関係数の実装
Thomas Breslin <thomas@thep.lu.se> はソートされていない rank コードを提供してくれた。
Gene Boggs, <gene@cpan.org>
Copyright 2003, Gene Boggs
本ラライブラリはフリーソフトウェアであり、Perl 本体と同等の条件で修正/再配布してもよい。
![]() |
Updated : 2007/03/08 |