Юли 212009
 

Днес си блъскам главата над сления проблем:

Имам няколко стойности, примерно брой хора, които са влизали между 8:00 и 10:00 часа в сградата, за една седмица назад (може и за повече, ако се налага). Примерно:
Понеделник: 1180
Вторник: 1177
Сряда: 1184
Четвъртък: 1197
Петък:1148
Събота: 1181
Неделя: 1155

За днес имам числото Х. Искам да проверя дали Х е нормално, или се различава значително от другите в множеството.

Най-простият отговор е да намеря средноаритметично на старите стойности и да гледам дали се различавам с повече от зададен процент. Средноаритметичното в случая е 1174.57. Ако приемем, че е допустима разлика от 10%, тогава всяко число между 1068 и 1292 ще се приеме за нормално.

Днес, обаче, има стачка и никой не идва. Така за днес имам стойност 0 и получавам аларма, че нещо не е наред (както се очаква).

Обаче утре за сравнение ще имам следнтие данни:

Вторник: 1177
Сряда: 1184
Четвъртък: 1197
Петък:1148
Събота: 1181
Неделя: 1155
Понеделник: 0

Средноаретметичното е 1006 и границите стават много ралзични: от 914 до 1106. Лесно се вижда, че никоя от „нормалните“ за миналата седмица стойности не влиза и ако дойдат, примерно 1150 души, аз ще получа аларма, че нещо не е наред. И така ще получавам „фалшиви“ грешки цяла седмица, докато нулата не излезе от статистиката.

Въпроса ми е има ли някакъв (за предпочитане, относително прост) метод да се избегне това? Т.е. стойности, които очевидно не принадлежат на множеството, да не се взимат предвид, или поне да влияят по-слабо на стойността, с която сравнявам (средноаритметичната в случая). Сигурен съм, че този проблем е решен и не ми се иска да откривам топлата вода 🙂

 Posted by at 11:54