» »

Metoda za predvidevanje prodaje/zaloge

Metoda za predvidevanje prodaje/zaloge

chuck ::

Rad bi predvideval prodajo, oziroma zalogo v skladišču. Vsi glavni AI modeli so me pustili na cedilu, predlagali so Prophpet, LSTM in še enega. Uspešno usposobil, rezultati neuporabni, pogosto negativne vrednosti.
Podatke imam precej boge, ponavadi manj kot 10 za en izdelek, npr:
sales_data = [5, 5, 5, 5, 5, 4, 5, 5, 5, 5, 5, 5, 5, 6, 16, 48, 5]
zelo pogosto so takšni 300, 30, 5, 8, 12, itd kar pogosto imajo 0 vmes npr 5, 3, 0, 0, 1, 6...

Ključnega pomena je mesec prodaje (ki se precej ponavlja iz leta v leto), ki tudi poveča prodajo za faktor 2.5 (npr december), te podatke sem izračunal. In tudi faktor letne rasti ali padca.

Kako bi se tega lotil?
Razmišljam, da bi kar zbil podatke za faktor meseca, če je npr decembra prodaja 50, bi jo delil z 2.5. Potem porezal bistvena odstopanja in izračunal linearno rast ali padec in potem za predvidavanje pomnožil z letno rastjo/ali padcem in še z mesečno močjo.
Če je recimo linearna prodaja 5, bi jo za januar zmožil z recimo 1,1 in letnim padcem (recimo 30%) * 0,7 = 3,85
Sicer pa sigurno obstaja kaj boljšega.

Jure14 ::

Premalo prometa, da bi ti kakšna statistika kaj pametnega dala.
Še Spar ima občasno težave z načrtovanjem nabave, kaj nebi imel težav, ko na mesec prodaš artiklov za na prste ene roke.

In ko končno misliš, da si naštudiral, ti en TikToker hote ali pa nehote prodajo spravi na x10 ali /10.

chuck ::

sedaj sem ravno testiral preko 20 metod in recimo 90% metod javi negativno prodajo za naslednjih 6 mesecev:
[580, 250, 100, 8, 9, 10, 11, 10, 9, 8, 7, 6, 5, 5, 6, 4, 3]

Vsak človek pa vidi, da bo prodaja nekje 2-4/mesec v naslednjih mesecih. Zakaj :)

pegasus ::

Če prav razumem, bi rad naprogramiral kristalno kroglo? Ej, če ti rata, takoj kupim :-D

bemfa ::

Ma v bistvu majoi metode kar prav. Prodal boš 2-4, dobil pa nazaj 5-6 v reklamacijo :))

chuck ::

Kr napredujem, sej ni bistvo, da zadaneš, bistvo je zagotoviš dovolj zaloge za X dni. Eden izmed glavnih faktorjev je kot sem napisal mesec prodaje. Torej stripam podatke glede na mesec, uporabim moving averages funkcijo, ki zaenkrat ne meče negativnih vrednosti, rezultate priredim na mesec.
Trenutno sem v fazi optimizacije, dam podatke za več izdelkov in chatgpt trenutno dela 200k poskusov, da najde optimalne nastavitve, ki so čim bližje znanim številkam.

Tole je trenutna analiza:
The best method identified is the Double Moving Average (DMA) with a window size of 3.
The Mean Squared Error (MSE) of the predictions was 8.28, indicating the overall error between the predicted and actual values.

Ups:
The script was interrupted because it took too long to run 200,000 trials. Let's optimize the script to improve performance and ensure it completes within a reasonable time. We can reduce the number of trials and add some performance improvements, such as using numpy vectorized operations.

Hudo, kr sam laufa in se popravlja.

Zgodovina sprememb…

  • spremenil: chuck ()

pero50 ::

Nimam pojma kakšne količine imaš in tudi kako take stvari potekajo, ampak a ne bi bila najbolj enostavna zadeva prodaja od januarja-novembra /11, da imaš mesečno zalogo oziroma prodaja, decembra pa pač narediš ločeno.

Lotil si se pa tako kot so napisali zgoraj. Izzumljati kristalno kroglo.

Utk ::

Če je prodaja (zelo) odvisna od meseca, zakaj bi potem upošteval prodajo marca pri zalogi za december? Pač gledaš lanski in predlanski december, pa še popraviš za letni dvig/padec prodaje (čez vse ostale mesece proti lanskim). Na primer.

chuck ::

V mojem primeru to ne deluje, življenska doba izdelka je precej kratka. Povprečno 1 leto, potem pade zanimanja na morda 1kom na mesec.
Ampak kot rečeno, se je s pomočjo testiranja na pravih podatkov izbrala ta metoda in optimalni so podatki samo za zadnje 3 mesece.
V bistvu je pomen samo v tem, da prilagodiš algoritem na svoje podatke, še bolje na skupino izdelkov.

Če bi hotel še bolj napredno, bi se pri vsakem izračunu ponovno testiralo/učilo na starih podatkih in prilagajajo algoritem ter vključili še kakšni drugi podatki, npr število iskanja po določenem izdelku na spletni strani, faktor vpliva pri znižanju cene.

phys ::

Poglej še "Time series forecast models". Modeli sestojijo iz treh komponent: splošnega trenda, sezonskosti in napake. Serijo [580, 250, 100, 8, 9, 10, 11, 10, 9, 8, 7, 6, 5, 5, 6, 4, 3] mi en tak model nadaljuje z: [2.46; 2.01; 1.65; 1.35] z mejami intervalov zaupanja (95%), ki znašajo [0.55:4.29; 0.23:4.57; 0.08:4.45; 0.02:4.27].

Nikonja ::

Sej veš da obstajajo že narejeni sistemi za to in da ni potrebe izmišljat toplo vodo? Slišal si za Supply Chain, MRP, safety time, lead time... če ne, potem pa lepo oglas in poiščite enega Supply Chain strokovnjaka.
Tko na izi ti AI ne bo nič pomagal, ker rabiš še kar nekaj uhodnih informacij če hočeš vsaj približno kvaliteten output, to kaj ti imaš je uber bazičan pogled na planiranje zaloge, in planiranje je vse samo ne enostavno.

Ahim ::

chuck je izjavil:

uporabim moving averages funkcijo, ki zaenkrat ne meče negativnih vrednosti

Wow, a pa pricakujes da prej ali slej bo tudi enkrat negativno? 8-O

chuck ::

OK, SARIMAX se nekako najbolje obnese in se hitro izvede. Super je, ker mi hitro najprej izračuna seasonality in te podatke lahko prenesem na specifične produkte, ki pa imajo precej manj podatkov.
Žal pa ne najdem opcije, da upoštevam day one kot da bi npr predvideval prodajo novega iPhona. Če je huda prodaja na day one, to bistveno vpliva na nadaljno predvidevanje. V realnosti pa ne pomeni dosti. Zaenkrat se probam izognit, da bi ta podatek črtal.
Hkrati tudi ni/ne najdem opcije, da upošteva kadar ni zaloge za izdelek. Kar je glavni razlog, da se neha prodajat.

Zgodovina sprememb…

  • spremenil: chuck ()