MOTR logo
    • Категории
    • Последние
    • Популярные
    • Метки
    • Пользователи
    • Группы
    • Зарегистрироваться
    • Войти

    "Реальные цены..." Кадр первый, дубль второй.

    Запланировано Прикреплена Закрыта Перенесена Общий
    81 Сообщения 25 Posters 7.0k Просмотры
    Загружаем больше сообщений
    • Сначала старые
    • Сначала новые
    • По количеству голосов
    Ответить
    • Ответить, создав новую тему
    Авторизуйтесь, чтобы ответить
    Эта тема была удалена. Только пользователи с правом управления темами могут её видеть.
    • ShokiS Не в сети
      Shoki
      отредактировано

      Очень хорошее направление мыслей!

      Конечно хотелось бы увидеть корректные формулы! 🙂

      И сразу вопрос - как вычислять часто встречающуюся величину, если все величины разные?

      1 ответ Последний ответ Ответить Цитировать 0
      • G Не в сети
        Glu
        отредактировано

        @"Shoki":
        Очень хорошее направление мыслей!

        Конечно хотелось бы увидеть корректные формулы! 🙂

        И сразу вопрос - как вычислять часто встречающуюся величину, если все величины разные?

        Начну с последнего вопроса. Строить интервальный ряд с равными интервалами.

        Формулы:

        [list=1:21vqv6fi][*:21vqv6fi]Оптимальная длина интервала для нормального и близкого к нормальному распределений:

        h = (Xmax - Xmin)/(1+3,322*lg(N)), lg - логарифм с основанием 10!!!

        Xmax - максимальная цена
        Xmin - минимальная цена
        N - величина массива (общее количество занесеных по данному товару цен), не путать с суммой всех цен 😉

        Обычно h округляется, но можно этого и не делать.
        [/Ⓜ21vqv6fi]
        [
        :21vqv6fi]Расчет моды:

        В начале определяются частоты. Частоты находятся просто. Частота - это количество ценовых значений, которые попали в тот или иной интервал. Пусть при расчете длины интервала получилось, что h = 10. Пусть тогда мы имеем следующий ряд цен:

        0-10
        10-20
        20-30
        30-40
        40-50

        Всего пять интервалов.

        Теперь смотрим, в какой интервал попало сколько ценовых значений. Допустим, в первый интервал попало 2 значения (то есть только две цены из всего массива оказались больше нуля, но меньше 10), во второй интервал - 5 значений, в третий - 18, в четвертый - 7 и в пятый - 1. Тогда мода содержится в том интервале, где наблюдается максимальная частота. В нашем случае это третий интервал (20 - 30), в нем содержится 18 ценовых значений.

        Обозначим нижнюю границу найденого интервала как Xk1. В нашем случае Xk1 = 20. Частоту в данном интервале обозначим как Mk. Частоту интервала, предшествующего модальному (в нашем примере это второй интервал), обозначим как Mk1. А частоту последующего за модальным (четвертый) как Mk2.

        Тогда мода находится по следующей формуле:

        Mo = Xk1 + h * ((Mk - Mk1)/((Mk - Mk1) + (Mk = Mk2)))

        Для нашего примера получаем:

        Mo = 20 + 10 * ((18 - 5)/(18 - 5) + (18 - 7))) ~ 25,417. Если это цена, то просто 25z.

        Это и будет модальное, то есть самое популярное значение.
        [/Ⓜ21vqv6fi]
        [
        :21vqv6fi]Расчет среднего квардатического отклонения:

        σ = sqrt((Cумма(sqr(Xi - Xсреднее)))/N)

        Xсреднее - среднее арифметическое. Сумма по всем i-м иксам. i принаджежит от 1 до N включительно. N - общее число элементов массива цен.[/*Ⓜ21vqv6fi][/list⭕21vqv6fi]

        Да, можно даже не рассчитывать эту дурацкую исправленную среднюю. Одной моды будет достаточно. Можно просто показывать среднее квадратическое отклонение. На финансовых рынках этот показатель считается мерой риска, кстати. Чем он меньше, тем лучше.

        Вот блин, не люблю, когда во мне бесполезный энтузиазм просыпается 🙂

        1 ответ Последний ответ Ответить Цитировать 0
        • ShokiS Не в сети
          Shoki
          отредактировано

          Ну почему же бесполезный! Очень даже полезный!! 🙂

          Алгоритм примерно ясен.
          Пара вопросов:

          h = (Xmax - Xmin)/(1+3,322*lg(N))

          что означает константа 3.322?

          σ = sqrt((Cумма(sqr(Xi - Xсреднее)))/N)

          sqr - это sqrt?

          Таким образом на экран выведем " Mo ± σ " и станет хорошо? 🙂

          1 ответ Последний ответ Ответить Цитировать 0
          • C Не в сети
            Crash
            отредактировано

            Цитата:
            "побежала забивать весь свой проданный товар в базу"

            Товар проданый/купленный за определенную цену в базу вводим. Молодец.

            Цитата:
            "Уже начал добавлять цены,что знаю,потом добавлю,что знают другие
            и ап!"

            А это еще что за на ...? Ты за цену которую "знаеш" купи/продай сначало вещь, потом будеш это куда то вводить. И не надо что видел ты, или слышал там у нас. А то щас начнут тут у нас все цены вводить которые якобо знают.

            1 ответ Последний ответ Ответить Цитировать 0
            • G Не в сети
              Glu
              отредактировано

              @Shoki:
              Ну почему же бесполезный! Очень даже полезный!! 🙂

              Алгоритм примерно ясен.
              Пара вопросов:

              1. h = (Xmax - Xmin)/(1+3,322*lg(N))
                что означает константа 3.322?

              2. σ = sqrt((Cумма(sqr(Xi - Xсреднее)))/N)
                sqr - это sqrt?

              3. Таким образом на экран выведем " Mo ± σ " и станет хорошо? 🙂

              1. Хрен знает. Это формула какого-то мужика. Он наверное ее вывел эмпирическим путем. Кроме того, я думаю, это округленный вариант.

              2. Нет, это вторая степень, квадрат. То есть корень из суммы квадратов деленой на N 😉

              3. Нет. Mo отдельно. И σ отдельно. Можно еще выводить диапазон т.н. "реальных" цен. То есть [Mo - 3σ; Mo + 3σ]. Но, думаю, не стоит. Пусть σ просто висит как мера риска...

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

              1 ответ Последний ответ Ответить Цитировать 0
              • ShokiS Не в сети
                Shoki
                отредактировано

                @"Glu":

                h = (Xmax - Xmin)/(1+3,322*lg(N)),
                Это формула какого-то мужика. Он наверное ее вывел эмпирическим путем. Кроме того, я думаю, это округленный вариант.

                Обозначим нижнюю границу найденого интервала как Xk1. В нашем случае Xk1 = 20. Частоту в данном интервале обозначим как Mk. Частоту интервала, предшествующего модальному (в нашем примере это второй интервал), обозначим как Mk1. А частоту последующего за модальным (четвертый) как Mk2.

                Тогда мода находится по следующей формуле:

                Mo = Xk1 + h * ((Mk - Mk1)/((Mk - Mk1) + (Mk = Mk2)))

                Ряд цен: 10000000,100,100,100,20,500
                По формулам:

                h=2789380;
                xmin=20;
                xmax=10000000;
                xk1=0;
                mk=5;
                mk1=0;
                mk2=0;

                Распределение значений по интервалам:

                0 - 2789380 - 5 штук
                2789380 - 5578760 - 0 штук
                5578760 - 8368140 - 0 штук
                8368140 - 11157520 - 1 штука

                Соответственно: Mo = 1394690

                Непорядок получается потому, что вычисляется слишком большой h!

                Хентай, хентай! Тьфу! Тайхен, тайхен!

                1 ответ Последний ответ Ответить Цитировать 0
                • ShokiS Не в сети
                  Shoki
                  отредактировано

                  Но в достоиства формул всё же следует отнести тот факт, что если не вводить кардинально плохих значений то формулы работают просто класс!

                  То есть вообще плохие значения вводить можно! И формулы их вполне корректно отбрасывают. Но если ввести конкретно плохое значение - ну супер офигительное, либо супер мелкое зависит от ситуации - тогда только возникают косяки.

                  1 ответ Последний ответ Ответить Цитировать 0
                  • G Не в сети
                    Glu
                    отредактировано

                    @Shoki:

                    Ряд цен: 10000000,100,100,100,20,500
                    По формулам:

                    h=2789380;
                    xmin=20;
                    xmax=10000000;
                    xk1=0;
                    mk=5;
                    mk1=0;
                    mk2=0;

                    Распределение значений по интервалам:

                    0 - 2789380 - 5 штук
                    2789380 - 5578760 - 0 штук
                    5578760 - 8368140 - 0 штук
                    8368140 - 11157520 - 1 штука

                    Соответственно: Mo = 1394690

                    Непорядок получается потому, что вычисляется слишком большой h!

                    Ну да. Но распределение далеко не нормальное. Я же говорил, формула для h подходит для нормального и близких к нормальному распределений (например, бетта-распределение). Цены точно будут распределены нормально для большинства товаров, так что при большой выборке все будет нормально...

                    1 ответ Последний ответ Ответить Цитировать 0
                    • G Не в сети
                      Glu
                      отредактировано

                      Тафтология какая-то у меня получилась 🙂

                      1 ответ Последний ответ Ответить Цитировать 0
                      • СварогС Не в сети
                        Сварог
                        отредактировано

                        Хм. А нужны ли какие-либо особые формулы для нормального и близких к нему распределениях цен?
                        Вульгарное среднее арифметическое там разве не прокатит? 😉

                        1 ответ Последний ответ Ответить Цитировать 0
                        • ShokiS Не в сети
                          Shoki
                          отредактировано

                          Сейчас и используется вульгарное среднее арифметическое. Но так как люди у нас в основном ненормальные, они и цены такие же вводят иногда.
                          А ненормальные цены сильно портят среднее арифметическое.
                          Именно поэтому я и применил линк "Показать все введённые цены".
                          Используйте пока его. А мы пока что-нибуть придумаем.

                          Glu! Давай пробовать что-нибуть с ненормальными распределениями.

                          1 ответ Последний ответ Ответить Цитировать 0
                          • G Не в сети
                            Glu
                            отредактировано

                            Слушай, отправь данные по паре товаров в приват. Или прям сюда. Только чтобы побольше была выборка. Я на практике как-то лучше соображаю 🙂

                            Пока есть пара вариантов усложнения/упрощения, но хочу провести эмпирическую проверку сам...

                            1 ответ Последний ответ Ответить Цитировать 0
                            • King of LamersK Не в сети
                              King of Lamers
                              отредактировано

                              А может просто надо модерировать базу?

                              Допустим вещь стоит 1кк, народ может ввести и 10кк и 1 зену, чтоб в нужную ему сторону цена скачнула.

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

                              1 ответ Последний ответ Ответить Цитировать 0
                              • ShokiS Не в сети
                                Shoki
                                отредактировано

                                2KoL: Я! Великий и Ужасный, модерирую сейчас базу руками!

                                2Glu: Пожалуйста:
                                1.Vitata Card:
                                2000000,2000000,1800000,3000000,1,1,1
                                2.Jellopy:
                                20,20,20,15,10,15,999999999,999999999

                                1 ответ Последний ответ Ответить Цитировать 0
                                • -Меланхолик-- Не в сети
                                  -Меланхолик-
                                  отредактировано

                                  Чво с базой, не заходит =(

                                  1 ответ Последний ответ Ответить Цитировать 0
                                  • ShokiS Не в сети
                                    Shoki
                                    отредактировано

                                    Вроде всё норм.
                                    Всё равно не заходит?

                                    1 ответ Последний ответ Ответить Цитировать 0
                                    • G Не в сети
                                      Glu
                                      отредактировано

                                      Так, скоро все опишу, боюсь формула будет слишком сложная, так как она авторская, а алгоритм тяжелый. Попробую на будущей неделе спросить на кафедре статистики, а пока ничего писать не буду, так как не уверен в своей правоте...

                                      1 ответ Последний ответ Ответить Цитировать 0
                                      • ShokiS Не в сети
                                        Shoki
                                        отредактировано

                                        А там может и на диплом потянет...

                                        "Особенности посторения ненормальных распределений в условиях нестабильной экономической модели и неадекватном поведении участников рынка спонтанно образовавшихся интернет-сообществ."

                                        А я тебе рецензию и акт о внедрении напишу.

                                        1 ответ Последний ответ Ответить Цитировать 0
                                        • -Меланхолик-- Не в сети
                                          -Меланхолик-
                                          отредактировано

                                          Всё ок :mrgreen:

                                          Ну прилепите же эту тему наконец!!! (на конец :mrgreen: думаю не стоит)

                                          Иначе апы делать буду 😄

                                          1 ответ Последний ответ Ответить Цитировать 0
                                          • ShokiS Не в сети
                                            Shoki
                                            отредактировано

                                            Кстати. Возможно цены будут доступны по адресу:
                                            <!-- m --><a class="postlink" href="http://bo.dvo.ru/MOTRPrices/">http://bo.dvo.ru/MOTRPrices/</a><!-- m -->

                                            Попробуйте кто-нить и напишите так ли это?

                                            1 ответ Последний ответ Ответить Цитировать 0
                                            • Первое сообщение
                                              Последнее сообщение