"Реальные цены..." Кадр первый, дубль второй.
-
Очень хорошее направление мыслей!
Конечно хотелось бы увидеть корректные формулы!
И сразу вопрос - как вычислять часто встречающуюся величину, если все величины разные?
-
@"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]
Да, можно даже не рассчитывать эту дурацкую исправленную среднюю. Одной моды будет достаточно. Можно просто показывать среднее квадратическое отклонение. На финансовых рынках этот показатель считается мерой риска, кстати. Чем он меньше, тем лучше.
Вот блин, не люблю, когда во мне бесполезный энтузиазм просыпается
-
Ну почему же бесполезный! Очень даже полезный!!
Алгоритм примерно ясен.
Пара вопросов:h = (Xmax - Xmin)/(1+3,322*lg(N))
что означает константа 3.322?
σ = sqrt((Cумма(sqr(Xi - Xсреднее)))/N)
sqr - это sqrt?
Таким образом на экран выведем " Mo ± σ " и станет хорошо?
-
Цитата:
"побежала забивать весь свой проданный товар в базу"Товар проданый/купленный за определенную цену в базу вводим. Молодец.
Цитата:
"Уже начал добавлять цены,что знаю,потом добавлю,что знают другие
и ап!"А это еще что за на ...? Ты за цену которую "знаеш" купи/продай сначало вещь, потом будеш это куда то вводить. И не надо что видел ты, или слышал там у нас. А то щас начнут тут у нас все цены вводить которые якобо знают.
-
@Shoki:
Ну почему же бесполезный! Очень даже полезный!!Алгоритм примерно ясен.
Пара вопросов:-
h = (Xmax - Xmin)/(1+3,322*lg(N))
что означает константа 3.322? -
σ = sqrt((Cумма(sqr(Xi - Xсреднее)))/N)
sqr - это sqrt? -
Таким образом на экран выведем " Mo ± σ " и станет хорошо?
-
Хрен знает. Это формула какого-то мужика. Он наверное ее вывел эмпирическим путем. Кроме того, я думаю, это округленный вариант.
-
Нет, это вторая степень, квадрат. То есть корень из суммы квадратов деленой на N
-
Нет. Mo отдельно. И σ отдельно. Можно еще выводить диапазон т.н. "реальных" цен. То есть [Mo - 3σ; Mo + 3σ]. Но, думаю, не стоит. Пусть σ просто висит как мера риска...
Алгоритм расчета, кстати, можно оптимизировать, чтобы не создавать лишние массивы. Но это не мне вас учить
-
-
@"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!
Хентай, хентай! Тьфу! Тайхен, тайхен!
-
Но в достоиства формул всё же следует отнести тот факт, что если не вводить кардинально плохих значений то формулы работают просто класс!
То есть вообще плохие значения вводить можно! И формулы их вполне корректно отбрасывают. Но если ввести конкретно плохое значение - ну супер офигительное, либо супер мелкое зависит от ситуации - тогда только возникают косяки.
-
Ряд цен: 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 подходит для нормального и близких к нормальному распределений (например, бетта-распределение). Цены точно будут распределены нормально для большинства товаров, так что при большой выборке все будет нормально...
-
Тафтология какая-то у меня получилась
-
Хм. А нужны ли какие-либо особые формулы для нормального и близких к нему распределениях цен?
Вульгарное среднее арифметическое там разве не прокатит? -
Сейчас и используется вульгарное среднее арифметическое. Но так как люди у нас в основном ненормальные, они и цены такие же вводят иногда.
А ненормальные цены сильно портят среднее арифметическое.
Именно поэтому я и применил линк "Показать все введённые цены".
Используйте пока его. А мы пока что-нибуть придумаем.Glu! Давай пробовать что-нибуть с ненормальными распределениями.
-
Слушай, отправь данные по паре товаров в приват. Или прям сюда. Только чтобы побольше была выборка. Я на практике как-то лучше соображаю
Пока есть пара вариантов усложнения/упрощения, но хочу провести эмпирическую проверку сам...
-
А может просто надо модерировать базу?
Допустим вещь стоит 1кк, народ может ввести и 10кк и 1 зену, чтоб в нужную ему сторону цена скачнула.
Так надо сделать чтоб после ввода нового значения оно сравнивалось с уже имеющимся и если цена отличается например на порядок, то приходило сообщение модератору, который бы и правил эту ситсему.
-
2KoL: Я! Великий и Ужасный, модерирую сейчас базу руками!
2Glu: Пожалуйста:
1.Vitata Card:
2000000,2000000,1800000,3000000,1,1,1
2.Jellopy:
20,20,20,15,10,15,999999999,999999999 -
Чво с базой, не заходит =(
-
Вроде всё норм.
Всё равно не заходит? -
Так, скоро все опишу, боюсь формула будет слишком сложная, так как она авторская, а алгоритм тяжелый. Попробую на будущей неделе спросить на кафедре статистики, а пока ничего писать не буду, так как не уверен в своей правоте...
-
А там может и на диплом потянет...
"Особенности посторения ненормальных распределений в условиях нестабильной экономической модели и неадекватном поведении участников рынка спонтанно образовавшихся интернет-сообществ."
А я тебе рецензию и акт о внедрении напишу.
-
Всё ок :mrgreen:
Ну прилепите же эту тему наконец!!! (на конец :mrgreen: думаю не стоит)
Иначе апы делать буду
-
Кстати. Возможно цены будут доступны по адресу:
<!-- m --><a class="postlink" href="http://bo.dvo.ru/MOTRPrices/">http://bo.dvo.ru/MOTRPrices/</a><!-- m -->Попробуйте кто-нить и напишите так ли это?