Welcher Algorithmus könnte verwendet werden, um den Verbrauch von Verbrauchsmaterialien anhand von Daten aus früheren Einkäufen vorherzusagen?


10

Wenn ich über ein vermeintlich einfaches, aber interessantes Problem nachdenke, möchte ich einen Code schreiben, um die Verbrauchsmaterialien vorherzusagen, die ich in naher Zukunft benötigen werde, angesichts der vollständigen Historie meiner vorherigen Einkäufe. Ich bin sicher, dass diese Art von Problem eine allgemeinere und besser untersuchte Definition hat (jemand schlug vor, dass dies mit einigen Konzepten in ERP-Systemen und dergleichen zusammenhängt).

Die Daten, die ich habe, sind die vollständige Historie früherer Einkäufe. Angenommen, ich betrachte Papiervorräte, meine Daten sehen aus wie (Datum, Blätter):

2007-05-10   500
2007-11-11  1000
2007-12-18  1000
2008-03-25   500
2008-05-28  2000
2008-10-31  1500
2009-03-20  1500
2009-06-30  1000
2009-09-29   500
2009-12-16  1500
2010-05-31   500
2010-06-30   500
2010-09-30  1500
2011-05-31  1000

Es wird nicht in regelmäßigen Abständen "abgetastet", daher denke ich, dass es nicht als Zeitreihendaten qualifiziert ist .

Ich habe jedes Mal keine Daten über die tatsächlichen Lagerbestände. Ich möchte diese einfachen und begrenzten Daten verwenden, um vorherzusagen, wie viel Papier ich in (zum Beispiel) 3,6,12 Monaten benötige.

Bisher habe ich erfahren, dass das, was ich suche, Extrapolation heißt und nicht viel mehr :)

Welcher Algorithmus könnte in einer solchen Situation verwendet werden?

Und welcher Algorithmus könnte, falls er sich vom vorherigen unterscheidet, auch einige weitere Datenpunkte nutzen, die die aktuellen Versorgungsniveaus angeben (z. B. wenn ich weiß, dass zum Zeitpunkt XI noch Y Blatt Papier übrig waren)?

Bitte zögern Sie nicht, die Frage, den Titel und die Tags zu bearbeiten, wenn Sie eine bessere Terminologie dafür kennen.

EDIT: Für das, was es wert ist, werde ich versuchen, dies in Python zu codieren. Ich weiß, dass es viele Bibliotheken gibt, die mehr oder weniger jeden Algorithmus implementieren. In dieser Frage möchte ich die Konzepte und Techniken untersuchen, die verwendet werden könnten, wobei die eigentliche Implementierung dem Leser als Übung überlassen bleibt.


1
Liebe Statistiker, ich möchte Sie nur wissen lassen, dass diese Frage nicht aufgegeben wurde. Ich werde auf dieses spezielle Problem zurückkommen, sobald ich Zeit und Motivation gefunden habe (lesen Sie: Chef sagt mir, dass ich das tun soll) und Ihre wertvollen Antworten untersuchen und schließlich eine als akzeptiert markieren (was für mich "tatsächlich implementiert" bedeutet).
Luke404

Antworten:


12

Die Frage bezieht sich auf die Rate des Verbrauchs im Verhältnis zur Zeit. Dies erfordert eine Regression der Rate gegen die Zeit ( keine Regression der gesamten Einkäufe gegen die Zeit). Die Extrapolation erfolgt durch die Erstellung von Vorhersagegrenzen für zukünftige Einkäufe.

Es sind mehrere Modelle möglich. Angesichts des Umzugs in ein papierloses Büro (das seit etwa 25 Jahren besteht :-) könnten wir ein exponentielles (abnehmendes) Modell anwenden. Das Ergebnis wird durch das folgende Streudiagramm des Verbrauchs dargestellt, auf dem die Exponentialkurve (angepasst über gewöhnliche kleinste Quadrate an die Logarithmen des Verbrauchs) und ihre 95% -Vorhersagegrenzen gezeichnet sind. Es wird erwartet, dass extrapolierte Werte in der Nähe der Linie und zwischen den Vorhersagegrenzen mit 95% iger Sicherheit liegen.

Zahl

Die vertikale Achse zeigt Seiten pro Tag auf einer linearen Skala. Die dunkelblaue durchgezogene Linie ist die Passform: Sie ist wirklich exponentiell, kommt aber der Linearität bemerkenswert nahe. Der Effekt der Exponentialanpassung erscheint in den Vorhersagebändern, die auf dieser linearen Skala asymmetrisch um die Anpassung angeordnet sind. auf einer logarithmischen Skala wären sie symmetrisch.

Ein genaueres Modell würde die Tatsache berücksichtigen, dass Verbrauchsinformationen über kürzere Zeiträume (oder wenn die Gesamtkäufe kleiner sind) unsicherer sind, was unter Verwendung gewichteter kleinster Quadrate angepasst werden könnte. Angesichts der Variabilität dieser Daten und der groben Gleichheit der Größe aller Einkäufe lohnt sich der zusätzliche Aufwand nicht.

Dieser Ansatz berücksichtigt Zwischenbestandsdaten , mit denen Verbrauchsraten zu Zwischenzeiten interpoliert werden können. In einem solchen Fall wäre der Ansatz der gewichteten kleinsten Quadrate ratsam, da die Zwischenverbrauchsmengen erheblich variieren können.

Welche Gewichte verwenden? Wir könnten den Papierverbrauch, der notwendigerweise in integralen Papiermengen anfällt, als eine Anzahl betrachten, die von Tag zu Tag unabhängig variiert. Über kurze Zeiträume wäre die Varianz der Zählung daher proportional zur Länge der Periode. Die Varianz der Zählung pro Tag wäre dann umgekehrt proportional zur Länge des Zeitraums. Folglich sollten die Gewichte direkt proportional zu den zwischen den Vorräten verstrichenen Zeiträumen sein . So hätte beispielsweise der Verbrauch von 1000 Blatt zwischen 2007-05-10 und 2007-11-11 (ungefähr 180 Tage) fast das Fünffache des Gewichts des 1000-Blatt-Verbrauchs zwischen 2007-11-11 und 2007-12- 18, ein Zeitraum von nur 37 Tagen.

Die gleiche Gewichtung kann in den Vorhersageintervallen berücksichtigt werden. Dies würde zu relativ großen Intervallen für Verbrauchsvorhersagen während eines Tages führen, verglichen mit Verbrauchsvorhersagen über beispielsweise drei Monate.

Bitte beachten Sie, dass sich diese Vorschläge auf einfache Modelle und einfache Vorhersagen konzentrieren, die für die beabsichtigte Anwendung und die offensichtlich große Variabilität der Daten geeignet sind. Wenn die Projektionen beispielsweise Verteidigungsausgaben für ein großes Land betreffen, möchten wir viel mehr erklärende Variablen berücksichtigen, die zeitliche Korrelation berücksichtigen und viel detailliertere Informationen im Modell bereitstellen.


Wären die Daten in regelmäßigen Abständen abgetastet worden, wäre es angemessen gewesen , Zählungen im Gegensatz zu Raten zu verwenden?
MannyG

1
@MannyG Ja, aber nur, weil die Zählungen direkt proportional zu den Raten wären, nicht weil es angemessen wäre, die Zählungen selbst zu verwenden. Die Notwendigkeit, hier Raten zu verwenden, ist klar, wenn wir überlegen, was es wirklich bedeutet, einen zukünftigen Wert vorherzusagen: Sie müssen das Zeitintervall des vorhergesagten Verbrauchs angeben. Man ist dabei die Vorhersage einer Menge mal eine Zeit , eine Menge zu bekommen, diesen Betrag impliziert muss eine Menge pro Zeiteinheit sein: eine Verbrauchsrate .
whuber

@whuber Entschuldigung, aber ich kann nicht klar verstehen, welche Modelle in Ihrer Antwort beschrieben sind und in welchen Punkten eines endet und ein anderes beginnt. Ich habe ein ähnliches Problem und Teile Ihrer Antwort scheinen genau das zu sein, was ich brauche, aber ich muss noch etwas mehr über diese Angelegenheit lernen, und ich kann Ihre Antwort nicht lesen, wenn Sie über bestimmte Modelle oder ein bestimmtes Modell sprechen wird schrittweise verbessert. Gibt es einen formalen Namen für das Modell mit den Gewichten, die Sie beschreiben? Enthält Ihr erstes Modell (exponentielle Abnahme) Gewichte? Danke im Voraus.
Agis

@rensokuken Ich beschreibe ein Modell und eine Variation, die die Daten gewichtet. In der zweiten Hälfte dieser Antwort wird vorgeschlagen, wie die Gewichte bestimmt werden. Ich kenne keinen formalen Namen, der über "gewichtete kleinste Quadrate" hinausgeht.
whuber

@whuber ich sehe. Am Anfang beschreiben Sie dies und wenn Sie Gewichte hinzufügen, beschreiben Sie dies , richtig? Haben Sie auch Ressourcen, die Sie sich ansehen können, die sich auf die jeweilige Lösung beziehen und für Anfänger in der Prognose geeignet sind? Danke für die Klarstellung.
Agis

5

Dies ist definitiv das Problem des maschinellen Lernens (ich habe Tags in Ihrem Beitrag aktualisiert). Dies ist höchstwahrscheinlich eine lineare Regression . Kurz gesagt, die lineare Regression versucht, die Beziehung zwischen 1 abhängigen und 1 oder mehr unabhängigen Variablen wiederherzustellen. Abhängige Variable ist hier die Verwendung von Verbrauchsmaterialien . Für unabhängige Variablen schlage ich Zeitintervalle zwischen den Einkäufen vor. Sie können auch unabhängigere Variablen hinzufügen, z. B. die Anzahl der Personen, die zu jedem Zeitpunkt Verbrauchsmaterialien verwendet haben, oder alles andere, was sich auf die Anzahl der Einkäufe auswirken kann. Eine schöne Beschreibung der linearen Regression zusammen mit der Implementierung in Python finden Sie hier .

Theoretisch ist es auch möglich, dass nicht nur Zeitintervalle zwischen Einkäufen, sondern auch Momente selbst die Beträge beeinflussen. Zum Beispiel möchten die Leute aus irgendeinem Grund im Januar möglicherweise mehr Papier als beispielsweise im April. In diesem Fall können Sie die Anzahl der Monate aufgrund der linearen Regression selbst nicht als unabhängige Variable verwenden (die Anzahl der Monate ist nur eine Bezeichnung, wird jedoch als Betrag verwendet). Sie haben also zwei Möglichkeiten, dies zu überwinden.

Zunächst können Sie 12 zusätzliche Variablen hinzufügen , eine für jeden Monat , und jede Variable auf 1 setzen, wenn sie den Kaufmonat darstellt, und auf 0, wenn dies nicht der Fall ist. Verwenden Sie dann dieselbe lineare Regression.

Zweitens können Sie einen komplexeren Algorithmus verwenden, z. B. M5 ' , eine Mischung aus linearen Regressions- und Entscheidungsbäumen (eine detaillierte Beschreibung dieses Algorithmus finden Sie in Data Mining: Praktische Tools und Techniken für maschinelles Lernen ).


Dies hängt davon ab, wie viele Daten über den Benutzer Sie haben. Wenn dies völlig ausreicht (z. B.> 100 Transaktionen über> 1 Jahr), können Sie ein Modell für diesen bestimmten Benutzer trainieren. Andernfalls kann ein allgemeines Modell über alle Benutzer zu besseren Ergebnissen führen. Sie können die Kreuzvalidierung verwenden, um die Leistung beider Ansätze zu messen.
Freund

5

Es wird nicht in regelmäßigen Abständen "abgetastet", daher denke ich, dass es nicht als Zeitreihendaten qualifiziert ist.

Hier ist eine Idee zur Prognose der Einkäufe: Betrachten Sie die Daten als eine intermittierende Nachfrageserie . Das heißt, Sie haben eine Zeitreihe, die in regelmäßigen Abständen abgetastet wird, aber die positiven Werte sind offensichtlich unregelmäßig verteilt. Rob Hyndman hat ein schönes Papier über die Verwendung der Croston-Methode zur Vorhersage intermittierender Nachfrageserien. Während ich auch viel in Python programmiere, sparen Sie viel Explorationszeit, indem Sie die Croston-Methode sowie andere Methoden zur Vorhersage von Zeitreihen verwenden, die in Robs ausgezeichneter R-Paket- Vorhersage verfügbar sind .


1
+1 Für das Anbieten einer neuen Idee. Die Einleitung und die Schlussfolgerungen des Shenstone & Hyndman-Papiers lassen jedoch darauf schließen, dass Crostons Methode im Allgemeinen nicht sehr gut ist: Das Papier konzentriert sich auf den Versuch, ein populäres Verfahren zu rechtfertigen und zu verstehen, das sich als begrenzt herausstellt; Das Beste, was die Autoren sagen können, ist, dass "Prognosen ... trotzdem nützlich sein können". Es sieht auch so aus, als ob dieses Modell die vom OP angeforderten zusätzlichen Daten zu "aktuellen Versorgungsniveaus" nicht aufnehmen konnte.
whuber

3

Ich bin mir ziemlich sicher, dass Sie versuchen, eine Regressionsanalyse durchzuführen , um eine Linie an Ihre Datenpunkte anzupassen. Es gibt viele Tools , die Ihnen helfen - MS Excel ist am besten zugänglich. Wenn Sie Ihre eigene Lösung entwickeln möchten, sollten Sie Ihre Statistiken am besten auffrischen ( hier und hier vielleicht). Sobald Sie eine Linie an Ihre Daten angepasst haben, können Sie in die Zukunft extrapolieren.

EDIT: Hier ist ein Screenshot des Excel-Beispiels, das ich in den Kommentaren unten erwähnt habe. Die fettgedruckten Daten sind zufällige Daten in der Zukunft, die ich selbst eingegeben habe. Die fettgedruckten Werte in Spalte B sind extrapolierte Werte, die anhand der exponentiellen Regression von Excel berechnet werden. Geben Sie hier die Bildbeschreibung ein

EDIT2: OK, um die Frage zu beantworten: "Welche Techniken kann ich verwenden?"

  • exponentielle Regression (oben erwähnt)
  • Holts Methode
  • Wintermethode
  • ARIMA

Auf dieser Seite finden Sie jeweils eine kleine Einführung: http://www.decisioncraft.com/dmdirect/forecastingtechnique.htm


Dies führte mich zu der Frage: Was sind meine Datenpunkte? nicht die Einzelkäufe - das würde nicht berücksichtigen, wie viel Zeit zwischen ihnen vergeht und somit der Gesamtverbrauch einer bestimmten Ressource. Vielleicht sollte ich sie interpolieren, um in regelmäßigen Abständen einen Durchschnitt zu erhalten (z. B. Menge pro Woche) und diesen dann als Zeitreihendateneingabe verwenden, um zukünftige Daten zu extrapolieren?

Stellen Sie sich den Zeitunterschied als Unterschied in Ihren 'x'-Werten in einem Diagramm vor. Die meisten Arten der Regressionsanalyse berücksichtigen die unterschiedlichen Unterschiede. Probieren Sie Ihre Beispieldaten mit der GROWTH-Funktion in Excel aus, die eine exponentielle Regression verwendet. Wenn Sie die Daten ändern, ändern sich Ihre projizierten Werte entsprechend.

3

Begonnen als Kommentar, wurde zu lang ...

Es wird nicht in regelmäßigen Abständen "abgetastet", daher denke ich, dass es nicht als Zeitreihendaten qualifiziert ist

Dies ist eine falsche Schlussfolgerung - es ist sicherlich eine Zeitreihe. Eine Zeitreihe kann unregelmäßig abgetastet werden, sie erfordert lediglich andere als die üblichen Ansätze, wenn dies der Fall ist.

Dieses Problem scheint mit stochastischen Problemen wie dem Dammniveau in Zusammenhang zu stehen (Wasser wird im Allgemeinen mit einer ziemlich stabilen Rate im Laufe der Zeit verwendet, wobei es manchmal mehr oder weniger schnell zunimmt oder abnimmt, während es zu anderen Zeiten ziemlich stabil ist), während das Dammniveau tendenziell nur ansteigt schnell (im Wesentlichen in Sprüngen), wenn Regen fällt. Die Papierverbrauchs- und Nachfüllmuster können etwas ähnlich sein (obwohl die bestellte Menge tendenziell viel stabiler und in viel runderen Zahlen als die Niederschlagsmengen ist und immer dann auftritt, wenn der Füllstand niedrig wird).

Es hängt auch mit dem Kapital der Versicherungsgesellschaft zusammen (aber in gewisser Weise umgekehrt) - abgesehen vom Anfangskapital gehen die Prämiengelder (Nettobetriebskosten) und Investitionen relativ stetig (manchmal mehr oder weniger) ein, während die Zahlungen für Versicherungspolicen in der Regel relativ hoch sind Beträge.

Beide Dinge wurden modelliert und bieten möglicherweise einen kleinen Einblick in dieses Problem.


-1

Sie sollten sich WEKA ansehen. Es ist ein Tool und eine Java-API mit einer Reihe von Algorithmen für maschinelles Lernen. Insbesondere sollten Sie nach Klassifizierungsalgorithmen suchen.

Viel Glück


Wie würde mir ein Klassifizierungsalgorithmus eine quantitative Vorhersage geben?

@ Luke404: Weka hat drei Arten von Algorithmen (Klassifizierung, Clustering und Assoziations-Mining), und sie haben beschlossen, die Regression in den Klassifizierungsabschnitt aufzunehmen. Aber im Allgemeinen haben Sie Recht, Klassifizierung und quantitative Vorhersage sind etwas andere Dinge.
Freund

-1

Ich würde lineare kleinste Quadrate verwenden , um ein Modell an den kumulierten Verbrauch anzupassen (dh die Gesamtzahl der Seiten nach Datum). Eine anfängliche Annahme wäre die Verwendung eines Polynoms ersten Grades. Die Residuen zeigen jedoch an, dass der erste Grad den Daten im Beispiel nicht entspricht, sodass der nächste logische Schritt darin besteht, sie auf einen zweiten Grad (dh eine quadratische Anpassung) zu erhöhen. Dadurch wird die Krümmung in den Residuen beseitigt, und der leicht negative Koeffizient für den quadratischen Term bedeutet, dass die Verbrauchsrate mit der Zeit abnimmt, was intuitiv erscheint, da die meisten Menschen im Laufe der Zeit wahrscheinlich weniger Papier verbrauchen. Für diese Daten müssen Sie meines Erachtens nicht über eine Anpassung zweiten Grades hinausgehen, da Sie möglicherweise mit einer Überanpassung beginnen und die daraus resultierende Extrapolation möglicherweise keinen Sinn ergibt.

Sie können die Anpassungen (einschließlich Extrapolation) und die Residuen in den folgenden Darstellungen sehen.

passen Restwert

Wenn Sie können, ist es möglicherweise sinnvoll, ein Bootstrapping durchzuführen , um eine bessere Schätzung der Vorhersagefehler zu erhalten.


Da die Residuen im kumulierten Verbrauch stark korrelieren würden, erscheint diese Methode statistisch nicht gerechtfertigt. Bei Verwendung einer quadratischen Anpassung werden nur Papiere für dieses grundlegende Problem verwendet. es kann es nicht heilen.
whuber

-2

Ich denke, Sie können Ihre Daten mithilfe von Operations Research abrufen .

Warum versuchen Sie nicht, einige Gleichungen zu finden, die die pro Zeitraum verwendete Papiermenge, die Benutzer des Papiers usw. als Variablen verwenden?

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.