В настоящее время я собираю большое количество данных ежедневно и для каждого дня вычисляю медиану текущих значений. Теперь мне нужно объединить все эти ежедневные результаты в месячный период и, конечно, мне нужно снова вычислить медиану.
Есть ли способ рассчитать медиану медиан и сделать ее статистически правильной? Я хочу избежать повторного использования необработанных данных, потому что их огромное количество:)
В качестве небольшого доказательства концепции я сделал этот javascript - возможно, это поможет найти способ:
var aSortedNumberGroups = [];
var aSortedNumbers = [];
var aMedians = [];
Math.median = function(aData)
{
var fMedian = 0;
var iIndex = Math.floor(aData.length/2);
if (!(aData.length%2)) {
fMedian = (aData[iIndex-1]+aData[iIndex])/2;
} else {
fMedian = aData[iIndex];
}
return fMedian;
};
for (var iCurrGroupNum = 0; iCurrGroupNum < 5; ++iCurrGroupNum) {
var aCurrNums = [];
for (var iCurrNum = 0; iCurrNum < 1000; ++iCurrNum) {
var iCurrRandomNumber = Math.floor(Math.random()*10001);
aCurrNums.push(iCurrRandomNumber);
aSortedNumbers.push(iCurrRandomNumber);
}
aCurrNums.sort(function(oCountA,oCountB) {
return (iNumA < iNumB) ? -1 : 1;
});
aSortedNumberGroups.push(aCurrNums);
aMedians.push(Math.median(aCurrNums));
}
console.log("Medians of each group: "+JSON.stringify(aMedians, null, 4));
console.log("Median of medians: "+Math.median(aMedians));
console.log("Median of all: "+Math.median(aSortedNumbers));
Как вы увидите, между медианой всех необработанных чисел и медианой медианы часто существует огромная граница, и мне нравится, когда она довольно близка друг к другу.
Большое спасибо!