Калькулятор критерия знакового ранга Уилкоксона

@import url('https://fonts.googleapis.com/css?family=Droid+Serif|Raleway');

.axis--y .domain { display: none; }

h1 { text-align: center; font-size: 50px; margin-bottom: 0px; font-family: 'Raleway', serif; }

p { color: black; margin-bottom: 15px; margin-top: 15px; font-family: 'Raleway', sans-serif; }

words {

color: black; font-family: Raleway; max-width: 550px; margin: 25px auto; line-height: 1.75; padding-left: 100px; }

words_calc {

color: black; font-family: Raleway; max-width: 550px; margin: 25px auto; line-height: 1.75; padding-left: 100px; }

words_calc input {

display: inline-block; vertical-align: baseline; width: 350px; max-height: 35px; }

hr_top {

width: 30%; margin-bottom: 0px; border: none; height: 2px; color: black; background-color: black; }

hr_bottom {

width: 30%; margin-top: 15px; border: none; height: 2px; color: black; background-color: black; }

words label, #words input {

display: inline-block; vertical-align: baseline; width: 350px; max-height: 35px; }

#buttonCalc { border: 1px solid; border-radius: 10px; margin-top: 20px; padding: 10px 10px; cursor: pointer; outline: none; background-color: white; color: black; font-family: 'Work Sans', sans-serif; border: 1px solid grey; /* Green */ }

#buttonCalc:hover { background-color: #f6f6f6; border: 1px solid black; }

words_output {

text-align: center; }

solution_div {

text-align: center; }

words_intro {

color: black; font-family: Raleway; max-width: 550px; margin: 25px auto; line-height: 1.75; }

words_table {

color: black; font-family: Raleway; max-width: 350px; margin: 25px auto; line-height: 1.75; }

.text_areas { color: black; font-family: Raleway; max-width: 350px; margin: 25px auto; line-height: 1.75; }

.label_radio { text-align: center; } Критерий знакового ранга Уилкоксона — это непараметрическая версия парного t-критерия.Он используется для проверки того, существует ли значительная разница между двумя средними значениями совокупности. Чтобы выполнить знаковый ранговый тест Уилкоксона, просто введите значения данных для двух приведенных ниже образцов и нажмите кнопку «Рассчитать». Образец 1

14, 17, 12, 15, 15, 9, 12, 13, 13, 15, 19, 17, 14, 14, 16 Образец 2

15, 17, 15, 15, 17, 14, 9, 14, 11, 16, 18, 20, 20, 10, 17  W тестовая статистика = 29,5

Количество несвязанных пар (n) = 13

Обратитесь к приведенной ниже таблице критических значений, чтобы решить, является ли результат теста статистически значимым на основе n и выбранного вами уровня альфа.

Если тестовая статистика W меньше значения, найденного в таблице критических значений ниже, то результат теста является статистически значимым.

function calc() { //get raw data var raw1 = document.getElementById('rawData1').value.split(',').map(Number); var raw2 = document.getElementById('rawData2').value.split(',').map(Number);

//calculate raw paired differences var diff = []; for (var i = 0; i < raw1.length; i++) { if (raw1[i]-raw2[i] != 0) { diff.push(raw1[i]-raw2[i]); } }

//calculate absolute paired differences var diff_abs = []; for (var i = 0; i < raw1.length; i++) { if (raw1[i]-raw2[i] != 0) { diff_abs.push(Math.abs(raw1[i]-raw2[i])); } }

//rank absolute paired differences var sorted = diff_abs.slice().sort(function(a,b){return a-b}) var reversed = sorted.slice(0).reverse(); var frac_rank = diff_abs.slice().map(function(n) { return ( (sorted.indexOf(n) + 1) + (reversed.length - reversed.indexOf(n)) ) / 2 });

//create array of positive ranks var positive_ranks = []; for (var i = 0; i < diff.length; i++) { if (diff[i] > 0) { positive_ranks.push(frac_rank[i]); } }

//create array of negative ranks var negative_ranks = []; for (var i = 0; i < diff.length; i++) { if (diff[i] < 0) { negative_ranks.push(frac_rank[i]); } }

//find sum of positive and negative ranks var positive_sum = Math.abs(math.sum(positive_ranks)); var negative_sum = Math.abs(math.sum(negative_ranks)); var w = Math.min(positive_sum, negative_sum); var n = diff.length;

//output results document.getElementById('w').innerHTML = w; document.getElementById('n').innerHTML = n;

}