- Mitglied seit
- 21.08.2010
- Beiträge
- 8.008
- Reaktionen
- 1.107
Hintergrund: Eine Person kauft ein Gut (bspw. Gummibärchen) und konsumiert es in der Zeit nach dem Kauf. Da die Umstände des Alltags nicht vorhersehbar sind, kann es sein dass die Gummibärchen nach ein paar Stunden schon weg sind, oder dass sie einen Monat lang halten. Typischerweise (== im Mittel) hält die Packung einen Monat (== 30 Tage, Kauffrequenz freq=30).
Die Zeit wird in (diskreten) Tagen gemessen. Nach dem Ereignis "Gummibärchen wurden gekauft" in t=t(x) wird ein erneuter Kauf bei t(x+30) erwartet. Durch besonderen Streß, Besuch oder andere exogenen Einflüsse kann es sein, dass die Gummibärchen schneller weg sind.
Wie würdet ihr das modellieren?
Vorschlag 1: (simpel)
Kaufereignis alle 'freq' Tage +/- eine Anzahl Tage die ich aus der Normalverteilung (oder einer beliebigen anderen univariaten Verteilung) ziehe und normal runde.
Vorschlag 2: (eigentlich unnötig komplex, aber fürs weitere Vorgehen sinnvoll)
Kaufereignis dann, wenn der folgende Semi-Markov-Prozess "wahr" zurückgibt:
'error' ist eine iid-verteilte zufallsvariable mit fester varianz (z.B. 1). Ohne es durchprobiert zu haben, müsste sich bei einem normalverteilten 'error' mit Varianz 1 ergeben, dass ~2/3 der Kaufereignisse genau am erwarteten Termin +/- ein Tag (symmetrisch über/unter dem Erwartungswert) stattfinden, und jeweils knapp ein Sechstel mit +/- 2 Tagen (ebenfalls symmetrisch) und ein geringer Rest von 2-3% weicht höher ab. Der Ausdruck wird zu jedem neuen Tag evaluiert, wodurch sich vermutlich eine gewisse Schiefe ergibt, weil der Prozess häufiger die Chance bekommt frühzeitig abzubrechen, als verspätet. D.h. die empirisch erzielte Kauffrequenz dürfte im Mittel signifikant unter der durch "freq" eingestellten liegen.
Das Schöne an dieser Variante ist aber, dass sich so realisieren lässt, dass immer bei Auftreten eines Kaufereignisses neu angefangen wird zu zählen.
Außerdem kann in einem weiteren Schritt Folgendes realisiert werden:
Man nehme an, dass die gekauften Güter unterschiedliche Qualitätsstufen besitzen, welche vom Kaufpreis adäquat reflektiert werden. Abhängig vom Einkommen des Konsumenten wird bei höherem Einkommen tendenziell höhere Qualität gekauft. Güter von höherer Qualität haben annahmegemäß eine höhere Haltbarkeit, sprich sie werden langsamer konsumiert. Ein Beispiel wäre ein teurer Neuwagen gegenüber dem billigen Gebrauchten. Im Mittel erwartet man, dass der teure "Qualitätsneuwagen" eine längere Lebensdauer vor sich hat.
In der ersten Variante ist dies schwer zu modellieren, wohingegen ich im zweiten Ansatz folgendes machen könnte:
Ich ersetze den Kern der exp()-funktion
durch
dadurch würde nach dem Kauf geringerwertiger Güter der SMP tendenziell schneller ein "wahr" zurückliefern, da der Fehlerterm 'error' eine über alle Individuen konstante Varianz ausweist.
Wenn ich jetzt noch den ursprünglichen Kern(1) der Funktion gegen einen nach dem Muster von Kern(2) ersetze, und hierbei für 'price' einfach eine Konstante einsetze, habe ich idealerweise schön vergleichbare Werte für "Kauffrequenz ist Erwartungswert plusminus Scatter" und "Kauffrequenz kovariiert (negativ) mit der Haltbarkeit des Items".
Da ohnehin nur positive Werte des Fehlerterms interessant sind, könnte man da direkt eine Chi²-Verteilung annehmen und diese entsprechend verschieben damit der Erwartungswert wieder 0 ist.
Was haltet ihr davon?
Extrafrage für Interessierte: Wie sollte ich die vermutliche Verzerrung der Verteilung vermeiden? Den Ausdruck nur einmal evaluieren pro Kaufereignis ... wäre zumindest mein erster Gedanke.
Weitere erläuternde Informationen: In meinem Datensatz ist die Zeiteinheit eine Woche, es sind 1000 synthetische Individuen im Datensatz, es wird (geplant) über 40 Jahre simuliert. Nur ein Gut, verschiedene Kauffrequenzen. Dadurch sind dann effektiv 24000 Individuen pro Modellierungsansatz im Datensatz. Die Ansätze sind: Fixe Kauffrequenz, Kauffrequenz gemäß Vorschlag 1, Kauffrequenz gemäß Vorschlag 2, zusätzlich kommen noch verschiedene Modellierungen von Saisonabhängigkeit im Konsum mit rein. Insgesamt sind es wohl so 8-16 mal 1000 synth. Individuen mal 24 Kauffrequenzen (1-24 Wochen) mal 52 Wochen mal 40 Jahre Datenpunkte im zu erstellenden synthetischen Datensatz.
Die Zeit wird in (diskreten) Tagen gemessen. Nach dem Ereignis "Gummibärchen wurden gekauft" in t=t(x) wird ein erneuter Kauf bei t(x+30) erwartet. Durch besonderen Streß, Besuch oder andere exogenen Einflüsse kann es sein, dass die Gummibärchen schneller weg sind.
Wie würdet ihr das modellieren?
Vorschlag 1: (simpel)
Kaufereignis alle 'freq' Tage +/- eine Anzahl Tage die ich aus der Normalverteilung (oder einer beliebigen anderen univariaten Verteilung) ziehe und normal runde.
Vorschlag 2: (eigentlich unnötig komplex, aber fürs weitere Vorgehen sinnvoll)
Kaufereignis dann, wenn der folgende Semi-Markov-Prozess "wahr" zurückgibt:
Code:
if(1-exp((t+error)/(freq)-1)<=0)
Das Schöne an dieser Variante ist aber, dass sich so realisieren lässt, dass immer bei Auftreten eines Kaufereignisses neu angefangen wird zu zählen.
Außerdem kann in einem weiteren Schritt Folgendes realisiert werden:
Man nehme an, dass die gekauften Güter unterschiedliche Qualitätsstufen besitzen, welche vom Kaufpreis adäquat reflektiert werden. Abhängig vom Einkommen des Konsumenten wird bei höherem Einkommen tendenziell höhere Qualität gekauft. Güter von höherer Qualität haben annahmegemäß eine höhere Haltbarkeit, sprich sie werden langsamer konsumiert. Ein Beispiel wäre ein teurer Neuwagen gegenüber dem billigen Gebrauchten. Im Mittel erwartet man, dass der teure "Qualitätsneuwagen" eine längere Lebensdauer vor sich hat.
In der ersten Variante ist dies schwer zu modellieren, wohingegen ich im zweiten Ansatz folgendes machen könnte:
Ich ersetze den Kern der exp()-funktion
Code:
Kern(1): (t+error)/(freq)-1
Code:
Kern(2): (price/(1+discountfactor)^(t-t_lastbuy))-error
dadurch würde nach dem Kauf geringerwertiger Güter der SMP tendenziell schneller ein "wahr" zurückliefern, da der Fehlerterm 'error' eine über alle Individuen konstante Varianz ausweist.
Wenn ich jetzt noch den ursprünglichen Kern(1) der Funktion gegen einen nach dem Muster von Kern(2) ersetze, und hierbei für 'price' einfach eine Konstante einsetze, habe ich idealerweise schön vergleichbare Werte für "Kauffrequenz ist Erwartungswert plusminus Scatter" und "Kauffrequenz kovariiert (negativ) mit der Haltbarkeit des Items".
Da ohnehin nur positive Werte des Fehlerterms interessant sind, könnte man da direkt eine Chi²-Verteilung annehmen und diese entsprechend verschieben damit der Erwartungswert wieder 0 ist.
Was haltet ihr davon?
Extrafrage für Interessierte: Wie sollte ich die vermutliche Verzerrung der Verteilung vermeiden? Den Ausdruck nur einmal evaluieren pro Kaufereignis ... wäre zumindest mein erster Gedanke.
Weitere erläuternde Informationen: In meinem Datensatz ist die Zeiteinheit eine Woche, es sind 1000 synthetische Individuen im Datensatz, es wird (geplant) über 40 Jahre simuliert. Nur ein Gut, verschiedene Kauffrequenzen. Dadurch sind dann effektiv 24000 Individuen pro Modellierungsansatz im Datensatz. Die Ansätze sind: Fixe Kauffrequenz, Kauffrequenz gemäß Vorschlag 1, Kauffrequenz gemäß Vorschlag 2, zusätzlich kommen noch verschiedene Modellierungen von Saisonabhängigkeit im Konsum mit rein. Insgesamt sind es wohl so 8-16 mal 1000 synth. Individuen mal 24 Kauffrequenzen (1-24 Wochen) mal 52 Wochen mal 40 Jahre Datenpunkte im zu erstellenden synthetischen Datensatz.