Modele krzywych popytu — model wykładniczy

Kiedy wprowadzasz na rynek nowy produkt jak swoje szkolenie, aplikację mobilną czy książkę i nie wiesz jak ją wycenić może się okazać, że potrzebujesz bardziej kompletnego modelu krzywej popytu niż liniowy.

Decyzja o zakupie jest podejmowana indywidualnie przez każdego klienta na podstawie ceny oraz odczuwanej potrzeby posiadania danego dobra. Jednak jak wiemy dystrybucja przychodów nie jest liniowa. Więc założenie, że ilość osób które stać na dane dobro będzie spadała proporcjonalnie do wzrostu ceny można uznać co najwyżej za dobre lokalne przybliżenie. Nas jednak interesuje model skuteczny w szerszym zakresie cenowym, który odpowiadał by na pytania co stanie się jeśli zaczniemy obniżać cenę w okolice zera oraz podnosić ją zdecydowanie powyżej zasięgu większości potencjalnych nabywców.

Ten artykuł przedstawi wykładniczy model popytu porównując go z omówionym poprzednio modelem linowym.


Dla przypomnienia prezentujemy wzory zależność sprzedaży `s` od ceny `p`:

  • W modelu liniowym [s =-|α|p+β]
  • W modelu wykładniczym [s =αe^-βp]

Intuicyjne jest, że przeskalowanie wielkości sprzedaży w całym zakresie przez dany czynnik, (na przykład poprzez zwiększenie ekspozycji produktu w równym stopniu dla każdej z grup konsumentów) nie wpłynie na wartość ceny maksymalizującej zysk, a jedynie na obniżenie błędu pomiarowego, a więc szybsze osiągnięcie optymalnej ceny przez algorytm.

Widać to również we wzorach. Jeśli w równaniu dla modelu liniowego wyciągnęli byśmy |α| przed nawias otrzymując s =|α|(β/|α| - p) okazało by się, że cena maksymalizująca zysk `p_g` faktycznie nie zależy bezpośrednio od czynnika skalującego |α| a jedynie od stosunku β/|α|. Optymalna cena w modelu liniowym była średnią z ceny produkcji dobra oraz ceny przy której popyt się zerował.

  • W modelu liniowym [p_g = 1/2 ( p_0 + β/|α| )]

Dla modelu wykładniczego otrzymamy ją równie prosto przyrównując do zera pochodną zysku po cenie. 0 = d( (αe^-βp) * (p - p_0)) / dp.

  • W modelu wykładniczym [p_g = 1/β + p_0]

Zobaczmy jak prezentuje się to na wykresach.


Model wykładniczy

Sprzedaż, zysk oraz jego pochodna dla wykładniczego modelu popytu.

Podobnie jak w artykule o modelu liniowym na wykresie prezentujemy zaznaczoną na czerwono cenę produkcji. Niebieska linia przedstawia zależność ilości sprzedanych sztuk od ceny, pomarańczowa zysk, a zielona jego pochodną. Mimo, że model teoretycznie nie wskazuje maksymalnej ceny powyżej której nic się nie sprzeda, obroty przy wyższych cenach spadają na tyle, że nie opłaca się podnosić ceny w nieskończoność. Podobnie jak wcześniej maksimum zysku jest tam gdzie jego pochodna przechodzi przez zero - w tym wypadku dla ceny 0.4.

Istotną różnicą jakościową jest to, że funkcja zysku nie jest symetryczna względem swojego maksimum. Jej zmienność jest znacznie wyższa dla niższych cen niż dla wysokich. Co więcej wysokie ceny, a więc niski obrót oznaczają wysokie błędy pomiarowe czyli długi czas wykonywania pomiarów, co można rozumieć jako wysoki koszt alternatywny wychylania ceny z pozycji optymalnej.

Zobaczmy jaki wpływ ma kierunek z którego zbiegamy do ceny optymalnej na szybkość jej osiągnięcia.

Czas zbiegania do optymalnej ceny ± margines błędu ϵ

Ponieważ trafienie idealnie w cenę optymalną jest niezbyt realistycznym wymaganiem wykres prezentuje porównanie czasów dochodzenia do ceny optymalnej plus minus margines błędu `ϵ` dla kilku wartości tego marginesu. Na osi pionowej jest więc czas jaki należy czekać aż zostanie osiągnięta cena optymalna, a na poziomej cena od której startujemy. Szybkość zbiegania została przewidziana na podstawie założenia, że jest ono tym efektywniejsze im wyższa jest sprzedaż i im wyższa jest zmienność zysku. Sprzedaż została uwzględniona z wykładnikiem 1/2 ze względu na charakterystykę błędów pomiarowych generowanych przez dobrze modelujący ją rozkład Poissona, a zmienność zysku jako jego pochodna po cenie. Odwrotność ich iloczynu całkowana po cenie dała czasy uzyskiwania ceny optymalnej w zależności od punktu startowego.

Podstawowym wnioskiem z wykresu jest że dla dużych dopuszczalnych błędów pomiarowych zwykle zbieganie krótko i zależność od szybkości zbiegania od dopuszczalnego błędu jest znacząca szczególnie w okolicach ceny optymalnej. Jednak jeśli znacząco przeszacujemy cenę to czas jej dochodzenia do optimum rośnie coraz szybciej nawet jeśli dopuszczamy wysoki margines błędu. Jest to wynik jednoczesnego powiększania błędów pomiaru sprzedaży jeśli jest ona niska oraz niewielkich różnic w wynikach sprzedażowych dla różnych punktów pomiarowych w tej okolicy.

W tym momencie warto zwrócić uwagę, że o ile z błędami pomiarowymi nic nie zrobimy, to skalą cen przy których wykonujemy pomiary możemy manipulować. Chwilę wcześniej wspomnieliśmy, że zmienność zysku jest przez nas wliczana jako jego pochodna po cenie, ale jeśli przeskalowali byśmy ceny tak aby zamiast na nie bezpośrednio patrzeć na ich logarytm, to jednocześnie zachowując jednakowe zmiany tego logarytmu posuwali byśmy się po linii cen tym szybciej im wyższe by one były. Niestety aby efektywnie zastosować tą technikę musieli byśmy znać czynnik `β` ponieważ tylko wtedy będziemy mogli skutecznie niwelować spadek sprzedaży zwiększaniem odstępów na naszej skali cen. Oczywiście cały problem optymalizacji ceny opiera się o założenie, że nie znamy czynnika `β`. Innym sposobem było by skalowanie ceny za pomocą funkcji o bardziej dynamicznej charakterystyce niż wykładnicza. Zapewniło by nam to górny limit dla czasu zbieżności przy nieracjonalnie wysokich cenach, ale jego ograniczoność wcale nie zapewnia ekonomicznej opłacalności startowania od skrajnie wysokich cen.

Można to podsumować następująco. Jeśli cena już jest optymalna nie opłaca się przeprowadzać optymalizacji za pomocą wychylania jej i sprawdzania co się stanie, bo każde takie wychylenie stanowi koszt alternatywny względem maksymalnych możliwych do osiągnięcia zysków. Jeśli cena jest zbyt niska to model wykładniczy przewiduje, że bezproblemowo jesteśmy w stanie znaleźć cenę optymalną. Jeśli cena jest za wysoka też nie ma się o co martwić, chyba że za cenę początkową przyjmiemy cenę tak wygórowaną, że trudno będzie określić szybkość jego sprzedaży z powodu zbyt małej liczby dokonywanych zakupów. Istnieją metody przyśpieszania zbieżności w tych zakresach, ale najbardziej rozsądnym rozwiązaniem jest zacząć optymalizację możliwie blisko intuicyjnej rozsądnej ceny za dany produkt.


Przykładowa optymalizacja.

Podobnie jak dla modelu liniowego sprawdzimy jak w może wyglądać konkretna optymalizacja cen. Jest to tylko przykład, dzięki któremu obrazujemy pewne cechy optymalizacji ceny. W praktyce z powodu losowości każda optymalizacja (szczególnie na tak małej próbce danych) wygląda inaczej. Tym razem będziemy działać na znacznie mniejszej liczbie sprzedaży. W końcu symulujemy produkt wprowadzany dopiero na rynek. Poza tym mniejsza liczba pomiarów to ciekawsze wyzwanie. Poniższa tabela prezentuje jak algorytm zbliżał się od początkowej ceny 0.6 w kierunku ceny optymalnej 0.4.

Prezentacja kolejno typowanych cen przez algorytm w drodze od ceny zbyt wysokiej do optymalnej.

Widzimy w niej, że w pierwszym kroku pomiar sprzedaży dał zero sztuk. Pierwszy krok mimo to był losowy, bo zerowa sprzedaż mogła równie dobrze oznaczać zbyt krótki czas co zbyt wysoką cenę. Nagle mimo odrobinę wyższej ceny sprzedano dwie sztuki. Z logicznego punktu widzenia było by to niewytłumaczalne, ale tak po prostu działa statystyka. Nie mogąc dopasować tych wyników do modelu algorytm zagrał bardzo ciekawie obniżając cenę delikatnie poniżej zerowej marży. Oznaczało to pewną stratę, ale z drugiej strony rodziło nadzieję na zebranie danych które znacznie przyśpieszyły by to dotychczasowe błądzenie po omacku. Tak się stało sprzedaż trzech sztuk po cenie poniżej kosztów produkcji dostarczyła na tyle cennych informacji, że poniesiona strata zwróciła się po czterech kolejnych rundach optymalizacji i wprowadziła proces zbiegania ceny do optimum na właściwe tory.

Ceny sugerowane przez algorytm

Na wykresach porównujących punkty pomiarowe z dopasowanym modelem uderzająca jest wysokość błędów pomiarowych. Najwyższe zyski jakie zanotowano odpowiadały sprzedaży w najwyższej mierzonej cenie. Mimo to algorytm nie dał się zwieść i skutecznie oddalił się od zbyt wysokich cen zdając sobie sprawę, że powtórzenie tego sukcesu jest statystycznie mało prawdopodobne. Widać też jak duże znaczenie dla jakości dopasowania miało drastyczne obniżenie ceny z trzeciego kroku, ten mogło by się wydawać nieracjonalny ruch był w istocie inwestycją w szybsze pozyskanie cennej wiedzy o krzywej popytu. Warto zwrócić uwagę, że kiedy wiedza algorytmu się podniosła zaczął on bardziej cenić zysk niż informacje i działał bardziej zachowawczo.

Zmienność ceny w czasie w trakcie optymalizacji ceny.

W tabelce były już prezentowane ceny w kolejnych rundach optymalizacji. Teraz mamy okazję zobaczyć je na wykresie. Widać jak startują z wartości 0.6 i z biegiem czasu schodzą coraz bliżej optymalnego poziomu 0.4. Ponieważ cena w ostatnim kroku wyniosła 0.43 oznacza to obniżenie marży liczonej od poziomu 0.2 o 43%.

Zmienność zysku w czasie w trakcie optymalizacji ceny.

Równolegle do obniżania ceny wzrasta zysk. Zbieżność nie jest tak łatwo dostrzegalna jak na poprzednim wykresie z powodu krótkiego czasu pomiarowego i częstego spotykania zerowej sprzedaży. Mimo to oczekiwany zysk w jednostce czasu wzrósł z 0.020 do 0.026 czyli aż o 30%. Jest to wynikiem wzrostu sprzedaży o 126% przy końcowej cenie względem ceny początkowej.


Statystyczna optymalizacja.

Wnikliwy czytelnik mógł by przeprowadzić następujące rozumowanie: “Skoro błędy pomiarowe mają aż tak duże znaczenie to czy ten przykład nie jest tendencyjny? Mógł by przecież prezentować jedną z dziesiątek wykonanych symulacji, która po prostu się udała dzięki szczęśliwym losowaniom.”. I trzeba przyznać, że to bardzo dobre pytanie. Dlatego mamy nadzieję, że tym ciekawsze wyda Ci się przedstawienie statystyki z przeprowadzenia kilku tysięcy takich optymalizacji. Nie sposób omówić ich tak dokładnie jak tej jednej ale zobaczymy jak wygląda dystrybucja wyniku końcowego czyli ceny w ostatniej - dwunastej turze.

Dystrybucja ceny końcowej oraz zysku końcowego.

Pierwszy wykres prezentuje dystrybucję cen końcowych. Okazuje się, że faktycznie dominanta dla ceny końcowej jest bliska 0.4, niewielka część zostaje przy cenie 0.6, ale zdarzają się też przypadki kiedy na skutek mało prawdopodobnych ale statystycznie możliwych losowych zachowań klientów algorytm zabłądzi i poprowadzi ceny nawet dalej od optimum niż na początku optymalizacji.

Na pytanie jak to wpływa na zysk odpowiada drugi wykres. Przypominamy, że początkowy zysk dla ceny 0.6 wynosił 0.0199. Uzyskany średni zysk po optymalizacji to 0.0230, a jego mediana wynosi 0.0252. Oznacza to, że co drugi przypadek optymalizacji zakończy się podniesieniem zysku o 26% co faktycznie jest przypadkiem dość bliskim do tego omówionego jako przykładowi.

Istnieją przypadki gdzie zastosowanie algorytmu optymalizującego ceny przyniosło straty. Dotyczy to 20% z przeprowadzonych symulacji. Jest to mimo wszystko znakomity wynik biorąc pod uwagę fakt, że większość z nich opiera się o dane ze sprzedaży kilku do kilkunastu sztuk produktu na całą symulację. Rozsądnym założeniem jest przeprowadzanie procesu optymalizacji ceny przy sprzedaży rzędu kilkudziesięciu sztuk na jedną rundę, wtedy ryzyko zmylenia algorytmu przez losowość wyników znacznie spada. W tym artykule pokazaliśmy, że nawet tak małe ilości danych dzięki bardzo precyzyjnemu wybieraniu cen do kolejnych pomiarów pozwalają uzyskać znacznie polepszenie sprzedaży.

W kolejnym wpisie zmierzymy się z jeszcze trudniejszym do badania modelem wymiernym, który rzuci nam wyzwania natury numerycznej oraz otworzy drogę do rozważenia nowych jakościowo zjawisk względem modelu liniowego i wykładniczego.