Как моделировать цены?

15

Я задал этот вопрос на сайте обмена стеками matemathics, и его рекомендовали задать здесь.

Я работаю над хобби-проектом и мне нужна помощь в решении следующей проблемы.

Немного контекста

Допустим, есть коллекция предметов с описанием возможностей и ценой. Представьте себе список автомобилей и цены. У всех автомобилей есть список характеристик, например, размер двигателя, цвет, мощность в лошадиных силах, модель, год и т. Д. Для каждой марки, что-то вроде этого:

Ford:
V8, green, manual, 200hp, 2007, $200
V6, red, automatic, 140hp, 2010, $300
V6, blue, manual, 140hp, 2005, $100
...

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

проблема

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

Ford, v6, red, automatic, 130hp, 2009

Для вышеупомянутого автомобиля, он почти такой же, как в списке, только немного отличается в лошадиных силах и году. Чтобы оценить это, что нужно?

Я ищу что-то практичное и простое, но я также хотел бы услышать о более сложных подходах к моделированию чего-то подобного.

Что я пробовал

Вот что я экспериментировал до сих пор:

1) Использование исторических данных для поиска автомобиля X. Если не найдено, цены нет. Это, конечно, очень ограничено, и его можно использовать только в сочетании с некоторым затуханием времени, чтобы изменить цены на известные автомобили с течением времени.

2) использование весовой схемы автомобиля вместе с ценовой моделью автомобиля. В основном, что есть базовая цена и характеристики просто изменить это с некоторым фактором. На основании этого определяется цена любого автомобиля.

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

Другие важные аспекты

  • интегрировать в какой-то программный проект, который у меня есть. Либо с помощью существующих библиотек, либо самостоятельно пишу алгоритм.
  • быстрый пересчет при поступлении новых исторических данных.

Любые предложения, как можно решить эту проблему? Все идеи приветствуются.

Большое спасибо заранее и с нетерпением ждем ваших предложений!

murrekatt
источник

Ответы:

11

«Практические» и «простые» предполагают регрессию методом наименьших квадратов . Это легко настроить, легко сделать с большим количеством программного обеспечения (R, Excel, Mathematica, любой пакет статистики), легко интерпретировать, и может быть расширено многими способами в зависимости от того, насколько точным вы хотите быть и насколько усердным желающий работать.

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

Это поможет включить не только перечисленные вами переменные - тип двигателя, мощность и т. Д., - но также возраст автомобиля. Кроме того, не забудьте скорректировать цены на инфляцию.

Whuber
источник
Продано! Это звучит именно то, что я ищу! Поскольку я новичок в этом, у меня возникают проблемы при сравнении предложений, поэтому мне интересно, как бы регрессия наименьших квадратов сравнивалась с множественной регрессией и «гедонистическим ценообразованием». Это предложения, которые я получил на сайте по математике, где я изначально писал. Что я исправляю при использовании регрессии наименьших квадратов, например? В принципе, есть ли что-то, что мне нужно знать при использовании этого подхода?
Murrekatt
Также спасибо за это предложение. Кажется, очень хорошо. Мне придется больше читать, чтобы понять, как я могу начать, чтобы увидеть, как его использовать.
Murrekatt
3
Я хочу подтвердить и выразить свое согласие с предостережениями, опубликованными @mpiktas и @dimitrij celov. Анализ цен может быть - и во многих случаях должны быть - столь же сложным , как экономические системы которых они являются. Однако из-за предполагаемого применения (хобби) и явно обозначенных ограничений в возможностях OP для статистического моделирования мы должны придавать большое значение простоте, простоте использования и интерпретации. Очевидно, что тот, кто еще не знаком с методом наименьших квадратов, не собирается прыгать и начинать создавать полномасштабные эконометрические модели.
whuber
5

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

mpiktas
источник
@mpiktas: спасибо. Я понимаю что ты имеешь в виду. Я думал об этом, но не знал точно, как задать или добавить к вопросу. Как справиться с тем, что вы объясняете? Это отдельная проблема, которую вы должны учитывать при интерпретации результатов, или это интегрировано в некоторые другие подходы, а не в регрессию наименьших квадратов? Не уверен, как сформулировать себя, но я имею в виду, что есть подходы, которые принимают это во внимание, а другие нет. Что означает, что для «не» мы должны интерпретировать результаты?
Murrekatt
3
@murekatt, если у вас нет дополнительных данных по запросу, но вам нужна модель по цене, вы решаете эту проблему, проявляя особую осторожность. Это означает меньшее внимание к статистической значимости коэффициентов, но больше внимания к прогнозированию производительности. По сути, это означает, что регрессия рассматривается как «черный ящик» и используется прогнозирование производительности модели как мера достоверности модели. Это означает использование перекрестной проверки, разделения данных для обучения и тестирования образцов и т. Д.
mpiktas
@mpiktas: что вы имеете в виду под «дополнительными данными»? Не могли бы вы привести пример этого в контексте автомобиля?
Murrekatt
1
@murrekatt, посмотрите в конце обновленного ответа Дмитрия. Данные о спросе важны, поэтому, если у вас есть количество проданных автомобилей по заданной цене, это очень поможет. Более того, если у вас есть данные о том, как изменяется цена для данного автомобиля с фиксированными атрибутами, это также должно быть отражено в вашей модели
mpiktas
1
@murekatt, в принципе да. Я думаю, что вам нужно начать с малого и добавить дополнительные функции позже. Первоначальные результаты скажут вам, в каком направлении двигаться дальше.
mpiktas
4

Я ищу что-то практичное и простое, но я также хотел бы услышать о более сложных подходах к моделированию чего-то подобного.

После некоторого обсуждения, вот мое полное представление о вещах

Проблема

Цель: понять, как лучше оценить автомобили

Контекст: в процессе принятия решения люди решают несколько вопросов: нужна ли мне машина, если я делаю, какие качества я предпочитаю (в том числе цену, потому что, будучи рациональным, я хотел бы иметь машину с лучшим соотношением цена / качество) , сравните количество атрибутов между разными автомобилями и выбирайте, оценивая их совместно .

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

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

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

Минусы:

  1. вы предполагаете, что рынок эффективен, то есть цены, которые вы наблюдаете, близки к равновесию
  2. вы игнорируете варианты автомобильных атрибутов, которые не были приобретены или заняли слишком много времени, чтобы заключить сделку, что означает, что ваши взгляды предвзяты , поэтому вы действительно работаете с моделями со скрытыми переменными
  3. Наблюдая за данными в течение длительного времени, вам необходимо их спустить, хотя включение возраста автомобиля частично компенсирует это.

Методы решения

Первая, как предлагает Уубер, - это классическая модель регрессии наименьших квадратов.

Плюсы:

  1. на самом деле самое простое решение, так как это работа эконометрики

Минусы:

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

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

Поэтому более сложным решением будет либо модель Тобита, либо модель Хекмана , вы можете обратиться к AC Cameron и PK Trivedi Microeconometrics: методы и приложения для получения более подробной информации по основным методам.

Плюсы:

  1. Вы отделяете тот факт, что людям могут вообще не нравиться некоторые наборы атрибутов, или у некоторого набора атрибутов есть небольшая вероятность быть купленным у фактической установки цены
  2. ваши результаты не смещены (или, по крайней мере, меньше, чем в первом случае)
  3. в случае с Хекманом вы отделяете причины, побуждающие купить конкретный автомобиль, к решению о цене того, сколько я хотел бы заплатить за этот автомобиль: первое зависит от индивидуальных предпочтений, второе - от бюджетных ограничений.

Минусы:

  1. Обе модели являются более жадными для данных , то есть нам нужно наблюдать либо промежуток времени между запросом и предложением для выравнивания (если это довольно короткая позиция 1, иначе 0), либо наблюдать наборы, которые были проигнорированы рынком

И, наконец, если вам просто интересно, как цена влияет на вероятность покупки, вы можете работать с какими-то моделями логита .

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

Удачи.

Дмитрий Челов
источник
Как именно вы примените многочленную модель логита, чья зависимая переменная является категориальной, к ценам, которые не являются категориальными?
whuber
@Dmitrij Celov: Спасибо за ваше предложение. Я постараюсь ответить на ваши вопросы. 1) Нет цены, это неизвестно, на что я хотел бы ответить, глядя на похожие автомобили. 2) Я не знаю, какая переменная весит больше всего - это я надеялся получить. 3) Я хотел бы, чтобы на основе списка автомобилей с характеристиками и ценами можно было оценить любую машину с любыми функциями.
Murrekatt
КJ-1J10п(Yязнак равно1|YJзнак равно0)знак равно11+е-β'(Икся-ИксJ)yiyJ
@murrekatt: 1) Так вы просто ищете наиболее «ценные» атрибуты? 2) Оценочные параметры Logit хорошо интерпретируются как отношения шансов и шансов, но у полиномиального логита есть слабая особенность, известная как независимость от нерелевантных альтернатив. 3) Можете ли вы быть уверены, что указанные цены актуальны, то есть автомобили фактически были приобретены? @whuber: простая регрессия работает здесь хорошо, если зависимой является цена, но опять же, какая цена? опубликовано где? или это актуальная сделка?
Дмитрий Челов
2
@Dimitrij Цена не является независимой переменной: это зависимая переменная: «Я хотел бы понять, как моделировать цены на любой автомобиль на основе этой базовой информации». Я боюсь, что из-за этого заблуждения вы, возможно, очень далеко заберете @murrekatt.
whuber
4

Это похоже на проблему линейной регрессии мне тоже, но как насчет K ближайших соседей KNN . Вы можете придумать формулу расстояния между каждым автомобилем и вычислить цену как среднее между ближайшим K (скажем, 3). Формула расстояния может быть основана на евклидовой системе, например, разница в цилиндрах, разница в дверях, разница в лошадиных силах и так далее.

Если вы идете с линейной регрессией, я бы предложил пару вещей:

  • Масштаб доллара до современного дня, чтобы учесть инфляцию.
  • Разделите ваши данные на эпохи. Держу пари, вы обнаружите, что вам понадобится одна модель для предварительного ww2 и, например, для ww2. Это всего лишь догадка.
  • Перекрестная проверка вашей модели, чтобы избежать перебора. Разделите ваши данные на 5 частей. Тренируйся на 4 и урну модель на 5-й части. Суммируйте ошибки, промойте, повторите для других кусков.

Другая идея - сделать гибрид между моделями. Используйте regresion и KNN как точки данных и создайте окончательную цену как средневзвешенное значение или что-то в этом роде.

dwatson
источник
3

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

Это позволит вам оценивать автомобиль, зная его атрибуты (мощность, размер, марка и т. Д.), Даже если в вашем образце отсутствует точно такое же сочетание атрибутов. Это очень популярный подход для оценки активов, которые практически не тиражируются - как недвижимость в реальном состоянии. Если вы Google для "гедонистических моделей", вы найдете много ссылок и примеров.

Ф. Туселл
источник
@F. Tusell: это было хорошее описание. Я уже озадачил это вместе с другими постами, но это суммировало вещи для начинающего, как я.
Murrekatt