Jak modelować ceny?

15

Zadałem to pytanie na stronie stosu wymiany matematyki i polecono mi tutaj.

Pracuję nad projektem hobby i potrzebuję pomocy w rozwiązaniu następującego problemu.

Trochę kontekstu

Załóżmy, że istnieje kolekcja przedmiotów z opisem funkcji i ceną. Wyobraź sobie listę samochodów i cen. Wszystkie samochody mają listę funkcji, np. Wielkość silnika, kolor, moc konia, model, rok itp. Dla każdej marki coś takiego:

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

Idąc dalej, lista samochodów z cenami jest publikowana z pewnym przedziałem czasowym, co oznacza, że ​​mamy dostęp do historycznych danych cenowych. Nie zawsze może obejmować dokładnie te same samochody.

Problem

Chciałbym zrozumieć, jak modelować ceny każdego samochodu w oparciu o te podstawowe informacje, a przede wszystkim samochody, których nie ma na początkowej liście.

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

W powyższym samochodzie jest prawie taki sam jak jeden na liście, tylko nieco różni się mocą konia i rokiem. Aby to wycenić, czego potrzeba?

To, czego szukam, jest praktyczne i proste, ale chciałbym również usłyszeć o bardziej złożonych podejściach do modelowania czegoś takiego.

Co próbowałem

Oto, z czym do tej pory eksperymentowałem:

1) przy użyciu danych historycznych do wyszukiwania samochodu X. Jeśli nie znaleziono, brak ceny. Jest to oczywiście bardzo ograniczone i można tego używać tylko w połączeniu z pewnym opóźnieniem, aby z czasem zmieniać ceny znanych samochodów.

2) za pomocą schematu ważenia funkcji samochodu wraz z wycenionym samochodem próbnym. Zasadniczo istnieje cena podstawowa, a funkcje po prostu ją zmieniają z pewnym czynnikiem. Na tej podstawie obliczana jest cena każdego samochodu.

Pierwsza okazała się niewystarczająca, a druga nie zawsze była poprawna i mogłem nie mieć najlepszego podejścia do używania odważników. Wydaje się to również trochę obciążać utrzymanie wag, dlatego pomyślałem, że może jest jakiś sposób na wykorzystanie danych historycznych jako statystyk w celu uzyskania wag lub uzyskania czegoś innego. Po prostu nie wiem od czego zacząć.

Inne ważne aspekty

  • zintegrować z jakimś projektem oprogramowania, który mam. Albo przez użycie istniejących bibliotek lub samodzielnego pisania algorytmu.
  • szybkie przeliczanie, gdy pojawiają się nowe dane historyczne.

Wszelkie sugestie, w jaki sposób można rozwiązać taki problem? Wszystkie pomysły są mile widziane.

Z góry dziękuję i czekam na Wasze sugestie!

murrekatt
źródło

Odpowiedzi:

11

„Praktyczne” i „proste” sugerują regresję metodą najmniejszych kwadratów . Jest łatwy w konfiguracji, łatwy do zrobienia z wieloma programami (R, Excel, Mathematica, dowolnym pakietem statystyk), łatwy do interpretacji i może być rozszerzony na wiele sposobów w zależności od tego, jak dokładny chcesz być i jak ciężko jesteś chętny do pracy.

Podejście to jest w zasadzie „schematem ważenia” (2), ale łatwo znajduje wagi, gwarantuje możliwie największą dokładność oraz jest łatwe i szybkie w aktualizacji. Istnieje mnóstwo bibliotek do wykonywania obliczeń metodą najmniejszych kwadratów.

Pomoże to uwzględnić nie tylko wymienione przez ciebie zmienne - typ silnika, moc itp. - ale także wiek samochodu. Ponadto pamiętaj, aby skorygować ceny o inflację.

Whuber
źródło
Sprzedany! Brzmi dokładnie to, czego szukam! Ponieważ jestem zupełnie nowy, mam problem z porównywaniem sugestii, więc zastanawiam się, jak regresja metodą najmniejszych kwadratów porównałaby się z regresją wielokrotną i „wyceną hedoniczną”. Są to sugestie, które dostałem na stronie matematyki, na której początkowo pisałem. Co naprawiam, na przykład stosując regresję najmniejszych kwadratów? Zasadniczo, czy jest coś, o czym muszę wiedzieć, stosując takie podejście?
murrekatt
również dziękuję za tę sugestię. Wygląda bardzo dobrze. Będę musiał przeczytać więcej, aby dowiedzieć się, jak zacząć korzystać z niego.
murrekatt
3
Chcę potwierdzić i wyrazić zgodę na zastrzeżenia opublikowane przez @mpiktas i @dimitrij celov. Analizy cen mogą być - aw wielu przypadkach powinny być - tak złożone jak systemy ekonomiczne, których są częścią. Jednak ze względu na zamierzone zastosowanie (hobby) i wyraźnie zasygnalizowane ograniczenia możliwości PO w zakresie modelowania statystycznego, powinniśmy przywiązywać dużą wagę do prostoty, łatwości użytkowania i interpretowalności. Oczywiście ktoś jeszcze nie znający najmniejszych kwadratów nie wskoczy od razu i nie zacznie tworzyć pełnowymiarowych modeli ekonometrycznych.
whuber
5

Zgadzam się z @whuber, że regresja liniowa jest dobrym rozwiązaniem, ale należy zachować ostrożność przy interpretacji wyników. Problem polega na tym, że w ekonomii cena jest zawsze związana z popytem. Jeśli popyt wzrośnie, ceny wzrosną, jeśli popyt spadnie, ceny spadną. Tak więc cena jest określana przez popyt, aw zamian popyt jest określany przez cenę. Jeśli więc modelujemy cenę jako regresję na podstawie niektórych atrybutów bez popytu, istnieje realne niebezpieczeństwo, że szacunki regresji będą błędne z powodu błędu zmienności pominiętej .

mpiktas
źródło
@mpiktas: dzięki. Rozumiem co masz na myśli. To było coś, o czym myślałem, ale nie wiedziałem dokładnie, jak zadać pytanie lub dodać je do pytania. Jak radzić sobie z tym, co wyjaśniasz? Czy jest to problem odrębny, który podczas pisania należy wziąć pod uwagę przy interpretacji wyników, czy też jest on zintegrowany z innymi podejściami i nie jest częścią regresji metodą najmniejszych kwadratów? Nie jestem pewien, jak się sformułować, ale mam na myśli to, że istnieją podejścia, które uwzględniają to i inne, które tego nie robią? Co oznacza, że ​​dla „nie” musimy interpretować wyniki?
murrekatt
3
@murekatt, jeśli nie masz dodatkowych danych na żądanie, ale potrzebujesz modelu do ceny, radzisz sobie z tym, zachowując szczególną ostrożność. Oznacza to mniejszą uwagę na istotność statystyczną współczynników, ale większą uwagę na wydajność prognozowania. Zasadniczo oznacza to traktowanie regresji jako czarnej skrzynki i wykorzystanie wydajności prognozowania modelu jako miary ważności modelu. Oznacza to stosowanie weryfikacji krzyżowej, dzielenia danych do szkolenia i testowania próbek itp.
mpiktas
@mpiktas: co rozumiesz przez „dodatkowe dane”? Czy mógłbyś podać przykład tego w kontekście samochodu?
murrekatt
1
@murrekatt, spójrz na koniec zaktualizowanej odpowiedzi Dmitrija. Dane dotyczące popytu są ważne, więc jeśli masz ile samochodów sprzedano przy danej cenie, bardzo by to pomogło. Furthemore jeśli masz dane, jak zmiany cen dla danego samochodu ze stałymi atrybutami to również powinno być odzwierciedlone w modelu
mpiktas
1
@murekatt, w zasadzie tak. Myślę, że musisz zacząć od małych i dodać dodatkowe funkcje później. Wstępne wyniki pokażą Ci, w jakim kierunku pójść dalej.
mpiktas,
4

To, czego szukam, jest praktyczne i proste, ale chciałbym również usłyszeć o bardziej złożonych podejściach do modelowania czegoś takiego.

Po jakiejś dyskusji, oto mój pełny pogląd na te rzeczy

Problem

Cel: lepsze zrozumienie sposobu wyceny samochodów

Kontekst: w procesie decyzyjnym ludzie rozwiązują kilka pytań: czy potrzebuję samochodu, jeśli tak, jakie atrybuty wolę najbardziej (w tym cenę, ponieważ będąc racjonalnym, chciałbym mieć samochód o najlepszym stosunku jakości do ceny) , porównaj liczbę atrybutów między różnymi samochodami i wspólnie oceniaj je .

Z pozycji sprzedającego chciałbym ustalić cenę tak wysoką, jak to możliwe, i jak najszybciej sprzedać samochód. Jeśli więc ustawię zbyt wysoką cenę i czekam na miesiące, można uznać, że nie jest ona wymagana na rynku i oznaczona jako 0 w porównaniu do bardzo pożądanych zestawów atrybutów.

Uwagi: prawdziwe oferty, które wiążą atrybuty konkretnego samochodu z ceną ustaloną w ramach procesu przetargowego (w odniesieniu do poprzedniej uwagi ważne jest, aby wiedzieć, ile czasu zajmuje ustalenie oferty).

Plusy: obserwujesz rzeczy, które zostały faktycznie zakupione na rynku, więc nie zgadujesz, czy istnieje osoba o wystarczająco wysokiej cenie rezerwacji, która chce kupić konkretny samochód

Cons:

  1. Twoim założeniem jest, że rynek jest wydajny, co oznacza, że ​​ceny, które obserwujesz, są bliskie równowagi
  2. ignorujesz warianty atrybutów samochodu, które nie zostały zakupione lub zajęło zbyt dużo czasu na ustalenie umowy, co oznacza, że ​​twoje spostrzeżenia są stronnicze , więc faktycznie pracujesz z ukrytymi modelami zmiennych
  3. Obserwując dane przez długi czas, trzeba je spuścić z powietrza, choć uwzględnienie wieku samochodu częściowo to rekompensuje.

Metody rozwiązania

Pierwszy, jak sugeruje whuber, to klasyczny model regresji metodą najmniejszych kwadratów

Plusy:

  1. w rzeczy samej najprostsze rozwiązanie, ponieważ jest to koń roboczy ekonometrii

Cons:

  1. ignoruje to, że obserwujesz rzeczy niezupełnie ( zmienne utajone )
  2. działa tak, jakby regresory były niezależne od siebie, więc podstawowy model ignoruje fakt, że możesz lubić niebieskiego Forda inaczej niż niebieski Mercedes , ale nie jest to suma marginalnego wpływu, który pochodzi od niebieskiego i Forda

W przypadku regresji klasycznej, ponieważ nie jesteś ograniczony stopniami swobody, spróbuj również różnych terminów interakcji.

Dlatego bardziej skomplikowanym rozwiązaniem byłby model Tobit lub Heckman , możesz skonsultować się z AC Cameron i PK Trivedi Microeconometrics: metody i aplikacje, aby uzyskać więcej informacji na temat podstawowych metod.

Plusy:

  1. rozróżniasz fakt, że ludzie mogą nie lubić niektórych zestawów atrybutów lub niektóre zestawy atrybutów mają niewielkie prawdopodobieństwo zakupu od rzeczywistego ustawienia ceny
  2. twoje wyniki nie są stronnicze (lub przynajmniej mniej niż w pierwszym przypadku)
  3. w przypadku Heckmana oddzielasz powody, które motywują do zakupu konkretnego samochodu, od decyzji cenowej o tym, ile chciałbym zapłacić za ten samochód: na pierwszy wpływ mają indywidualne preferencje, na drugie ograniczenie budżetowe

Cons:

  1. Oba modele są bardziej chciwe na dane , tj. Musimy obserwować albo czas między pytaniem a licytacją do wyrównania (jeśli jest dość krótki, wstaw 1, w przeciwnym razie 0), lub obserwować zestawy, które zostały zignorowane przez rynek

I wreszcie, jeśli po prostu interesuje Cię, w jaki sposób cena wpływa na prawdopodobieństwo zakupu, możesz pracować z pewnego rodzaju modelami logit .

Zgodziliśmy się, że analiza łączona nie jest tutaj odpowiednia, ponieważ masz inny kontekst i obserwacje.

Powodzenia.

Dmitrij Celov
źródło
Jak dokładnie zastosowałbyś wielomianowy model logit, którego zmienna zależna jest kategoryczna, do cen, które nie są kategoryczne?
whuber
@Dmitrij Celov: Dzięki za sugestię. Spróbuję odpowiedzieć na twoje pytania. 1) Cena nie jest dostępna, to jest nieznane, na które chciałbym odpowiedzieć, patrząc na podobne samochody. 2) Nie wiem, która zmienna waży najwięcej - to miałem nadzieję uzyskać. 3) Chciałbym, aby na podstawie listy samochodów z funkcjami i cenami móc wycenić każdy samochód z dowolnymi funkcjami.
murrekatt
Kj1j10P(yi=1|yj=0)=11+eβ(XiXj)yiyj .
Dmitrij Celov
@murrekatt: 1) Więc po prostu szukasz najbardziej „cennych” atrybutów? 2) Parametry oszacowane przez Logit są ładnie interpretowane, podobnie jak iloraz szans i ilorazów szans, ale logit wielomianowy ma słabą funkcję znaną jako niezależność od nieistotnych alternatyw 3) Czy możesz być pewien, że podane ceny są istotne, tj. Że samochody zostały faktycznie zakupione? @ whuber: prosta regresja działa tutaj dobrze, jeśli zależna jest cena, ale znowu, jaka cena? opublikowane gdzie? czy jest to aktualna transakcja?
Dmitrij Celov
2
@Dimitrij Cena nie jest zmienną niezależną: jest to zmienna zależna : „Chciałbym zrozumieć, jak modelować ceny każdego samochodu w oparciu o te informacje podstawowe”. Obawiam się, że przy tym nieporozumieniu możesz zabrać @murrekatt bardzo daleko.
whuber
4

Wygląda mi to również na problem regresji liniowej, ale co z K najbliższymi sąsiadami KNN . Możesz wymyślić wzór odległości między każdym samochodem i obliczyć cenę jako średnią między najbliższym K (powiedzmy 3). Formuła odległości może być oparta na euklidesie, jak różnica w cylindrach plus różnica w drzwiach, a także różnica w mocy i tak dalej.

Jeśli wybierzesz regresję liniową, zasugeruję kilka rzeczy:

  • Skaluj wartość dolara do współczesności, aby uwzględnić inflację.
  • Podziel dane na epoki. Założę się, że okaże się, że będziesz potrzebować jednego modelu na przykład przed ww2 i po ww2. To tylko przeczucie.
  • Sprawdź poprawność modelu, aby uniknąć nadmiernego dopasowania. Podziel dane na 5 części. Trenuj na 4 i urn model na 5. części. Zsumuj błędy, spłucz, powtórz dla pozostałych kawałków.

Innym pomysłem jest stworzenie hybrydy między modelami. Użyj regresji i KNN zarówno jako punktów danych i stwórz ostateczną cenę jako średnią ważoną lub coś takiego.

dwatson
źródło
3

Oprócz tego, co zostało powiedziane, i nie bardzo różni się od niektórych już przedstawionych sugestii, możesz rzucić okiem na obszerną literaturę na temat hedonicznych modeli wyceny . Sprowadza się do modelu regresji, który próbuje wyjaśnić cenę dobra złożonego jako funkcję jego atrybutów.

Pozwoliłoby to wycenić samochód, znając jego atrybuty (moc konia, rozmiar, marka itp.), Nawet jeśli w próbie nie ma dokładnie podobnej kombinacji atrybutów. Jest to bardzo popularne podejście do wyceny zasadniczo niereplikowalnych aktywów - takich jak nieruchomości w stanie rzeczywistym. Jeśli szukasz Google dla „modeli hedonicznych”, znajdziesz wiele referencji i przykładów.

F. Tusell
źródło
@FA. Tusell: to był dobry opis. Zastanawiałem się już nad tym razem z innych postów, ale podsumowałem to dobrze dla początkujących takich jak ja.
murrekatt