出展:パーソナルソフトウェア技法 Watts S. Humphrey 著 ISBN4-320-02929-1

PSP課題 07A_CS : 相関係数と有意性の判定

前提条件

9章までと A3 節と A4 節と 課題 06A_CS

要求

n 個の実数の組をファイルから読込みリンクリストに格納せよ。 相関係数と相関の有意性を出力せよ。ゼロ割をしないこと。
ベースは 06A_CS とせよ。

テスト

入力ファイル期待される出力
テスト107A_CS_test_1.xml結果1

参考

相関 r(x,y) := Cov(x,y) / Sdv(x) / Sdv(y) 
 = (sum_i((x_i-Ave(x))*(y_i-Ave(y))) / sqrt(sum_i((x_i-Ave(x))*(x_i-Ave(x))
 * sum_i((y_i-Ave(y))*(y_i-Ave(y)))
 = (n*sum_i(x_i*y_i) - sum_i(x_i) * sum_i(y_i)) / sqrt(
(n*sum_i(x_i^2)-sum_i(x_i)^2) * (n*sum_i(y_i^2)-sum_i(y_i)^2))
t = fabs(r(x,y)) * sqrt((n-2) / (1 - r(x,y)^2))
p = g(t,n-2)
指数形式で出力するには、Console.WriteLine("2(1-p) = {0:E2}",2*(1-p)); のようにすればよい。

解答例