Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Программирование [игнор отключен] [закрыт для гостей] / отсекание экстремальных значений из группы данных / 2 сообщений из 2, страница 1 из 1
10.09.2013, 23:13
    #38392966
SI10
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
отсекание экстремальных значений из группы данных
Есть некий массив статистических данных. Нужно отсечь экстремальные значения, которые не вписываются в общую группу. Я взял ( правило 3 сигм )
Вот код ( javascript):
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
function Test() {
    this.data = { 'a' : 0, 'b' : 6, 'c' : 8, 'd' : 14, 'e' : 11, 'f' : 200, 'aa' : 201, 'www' : 200000 }
}

Test.prototype = {
    StandardDeviation: function (sa) {
        var n = 0;
        var sum = 0;
        for (var key in this.data) {
            n = n + 1;
            sum = sum + Math.pow(( this.data[key] - sa ), 2)
        }
        if (n > 0) {
            return Math.sqrt(sum / n)
        } else {
            return 0
        }
    },
    SimpleAverage: function () {
        var n = 0;
        var sum = 0;
        for (var key in this.data) {
            n = n + 1;
            sum = sum + this.data[key]
        }

        if (n > 0) {
            return sum / n
        } else {
            return 0
        }
    },
    Middle: function (sd, sa) {
        var hash = {};
        for (var key in this.data) {
            if ( this.data[key] <= 3 * sd + sa  && this.data[key] >= sa - 3 * sd )  {
                hash[key] = this.data[key]
            }
        }
        return hash
    },
    run: function () {
        var sa = this.SimpleAverage();
        var sd = this.StandardDeviation(sa);
        console.log(this.Middle(sd, sa));
    }

};

exports.Test = Test;

r = new Test()
r.run()



В результате отдается полностью массив, без отсечения 200000. Почему это метод не работает в данном случае ?
...
Рейтинг: 0 / 0
11.09.2013, 01:54
    #38393029
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
отсекание экстремальных значений из группы данных
Три сигмы действуют для нормального распределения. У тебя даже не понять где среднее.
И вообще. Откуда ты взял модульный тест? С чего решил что 200000 должно отсекаться?

Нет я конечно доверяю "интуиции" и "на глазок". Но всё таки.
...
Рейтинг: 0 / 0
Форумы / Программирование [игнор отключен] [закрыт для гостей] / отсекание экстремальных значений из группы данных / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]