21 lines
572 B
Ruby
21 lines
572 B
Ruby
def statistic(ab, a)
|
|
sumab, suma = ab.inject(:+).to_f, a.inject(:+).to_f
|
|
suma / a.size - (sumab - suma) / (ab.size - a.size)
|
|
end
|
|
|
|
def permutationTest(a, b)
|
|
ab = a + b
|
|
tobs = statistic(ab, a)
|
|
under = count = 0
|
|
ab.combination(a.size) do |perm|
|
|
under += 1 if statistic(ab, perm) <= tobs
|
|
count += 1
|
|
end
|
|
under * 100.0 / count
|
|
end
|
|
|
|
treatmentGroup = [85, 88, 75, 66, 25, 29, 83, 39, 97]
|
|
controlGroup = [68, 41, 10, 49, 16, 65, 32, 92, 28, 98]
|
|
under = permutationTest(treatmentGroup, controlGroup)
|
|
puts "under=%.2f%%, over=%.2f%%" % [under, 100 - under]
|