Springen naar inhoud

Rationaliteit bij het shoppen. SARP


  • Log in om te kunnen reageren

#1

tvooc2

    tvooc2


  • 0 - 25 berichten
  • 3 berichten
  • Gebruiker

Geplaatst op 03 november 2012 - 16:01

Voor het vak Operationeel Onderzoek moeten we een case oplossen die gaat over de rationaliteit bij het shoppen en hoe sterk een dataset aanleunt bij het Strong Axiom of Revealed Preference (SARP).

De case gaat als volgt:


"Suppose that you do your weekly shopping at the local Delhaize. So, every Saturday morning, you buy a set of goods, denoted by a bundle q. The prices of the available goods are represented by a vector p. Since you do your shopping on Saturday 1, Saturday 2, …, up to Saturday T, we can define a dataset S = { (pt, qt)| t=1, 2, …, T}. This dataset reflects your behavior.

The question of interest is whether your shopping reflects a utility function that is rational. To be able to answer such a question, we need to understand, and define what it means to be rational. In the economic scientific literature, rationality is defined using the following concept:

Bundle qt is directly revealed preferred over bundle qs when

8]pt x qt ≥ pt x qs.


Notice that the left-hand side of this inequality equals the amount you paid on Saturday t; apparently, this is not less than the price you would have paid when you would have acquired bundle qs on that Saturday. But since you bought qt , and not qs, we say that qt is directly revealed preferred over bundle qs.

Now, clearly, given a dataset S, we can find out for each pair of bundles whether one bundle is directly revealed preferred to the other one. Moreover, we can find out whether there exists a ‘cycle’ of revealed preferences: bundle qa is directly revealed preferred over bundle qb, which in turn is directly revealed preferred over bundle qc, which in turn is …. which in turn is directly revealed preferred over bundle qa. If such a cycle is present in dataset S, we say that S violates the Strong Axiom of Revealed Preference (SARP).

However, in practice a dataset often violates SARP. It is then interesting to compute how ‘close’ a dataset is to satisfying SARP. We measure this by minimizing the number of observations that have to be deleted from S such that the resulting dataset satisfies SARP.

This is our problem: given a dataset S, what is the minimum number of observations that have to be deleted such that S satisfies SARP."


We moeten dit zien op te lossen met een programma als cplex of lindo. We wilden gebruik maken van methoden die grafen bevatten (een beetje branch and bound achtig) maar ik vroeg me af of we dit ook niet gewoon in een maximalisatieprobleem kunnen gieten. Ik ben niet zeker of we daarvoor gewoon onze data kunnen gebruiken, of we misschien nutsfuncties moeten modelleren met onze data.

Heeft iemand een idee?

Alvast bedankt!

Dit forum kan gratis blijven vanwege banners als deze. Door te registeren zal de onderstaande banner overigens verdwijnen.

#2

Xenion

    Xenion


  • >1k berichten
  • 2606 berichten
  • Moderator

Geplaatst op 03 november 2012 - 16:43

We moeten dit zien op te lossen met een programma als cplex of lindo. We wilden gebruik maken van methoden die grafen bevatten (een beetje branch and bound achtig) maar ik vroeg me af of we dit ook niet gewoon in een maximalisatieprobleem kunnen gieten. Ik ben niet zeker of we daarvoor gewoon onze data kunnen gebruiken, of we misschien nutsfuncties moeten modelleren met onze data.

Je wil het aantal elementen in de dataset maximaal maken onder voorwaarde dat die SARP geldt. Aangezien ik zo direct niet zie hoe dat analytisch uit te drukken is, denk ik dat het niet interessant is om het als maximalisatie probleem te bekijken.

Schrijf anders gewoon een functie die SARP controleert op een bepaalde dataset en dan zoek je breadth first naar de grootste dataset waarop SARP geldig is (telkens 1 verwijderen en SARP controleren).

#3

tvooc2

    tvooc2


  • 0 - 25 berichten
  • 3 berichten
  • Gebruiker

Geplaatst op 03 november 2012 - 17:16

De dataset bevat zo'n 52 observaties. Het lijkt me dus net iets teveel werk om het te proberen door 1 te schrappen. We hadden er al aan gedacht om de observaties als een soort graven te zien en deze in een matrix om te vormen, maar wat we er daarna exact mee moeten doen, is nog wat onduidelijk

#4

Xenion

    Xenion


  • >1k berichten
  • 2606 berichten
  • Moderator

Geplaatst op 03 november 2012 - 18:11

Ik stel ook niet voor om het met de hand te doen.

Breadth-first search werkt volgens een boom. Aan de root heb je de volledige dataset (52 observaties). Als kinderen kies je alle 52 datasets die je kan maken door 1 kind te verwijderen en je controleert of 1 van die oplossingen voldoet. Indien ja, dan heb je de oplossing. Indien niet, ga verder in de boom en bepaal van elk kind de kinderen (datasets van 51 observaties) en controleer die, etc.

Dat is nogmaal gezien erg simpel geïmplementeerd. In dit geval zal dit algoritme steeds de beste oplossing vinden.

#5

tvooc2

    tvooc2


  • 0 - 25 berichten
  • 3 berichten
  • Gebruiker

Geplaatst op 03 november 2012 - 18:27

Dat is inderdaad een zeer goede techniek. We zullen het zeker verder onderzoeken.

Bedankt!





0 gebruiker(s) lezen dit onderwerp

0 leden, 0 bezoekers, 0 anonieme gebruikers

Ook adverteren op onze website? Lees hier meer!

Gesponsorde vacatures

Vacatures