最新記事
- perl で特殊関数 40 対数積分 li(x) (Logarithmic Integral li: LOGARITHMICINTEGRALLI)
- perl で特殊関数 39 指数積分 Ei(x) (Exponential Integral Ei: EXPONENTIALINTEGRALEI)
- perl で特殊関数 38 指数積分 En(x) (Exponential Integral En: EXPONENTIALINTEGRALEN)
- perlで統計 34 ロジスティック分布 (逆関数) (Logistic Distribution (Inverse Function): LOGISTICDISTRIBUTIONINVERSE)
- perlで統計 33 コーシー分布 (逆関数) (Cauchy Distribution (Inverse Function): CAUCHYDISTRIBUTIONINVERSE)
- 全ての記事タイトル一覧
- ランキングに参加しています。この記事が参考になりましたら、応援お願い致します。
# ケンドールの順位相関係数 Kendall Rank Correlation Coefficient
# 引数 期間 値 値 ($Period, \@Price1, \@Price2)
# 戻り値 ケンドールの順位相関係数 (@krcc)
sub KRCC{
my ($Period, $Price1, $Price2) = @_;
my @krcc = ();
my $count = @$Price1 - $Period;
# 期間と配列数の確認
if(($Period <= 0) || ($count < 0) || (@$Price1 != @$Price2)){
return 0;
}
# 計算
my $den = ($Period * ($Period - 1)) / 2;
for(my $i = $count; $i >= 0; $i--){
# 使用する値
my @SortPrice1 = ();
my @SortPrice2 = ();
for(my $j = 0; $j < $Period; $j++){
$SortPrice1[$j][0] = $$Price1[$i + $j];
$SortPrice1[$j][1] = $j;
$SortPrice2[$j][0] = $$Price2[$i + $j];
$SortPrice2[$j][1] = $j;
}
# 昇順ソート
@SortPrice1 = sort {$a->[0] <=> $b->[0]} @SortPrice1;
@SortPrice2 = sort {$a->[0] <=> $b->[0]} @SortPrice2;
# 同順位の場合には、平均値を使用する
&RANKAVG($Period, \@SortPrice1);
&RANKAVG($Period, \@SortPrice2);
# 順位
my @Rank1 = ();
my @Rank2 = ();
my $r = 0;
for(my $j = 0; $j < $Period; $j++){
$r = $SortPrice1[$j][1];
$Rank1[$r] = $SortPrice1[$j][2];
$r = $SortPrice2[$j][1];
$Rank2[$r] = $SortPrice2[$j][2];
}
# 大小関係の比較(x, y)
my $p = 0;
my $q = 0;
for(my $j = 0; $j < $Period - 1; $j++){
my $x = $Rank1[$j];
my $y = $Rank2[$j];
for(my $k = 1; $k < $Period - $j; $k++){
# 右上(大,大) 左下(小,小)
if(($x < $Rank1[$j + $k]) && ($y < $Rank2[$j + $k]) || ($x > $Rank1[$j + $k]) && ($y > $Rank2[$j + $k])){
$p += 1;
}else {
# 左上(小,大) 右下(大,小)
if(($x > $Rank1[$j + $k]) && ($y < $Rank2[$j + $k]) || ($x < $Rank1[$j + $k]) && ($y > $Rank2[$j + $k])){
$q += 1;
}
}
}
}
# ケンドールの順位相関係数
$krcc[$i] = ($p - $q) / $den;
}
return @krcc;
}
参考URL
Kendall tau rank correlation coefficient - Wikipedia, the free encyclopedia
perlでテクニカル分析 55 スピアマンの順位相関係数 (Spearman's Rank Correlation Coefficient: SRCC)
スポンサードリンク :
Category :
Home :
シリーズ
月別アーカイブ カテゴリ
オンライン コンパイラ/インタプリタ
Perl リファレンス
株式
テクニカル分析
計算式ライブラリ
プロフィール
Author:雨宮
Firefoxを使用しているので気づかなかったけど、IE6でソースコードを上手くコピーできない
5/3
携帯用ならIE6でもソースコードをコピーできる
携帯用