Geçmiş satın alımlardan elde edilen verilerle sarf malzemesi kullanımını tahmin etmek için hangi algoritma kullanılabilir?


10

Sözde basit ama ilginç bir sorun olduğunu düşünerek, önceki alımlarımın tam geçmişi göz önüne alındığında, yakın gelecekte ihtiyaç duyacağım sarf malzemesini tahmin etmek için bazı kodlar yazmak istiyorum. Eminim bu tür bir problem daha genel ve iyi çalışılmış bir tanımlamaya sahiptir (birisi bunun ERP sistemlerindeki ve benzeri bazı kavramlarla ilişkili olduğunu önerdi).

Sahip olduğum veriler, önceki satın alma işlemlerinin tam geçmişidir. Diyelim ki kağıt sarf malzemelerine bakıyorum, verilerim şöyle görünüyor (tarih, sayfalar):

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

düzenli aralıklarla 'örneklenmiyor', bu yüzden bir Zaman Serisi verisi olarak nitelendirilmediğini düşünüyorum .

Her seferinde gerçek stok seviyeleri hakkında veri yok. 3,6,12 ay içinde ne kadar kağıda ihtiyacım olacağını tahmin etmek için bu basit ve sınırlı verileri kullanmak istiyorum.

Şimdiye kadar aradığım şeyin Ekstrapolasyon olduğunu ve daha fazlası olmadığını öğrendim :)

Böyle bir durumda hangi algoritma kullanılabilir?

Ve eğer bir öncekinden farklıysa, hangi algoritma mevcut tedarik seviyelerini veren bazı daha fazla veri noktasından da yararlanabilir (örneğin, XI tarihinde Y kağıt yaprağı kaldığını biliyorsam)?

Bunun için daha iyi bir terminoloji biliyorsanız, soru, başlık ve etiketleri düzenlemekten çekinmeyin.

EDIT: değer için ne, ben bunu python kodlamaya çalışacağız. Orada az çok herhangi bir algoritma uygulayan birçok kütüphane olduğunu biliyorum. Bu soruda, gerçek uygulama okuyucuya bir alıştırma olarak kalacak şekilde, kullanılabilecek kavramları ve teknikleri araştırmak istiyorum.


1
sevgili istatistikçiler, sadece bu sorunun terk edilmediğini bildirmek istiyorum. Zaman ve motivasyon bulduğumda bu özel probleme geri döneceğim (oku: patron bunu yapmamı söylüyor) ve değerli cevaplarınızı araştıracak ve sonunda kabul edilmiş olarak işaretleyeceğim (ki bu benim için "aslında uygulandı" anlamına gelecek).
Luke404

Yanıtlar:


12

Soru , zamana göre tüketim oranı ile ilgilidir . Bu, zamana karşı oranın gerilemesini gerektirir (toplam alımların zamana göre gerilemesi değil ). Ekstrapolasyon, gelecekteki satın alımlar için tahmin limitleri yapılarak gerçekleştirilir .

Birkaç model mümkündür. Kağıtsız bir ofise (yaklaşık 25 yıldır devam eden :-)) bakıldığında, üstel (azalan) bir model benimseyebiliriz. Sonuç, üstel eğri (tüketimin logaritmalarına sıradan en küçük kareler aracılığıyla yerleştirilir) ve% 95 tahmin limitleri çizilen tüketimin aşağıdaki dağılım grafiğiyle tasvir edilir. Ekstrapole edilen değerlerin çizginin yakınında ve% 95 güvenle tahmin sınırları arasında olması beklenir.

şekil

Dikey eksen, günlük sayfaları doğrusal bir ölçekte gösterir. Koyu mavi düz çizgi uyum sağlar: gerçekten üsteldir, ancak doğrusal olmaya oldukça yakındır. Üstel uyumun etkisi, bu doğrusal ölçekte uyumun etrafına asimetrik olarak yerleştirilen tahmin bantlarında görülür; kütük ölçeğinde simetrik olurlar.

Daha kesin bir model , tüketim bilgilerinin daha kısa süreler (veya toplam alımlar daha küçük olduğunda) ağırlıklı ve en küçük kareler kullanılarak yerleştirilebileceğini açıklar. Bu verilerdeki değişkenlik ve tüm satın almaların boyutlarının kabaca eşitliği göz önüne alındığında, ekstra çabaya değmez.

Bu yaklaşım , ara zamanlarda tüketim oranlarını enterpolasyonlamak için kullanılabilen ara envanter verilerini içerir. Böyle bir durumda, ara tüketim miktarları önemli ölçüde değişebileceğinden, ağırlıklı en küçük kareler yaklaşımı tavsiye edilebilir.

Hangi ağırlıklar kullanılacak? Mutlaka ayrılmaz miktarda kağıt tahakkuk eden kağıt tüketimini, günden güne bağımsız olarak değişen bir sayı olarak düşünebiliriz. Kısa süreler boyunca, sayımın varyansı, dönemin uzunluğu ile orantılı olacaktır. Gün başına sayımın varyansı , dönemin uzunluğu ile ters orantılı olacaktır. Sonuç olarak , ağırlıklar stoklar arasında geçen dönemlerle doğru orantılı olmalıdır . Böylece, örneğin, 2007-05-10 ve 2007-11-11 (yaklaşık 180 gün) arasındaki 1000 yaprak tüketimi, 2007-11-11 ve 2007-12- arasındaki 1000 yaprak tüketiminin yaklaşık beş katına sahip olacaktır. 18, sadece 37 günlük bir süre.

Tahminleme aralıklarında aynı ağırlıklandırma yapılabilir. Bu, bir gün boyunca tüketim tahminleri için, örneğin üç ay boyunca tüketim tahminine kıyasla nispeten geniş aralıklarla sonuçlanacaktır.

Bu önerilerin, amaçlanan uygulamaya ve verilerdeki bariz büyük değişkenliğe uygun basit modellere ve basit tahminlere odaklandığını lütfen unutmayın. Projeksiyonlar, örneğin, büyük bir ülke için savunma harcamalarını içeriyorsa, daha açıklayıcı değişkenleri barındırmak, zamansal korelasyonu açıklamak ve modelde çok daha ayrıntılı bilgi sağlamak istiyoruz.


Veriler düzenli aralıklarla örneklenmiş olsaydı , oranların aksine sayıları kullanmak uygun olur muydu?
MannyG

1
@MannyG Evet, ancak yalnızca sayımların oranlarla doğrudan orantılı olması nedeniyle, sayımların kendilerinin kullanılmasının uygun olması nedeniyle değil. Gelecekteki bir değeri tahmin etmenin gerçekten ne anlama geldiğini düşündüğümüzde, oranları kullanma ihtiyacı açıktır: tahmin edilen tüketimin zaman aralığını belirtmeniz gerekir. Bu nedenle, bir miktar, bir miktar elde etmek için zamanın bir miktarını tahmin etmektedir, bu miktarın birim zaman başına bir miktar olması gerektiğini ima eder : bir tüketim oranı .
whuber

@whuber Affedersiniz ama cevabınızda hangi modellerin tanımlandığını ve hangisinin hangi noktalarda bitip diğerini başlattığını net bir şekilde anlayamıyorum. Benzer bir sorunum var ve cevabınızın bazı kısımları tam olarak ihtiyacım olan şey gibi görünüyor, ancak bu konuda daha fazla çalışma yapmam gerekiyor ve farklı modellerden veya belirli bir modelden bahsediyorsanız cevabınızı okuyarak söyleyemem kademeli olarak geliştirilir. Tanımladığınız ağırlıklara sahip model için resmi bir isim var mı? İlk modeliniz (üstel azalma) ağırlık içeriyor mu? Şimdiden teşekkürler.
Agis

@rensokuken Bir modeli ve verileri ağırlıklandıran bir varyasyonu açıklarım. Bu cevabın ikinci yarısı ağırlıkların nasıl belirleneceğini önermektedir. "Ağırlıklı en küçük karelerin" ötesinde resmi bir ad bilmiyorum.
whuber

@whuber anlıyorum. Başlayan yılında Tarif ettiğiniz bu ve ağırlıkları eklerken o zaman tarif ettiğin bu doğru? Ayrıca, belirli bir çözümle ilgili olarak ve öngörmede yeni başlayanlar için bakacak kaynaklarınız var mı? Açıklama için teşekkürler.
Agis

5

Bu kesinlikle makine öğrenme problemidir (Yazılarınızdaki etiketleri güncelledim). Büyük olasılıkla, bu doğrusal regresyon . Kısacası, doğrusal regresyon 1 bağımlı ve 1 veya daha fazla bağımsız değişken arasındaki ilişkiyi kurtarmaya çalışır. Burada bağımlı değişken sarf malzemesi kullanımıdır . Bağımsız değişkenler için alımlar arasında zaman aralıkları öneririm. Ayrıca daha bağımsız değişkenler de ekleyebilirsiniz, örneğin, her an sarf malzemesi kullanan kişi sayısı veya satın alma miktarını etkileyebilecek başka herhangi bir şey. Burada Python'da uygulama ile birlikte doğrusal regresyonun güzel açıklamasını bulabilirsiniz .

Teorik olarak, sadece alımlar arasındaki zaman aralıklarının değil, aynı zamanda zamanın kendilerinin de miktarları etkilemesi de mümkündür. Örneğin, Ocak ayında bir nedenden dolayı insanlar Nisan ayındakinden daha fazla kağıt isteyebilirler. Bu durumda, doğrusal regresyonun doğasından dolayı ay sayısını bağımsız değişken olarak kullanamazsınız (ay sayısı sadece bir etikettir, ancak miktar olarak kullanılacaktır). Yani bunun üstesinden gelmenin 2 yolu var.

İlk olarak, her ay için bir tane olmak üzere 12 ek değişken ekleyebilir ve satın alma ayını temsil ediyorsa her değişkeni 1'e, yoksa da 0'a ayarlayabilirsiniz. Sonra aynı doğrusal regresyonu kullanın.

İkincisi, lineer regresyon ve karar ağaçlarının karışımı olan M5 ' gibi daha karmaşık algoritmalar kullanabilirsiniz (bu algoritmanın detaylı açıklamasını Veri Madenciliği: Pratik Makine Öğrenme Araçları ve Teknikleri'nde bulabilirsiniz ).


Kullanıcı hakkında sahip olduğunuz veri miktarına bağlıdır. Yeterli ise (örneğin,> 1 yılda> 100 işlem), bu kullanıcı için bir model eğitebilirsiniz. Aksi takdirde, tüm kullanıcılar üzerindeki genel model size daha iyi sonuçlar verebilir. Her iki yaklaşımın performansını ölçmek için çapraz doğrulamayı kullanabilirsiniz.
arkadaş

5

düzenli aralıklarla 'örneklenmiyor', bu yüzden bir Zaman Serisi verisi olarak nitelendirilmediğini düşünüyorum.

Satın alımların nasıl tahmin edileceği hakkında bir fikir: Verileri aralıklı bir talep serisi olarak düşünün . Yani, düzenli aralıklarla örneklenmiş bir zaman diziniz var, ancak pozitif değerler açıkça düzensiz aralıklı. Rob Hyndman, aralıklı talep serilerini tahmin etmek için Croston'un yöntemini kullanma konusunda güzel bir makaleye sahiptir . Ben de Python'da çok şey programlarken, Croston'un yöntemini ve Rob'un mükemmel R paket tahmininde kolayca bulunan diğer zaman serisi tahmin yöntemlerini kullanarak çok fazla keşif süresi kazanacaksınız .


1
+1 Yeni bir fikir sunmak için. Bununla birlikte, Shenstone & Hyndman makalesinin giriş ve sonuçlarına bakmak, Croston'un yönteminin genellikle çok iyi olmadığını ileri sürmektedir: makale, sınırlı olduğu ortaya çıkan popüler bir prosedürü haklı göstermeye ve anlamaya odaklanmaktadır; yazarların söyleyebileceği en iyi şey buna rağmen, "tahminler ... yine de yararlı olabilir." Ayrıca, bu model OP tarafından talep edildiği gibi "mevcut tedarik seviyeleri" ile ilgili ek verileri barındıramayacak gibi görünüyor.
whuber

3

Veri noktalarınıza bir çizgi sığdırmak için bazı regresyon analizleri yapmaya çalıştığınızdan eminim . Size yardımcı olacak birçok araç var - MS Excel en erişilebilir. Kendi çözümünüzü sunmak istiyorsanız , istatistiklerinizi fırçalamak en iyisidir ( belki burada ve burada ). Verilerinize bir satır ekledikten sonra geleceğe tahmin edebilirsiniz.

EDIT: İşte aşağıdaki yorumlarda bahsettiğim excel örneğinin bir ekran görüntüsü. Cesur tarihler, kendime yazdığım gelecekteki rastgele tarihlerdir. B sütunundaki kalın değerler, Excel'in üstel regresyon aromasıyla hesaplanan tahmin edilen değerlerdir. resim açıklamasını buraya girin

EDIT2: Tamam, "Hangi teknikleri kullanabilirim?"

  • üstel regresyon (yukarıda bahsedilen)
  • Holt Yöntemi
  • Kış yöntemi
  • ARİMA

Her birinde küçük bir giriş için lütfen bu sayfaya bakın: http://www.decisioncraft.com/dmdirect/forecastingtechnique.htm


Bu kendime soruyorum götürdü: Ne olduğunu benim veri noktaları? tek satın alımlar değil - bunlar arasında ne kadar zaman geçtiğini ve dolayısıyla belirli bir kaynağın toplam tüketimini hesaba katmaz. Belki de düzenli aralıklarla (örneğin haftada miktar) ortalama almak için bunları enterpolasyona sokmalı ve daha sonra gelecekteki verileri tahmin etmek için bir zaman serisi veri girişi olarak kullanmalıyım?

Zaman farkını bir grafikteki 'x' değerlerinizdeki fark olarak düşünün. Çoğu regresyon analizi, farklılıkları dikkate alacaktır. Excel'deki üstel regresyon kullanan BÜYÜME işlevini kullanarak örnek verilerinizi deneyin. Tarihleri ​​değiştirirseniz, öngörülen değerleriniz buna göre değişir.

3

Yorum olarak başladı, çok uzun büyüdü ...

düzenli aralıklarla 'örneklenmiyor', bu yüzden bir Zaman Serisi verisi olarak nitelendirilmediğini düşünüyorum

Bu hatalı bir sonuçtur - kesinlikle zaman serisidir. Bir zaman serisi düzensiz olarak örneklenebilir, sadece olağan yaklaşımlardan farklı olma eğilimindedir.

Bu sorun, baraj seviyeleri gibi stokastik problemlerle ilişkili görünmektedir (su genellikle zaman içinde oldukça istikrarlı bir oranda kullanılır, bazen daha fazla veya daha az hızlı bir şekilde artar veya azalır, diğer zamanlarda oldukça stabildir), ancak baraj seviyeleri sadece artar. hızlı bir şekilde (esasen zıplamalarda), yağış meydana gelir. Kağıt kullanımı ve ikmal desenleri biraz benzer olabilir (ancak sipariş edilen miktar, yağış miktarlarından çok daha istikrarlı ve çok daha yuvarlak sayılarda olabilir ve seviye düştüğünde meydana gelebilir).

Sigorta şirketi sermayesi ile de ilgilidir (ancak bir çeşit tersine çevrilir) - başlangıç ​​sermayesinin yanı sıra, primlerden para (net işletme maliyetleri) ve yatırımlar oldukça istikrarlı bir şekilde (bazen az ya da çok) gelirken, sigorta poliçesi ödemeleri nispeten büyük oranda yapılır. tutarlar.

Bunların her ikisi de modellenmiştir ve bu sorun için biraz fikir verebilir.


-1

WEKA'ya bir göz atmalısınız. Bir takım makine öğrenme algoritmaları içeren bir araç ve bir Java API'dir. Özellikle sınıflandırma algoritmalarını aramalısınız.

İyi şanslar


Bir sınıflandırma algoritması bana nasıl nicel bir tahmin verebilir?

@ Luke404: Weka'nın 3 tip algoritması vardır (sınıflandırma, kümeleme ve ilişkilendirme madenciliği) ve sınıflandırma bölümüne regresyon koymaya karar verdiler. Ama genel olarak haklısınız, sınıflandırma ve nicel tahmin biraz farklı şeyler.
arkadaş

-1

Ben kullanacağı en küçük kareler doğrusal (yani tarihe göre sayfaların toplam çalıştıran) kümülatif tüketim için bir model sığdırmak için. İlk varsayım, birinci derece polinom kullanmak olacaktır. Bununla birlikte, artıklar birinci derecenin örnekteki verilere uymadığını gösterir, bu nedenle bir sonraki mantıksal adım, onu ikinci dereceye (yani kuadratik) uyuma arttırmak olacaktır. Bu, artıklardaki eğriliği ortadan kaldırır ve kare terim için biraz negatif katsayı, tüketim oranının zaman içinde azaldığı anlamına gelir, bu da çoğu insanın zamanla daha az kağıt kullanma eğiliminde olduğu göz önüne alındığında sezgisel görünmektedir. Bu veriler için, fazla sığmaya başlayabileceğiniz ve sonuçta ortaya çıkan ekstrapolasyonun mantıklı olmayabileceği için ikinci derece uyumun ötesine geçmeniz gerektiğini düşünmüyorum.

Aşağıdaki grafiklerde uygun parçaları (ekstrapolasyon dahil) ve kalıntıları görebilirsiniz.

Uygun kalıntı

Yapabiliyorsanız, tahmin hatalarının daha iyi bir tahminini almak için önyükleme yapmak iyi olabilir .


Kümülatif tüketimdeki artıklar güçlü bir şekilde ilişkili olacağından , bu yöntem istatistiksel olarak doğrulanmış görünmemektedir. Karesel bir uyumun kullanılması, yalnızca bu temel problem üzerine makaleler; tedavi edemez.
whuber

-2

Yöneylem araştırmasını kullanarak verilerinizi alabileceğinizi düşünüyorum .

Neden dönem başına kullanılan kağıt miktarını, kağıt kullanıcılarını vb. Değişken olarak alan bazı denklemler bulmaya çalışmıyorsunuz?

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.