Пост о помощи!
Дали мне хитрую задачку на днях — посчитать с помощью критерия хи–квадрат, насколько моя модель потока событий лучше, чем другая. При этом ни что такое хи–квадрат, ни как считать не объяснили. Погуглив, я, кажется, понял алгоритм. Хочу спросить — правильно ли я понял, что мне нужно сделать (шанса на ошибку у меня нет)

Итак,
1. У нас есть поток событий, о котором известны лишь моменты наступления этих самых событий.
2. Переходим от моментов наступления событий к интервалам между событиями (это и будет сл. величина)
3. Сортируем интервалы по возрастанию. Делим этот ряд на, допустим, 10 частей. Считаем, сколько интервалов попадет в каждую из этих частей (лучше, если поровну будет, да?)
4. Берем плотность распределения, допустим, моей модели. Считаем, сколько теоретически интервалов попадет в те же самые части
5. По формуле (сумма (реальное–теоретическое)^2/(теоретическое)) считаем хи–квадрат.

Аналогично делаем для второй модели, и сравниваем полученный результат.
Все верно?
Если да, то еще один вопрос — формулу плотности распределения для моей модели посчитать (да и найти в интернете) не так–то просто. Два часа уже убил впустую. Можно ли поступить следующим образом: оценить параметры исходного потока, и затем использовать имитационную модель с этими параметрами для получения «теоретических» значений? (при условии, что выборка будет очень большой, конечно же)

GD Star Rating
loading...

28 Responses to Нужно посчитать с помощью критерия хи–квадрат

  1. Xiin:

    Мне кажется, нужно более полно задачу изложить, если вы надеетесь на помощь. Что требуется описать? Плотность вероятности следующего события, принимая за ноль время текущего события? События зависят друг от друга?

  2. Gr5:

    Поток событий представляет собой моменты поступления пакетов на сетевой интерфейс компьютера (при посещении веб–сайта, например). Я пытаюсь описать его моделью асинхронного дважды стохастического потока с конечным числом состояний. (Есть несколько состояний, в которых интенсивность появления событий различается. Длительность нахождения процесса в i–ом состоянии является случайной величиной, распределённой по экспоненциальному закону. Интервалы между моментами появления событий тоже случайны, и тоже подчинены эксп. закону)

    Частный случай этой модели уже был исследован. Мне надо определить, насколько общий вид модели лучше, чем частный случай. Для этого сказали (дословно) «применить критерий хи–квадрат».
    Вот это все данные, которые у меня есть 🙂

  3. Xiin:

    Я айтишник, хотя и физик по образованию. Поэтому отвечаю неуверено. Давайте попробуем сначала так вопрос поставить — насколько корректно оценивать что–то хи–квадратом в такой постановке. Вы же не пытаетесь ничего апроксимировать вроде. По мне, так чепуха. Тут образованные люди есть и профи, пусть скажут, жаль молчат пока.

  4. Gr5:

    Я тоже айтишник, в математике не силен) И как–раз таки пытаюсь аппроксимировать! Аппроксимировать поток реального трафика моделью ДС потока

  5. Gr5:

    В интернете пишут: «Критерий Хи–квадрат — статистический критерий для проверки гипотезы, что наблюдаемая случайная величина подчиняется некому теоретическому закону распределения.»
    Вот у меня есть наблюдаемая сл. величина — это интервалы между пакетами данных (реальными).
    Есть теоретический закон распределения — p(t) — это плотность распределения для моей модели с определенными параметрами.

    Как я понял, надо вычислить этот критерий и либо принять, либо отвергнуть гипотезу.

  6. Xiin:

    Мне кажется, что даже если вы что–то посчитаете, то следующей проблемой будет спор на тему, что же посчитано, и насколько это описывает или не описывает сетевой трафик через конкретный интерфейс. Мне, к сожалению, не хватает образования и времени чтобы просто даже поддержать разговор в корректном русле.

  7. TiPhD:

    — Как я понял, надо вычислить этот критерий и либо принять, либо отвергнуть гипотезу.

    напрягся, вспомнил стат первого семестра второго курса — всё так.

  8. HtroNx:

    Так, попорядку) — скажу сразу — шаги все 5 практически правильные (за исключением некоторой не точности в пункте 3)

    Что нам вообще показывает критерий хи–квадрат? Он показывает на сколько точно теоретическая модель ( — «закон распределения» ) описывает наблюдаемые на практике данные. Если вычисленный хи–квадрат меньше некого порогового значения ( задаваемого таблично — скажем так) — то гипотеза, о том что что данная модель («закон распределения») — верно описывает наблюдаемые данные — принимается.
    Соответственно — если мы сравниваем 2 модели — то более точно описывает наблюдаемые данные та модель, у которой значение критерия хи–квадрат — меньше.

    Я правильно понимаю задачу — у нас есть 2 модели — «старая» и «новая» — их надо сравнить между собой? А наблюдаемые данные — по этим самым потокам событий — как они распределяются в реальной жизни — у нас есть?

  9. Peels:

    Можно я ляпну тоже. На Хи–квадрат можно смотреть по–разному.
    1) Банальный подход. Считаем сумму квадратов нормированных ошибок (чего–бы там ни было) и радуемся если она маленькая. Если задавший тебя человек придерживается этого подхода, то я думаю ты все правильно понял.
    2) Чуть более формальный подход. Хи–квадрат — это любая статистика, которая имеет асимптотически Хи–квадрат распределение. В большинстве случаев это сумма квадратов ошибок (ибо ошибки зачастую асимптотически нормальны) и тогда разницы между 1) и 2) нет. Но в твоем случае мне сразу не очевидно что это так, потому что у тебя хитрая модель, и потому что тебе нужно дискретизировать промежутки неким произвольным образом. Правда вполне может быть что мне лень вдумываться и я зря тебя путаю.

    Вообще лично мне кажется говорить «примени хи–квадрат» это неправильно, ибо за этим термином скрывается тысяча различных вариаций. Ну а для сравнения непрерывных распределений вообще лучше какой–нибудь Колмогоров–Смирнов.

    И еще — если ты возьмешь данные, оценишь на них свою модель, вторую модель, посчитаешь хи–квадрат на этих же данных, и сравнишь результаты, то это будет неправильно (зато твоя модель конечно же победит ибо она более общая). Валидировать нужно на новых («тестовых») данных.

  10. HtroNx:

    Но в твоем случае мне сразу не очевидно что это так, потому что у тебя хитрая модель, и потому что тебе нужно дискретизировать промежутки неким произвольным образом.

    почему — произвольным способом?

    Вообще лично мне кажется говорить «примени хи–квадрат» это неправильно, ибо за этим термином скрывается тысяча различных вариаций.

    Да скорее всего — именно самый простейший случай и имели ввиду.

    И еще — если ты возьмешь данные, оценишь на них свою модель, вторую модель, посчитаешь хи–квадрат на этих же данных, и сравнишь результаты, то это будет неправильно (зато твоя модель конечно же победит ибо она более общая). Валидировать нужно на новых («тестовых») данных.

    Так как раз — именно то что нужно (как я понял). Задача же — обосновать «научно» применение новой модели, как более общей.

  11. Peels:

    почему — произвольным способом?

    Потому что «давай разобьем на промежутки ээээ… ну скажем каждый длиной в пять единиц» — это то, что я называю «произвольным способом».

  12. HtroNx:

    а )) а то я про другое подумал )

    Ну это кстати — распространенная эмпирическая (? видимо) рекомендация — про деление именно на 10 частей ряда при вычислении пирсоновского хи–квадратного критерия )

  13. Peels:

    Дану, про 10 это уж совсем от балды рекомендация, просто потому что пальцев на руках 10.
    Ближайшая пришедшая в голову эмпирическая рекомендация про хи–квадрат говорит лишь то, что «ячейки» должны содержать по крайней мере по пять, лучше больше, наблюдений, а то там до Хи–квадратного распределения слишком далеко будет.

  14. Gr5:

    >Я правильно понимаю задачу — у нас есть 2 модели — «старая» и «новая» — их надо сравнить между собой? А наблюдаемые данные — по этим самым потокам событий — как они распределяются в реальной жизни — у нас есть?
    Да, разумеется. Есть несколько статистик по 1000+ событий, собранных при реальной работе.
    >Задача же — обосновать «научно» применение новой модели, как более общей.
    Именно.
    >Да скорее всего — именно самый простейший случай и имели ввиду.
    Я тоже так думаю)

    >»ячейки» должны содержать по крайней мере по пять, лучше больше, наблюдений
    Наблюдений у меня очень много. Так что, следуя правилу «минимум 5 в ячейке» я могу разбить его хоть на 200 интервалов. А на сколько будет лучше? Я где–то в интернете прочитал про разбиение на 10 интервалов, и чтобы, желательно, в каждый из них попало более–менее равное число наблюдений (видимо, чтобы как раз не было ячеек по 1–3 события)

  15. Peels:

    А на сколько будет лучше?
    Фиг знает, по любому от балды выйдет. Когда хистограмму рисуют, принято корень из н столбиков рисовать, например. Я бы на твоем месте пересчитал для нескольких значений, для надежности.

  16. HtroNx:

    ага) ну отлично.

    Значит берем реальные данные, и обе модели — и проделываем с ними шаг 3

    3. Сортируем интервалы по возрастанию. Делим этот ряд на, допустим, 10 частей. Считаем, сколько интервалов попадет в каждую из этих частей (лучше, если поровну будет, да?)

    Нет — как раз наоборот — нас как раз и интересует вот это не равномерное распределение случаев по интервалам — оно нам как раз и нужно.
    И 10 интервалов — как рекомендуют в традиции — нормально. (Хотя конечно — если данных много, и есть желание по эксперементировать — можно попробовать и сделать по больше интервалов — 20 допустим)

    В результате мы получим 3 показателя — ri — частотное распределение реальных данных; m1i — частотное распределение первой модели;
    m2i — частотное распределение второй модели.

    Считаем 2 хи квадрата:
    Модель 1. сумма ((ri–m1i)^2/(m1i))

    Модель 2. сумма ((ri–m2i)^2/(m2i))

    Который хи квадрат меньше — та модель лучше

  17. HtroNx:

    ну да)
    10 — это так сказать — для психологического удобства.

  18. Gr5:

    А что делать в том случае, если возникла такая ситуация: по одной из моделей на интервале вообще не должно быть событий (ну, вернее, количество событий очень близко к нулю), а в реальности они есть. Их немного (10–13), но все–таки?
    Выбирать другое разбиение по интервалам, чтобы подходило для каждой модели? Вообще, что делают в таких случаях?

  19. HtroNx:

    Ничего не делать. Все нормально. Считать по формуле дальше) именно из суммы таких отклонений и складывается хи–квадрат, который мы ищем. Вот это отклонение и внесет свою маленькую долю в общую величину критерия.
    Какая бы модель точная не была — у нее будут некоторые отклонения от реальных данных. Абсолютного совпадения — до 10 знака после запятой — и не нужно.

    Выбирать другое разбиение по интервалам, чтобы подходило для каждой модели?

    Нет — разбиение должно быть одинаковым для обоих исследуемых моделей.

  20. Gr5:

    >Вот это отклонение и внесет свою маленькую долю в общую величину критерия.
    Получается вовсе не маленькое ( Например, в одном эксперименте в ячейку попало 13 событий, а теоретически должно было попасть 1,28. Если подставить в формулу, получается огромное значение. Или этого бояться не стоит, и просто сказать, что в данном случае модель не подходит?

  21. HtroNx:

    Да — все нормально, подставить в формулу и считать что получается. Что вторая модель на этом интервале показывает?

    У нас же как — и в теоретическом и в экспериментальном распределении — одинаковое количество случаев? Должно быть одинаковое 🙂

    Кстати — тут правильно выше отметил Peels — во всех интервалах для распределения экспериментальных данных — должно быть больше 5 случаев. Если меньше — интервалы надо объединять. Это требование выполняться?

  22. Gr5:

    Да. 13 — это наименьшее значение в «хвосте» графика. Вторая модель (моя) показывает гораздо лучшие результаты (там событий 9–10 по ней выходит). Вроде бы это и хорошо, но высокое значение хи–квадрата меня просто пугает 🙂

  23. HtroNx:

    Да не — все норм. Всякое бывает. Да и с моделью которая вместо 13 предсказывает 1,28 — точно не все в порядке.

    опять же — раз задача обосновать превосходство одной модели над другой с помощью хи–квадрата — вот оно и обосновывается 🙂

    А так вообще — если по уму ) То для такой модели
    Я пытаюсь описать его моделью асинхронного дважды стохастического потока с конечным числом состояний.

    критерий хи–квадрат — вообще действительно не очень подходящий. Но раз уж хотят именно его )

  24. TiPhD:

    чаще всего (по крайней мере в студ.практике) встречается формула Старджесса: 3.3*lg(n)+1
    n — само собой, количество событий.

  25. Gr5:

    Огромное спасибо всем ответившим! Вы даже не представляете, как я благодарен вам! Расчеты приняли и сказали «молодец» )

  26. HtroNx:

    Ну и отлично!
    Восславим статистику — неутомимо служащую человечеству )

  27. NiDad:

    По–хорошему это делается так. Ты сравниваешь полученные значения с распределением хи квадрат с n–1 степенями свободы. Это даёт тебе статистическую значимость (p–value), то есть вероятность, с которой можно отвергнуть нуль–гипотезу. Нулевая гипотеза в твоём случае — это «наблюдаемое и моделируемое распределения совпадают».
    Соответственно, та модель, у которой p–value меньше — та модель пижже.
    Ну а по сути, да, это то же самое, что «Который хи квадрат меньше — та модель лучше«, что в свою очередь почти то же самое, что «у какой модели сумма кваратов ошибок меньше — та модель лучше».

  28. HtroNx:

    Эх коллега )) оно конечно все так.
    Я даж больше скажу — по хорошему еще бы с самого начала нужно было сформулировать представление о законе распределения (хотя б для того что бы степени свободы подсчитать )

    Потому как
    модель асинхронного дважды стохастического потока с конечным числом состояний

    совсем не обязательно на нормальное распределение похоже ) Ну хотя бы тесты на нормальность распределения провести по хорошему бы стоило.

    Так что тут да — обошлись малой кровью )

Добавить комментарий