2群の標本集団間のU統計量を求めます。 このプログラムは統計量のみを計算しますので、標本集団間で有意差があるかどうかを知るためには、別にU検定統計量の分布表が必要となります。 ご面倒ですが、お手元の資料を参照するか、こちらのサイト(”統計学上の分布関数の計算”をクリック)などで別に計算して下さい。 本当は一発で検定できるようにしたかったのですが、小一時間ほど頭をひねっても、U検定統計量の分布を求めるアルゴリズムが思い浮かびませんでした。 (-_-)
半角文字列で入力して下さい。最初から表示されている数列は入力例です。
# Mann-Whitney's U-test
# (C) Copyright 2002, Hisashi SATO
def u_test(array1, array2)
u = 0
array1.each{|elem1| array2.each{|elem2|
if elem1 < elem2 then u += 1
elsif elem1 == elem2 then u+= 0.5
end
}}
combination = array1.size * array2.size
if combination-u < u then u = combination-u end
return u
end