Özel Auto ARIMA (Python kodu ile) ile yüksek performanslı bir zaman serisi modeli oluşturun

Yazar: AISHWARYA SINGH

Çeviri: Chen Zhiyan

Redaksiyon: Ding Nanya

Bu makale toplam 3400 kelimedir, 10+ okunması önerilir. dakika.

Bu makale ARIMA kavramını tanıtır ve sizi Python ve R'de uygulamak için bir veri seti eğitmeye götürür.

Giriş

Şimdi bir göreviniz olduğunu hayal edin: mevcut geçmiş verilere dayanarak yeni nesil iPhone'un fiyatını tahmin edin Mevcut özellikler, üç aylık satışları, aylık harcamaları ve Apple'ın bilançosundaki bir dizi içeriği içerir. Bir veri bilimci olarak, bu problemi ne tür bir problem olarak sınıflandırırsınız? Elbette zaman serisi modellemedir.

Zaman serisi tahmini, ürün satışlarını tahmin etmekten hane halkı elektrik tüketimini tahmin etmeye kadar, herhangi bir veri bilimcisinin yeterli olmasa bile bilmesi gereken temel becerilerden biridir. Bu makalede tartışacağımız zaman serisi tahmini için birçok farklı yöntemi kullanabilirsiniz. Otomatik ARIMA En etkili yöntemlerden biridir.

Önce ARIMA kavramını anlayalım ve sonra Auto ARIMA konusuna girelim. Konsepti pekiştirmek için bir veri seti kullanacağız ve bunu Python ve R'de uygulayacağız.

içindekiler

1. Zaman serisi nedir?

İkincisi, zaman serisi tahmin yöntemi

3. ARIMA'ya Giriş

Dört, ARIMA uygulama adımı

5. Neden Auto ARIMA'ya ihtiyacım var?

Altı, vakayı gerçekleştirmek için Auto ARIMA'yı kullanın (hava yolcusu veri seti)

7. Auto ARIMA için parametreler nasıl seçilir?

Zaman serilerine ve yaygın yöntemlerine aşinaysanız (hareketli ortalama, üstel yumuşatma ve ARIMA gibi), doğrudan 4. bölüme geçebilirsiniz. Yeni başlayanlar için, lütfen zaman serilerine ve çeşitli tahmin yöntemlerine kısa bir giriş içeren aşağıdaki bölümle başlayın.

1. Zaman serisi nedir?

Zaman serisi verileriyle nasıl başa çıkılacağını öğrenmeden önce, bir zaman serisinin ne olduğunu ve diğer veri türlerinden nasıl farklı olduğunu anlamalıyız. Bir zaman serisinin resmi tanımı şu şekildedir: aynı zaman aralığında ölçülen bir dizi veri noktasıdır. .

Kısacası, bir zaman serisi, sabit bir zaman aralığında kaydedilen belirli bir değeri ifade eder.Zaman aralığı, saatlik, günlük, haftalık, 10 günde bir vb. Olabilir. Zaman serisinin özelliği, serideki her veri noktasının önceki veri noktasıyla ilişkili olmasıdır. Bunu daha net anlamak için aşağıdaki örnekleri kullanıyoruz.

  • örnek 1:
Bir şirketten bir kredi memuru veri seti aldığınızı varsayalım (aşağıdaki tabloda gösterildiği gibi). Her satırın önceki satırla ilişkili olduğunu düşünüyor musunuz? Tabii ki değil! Bir kişinin kredisinin miktarı mali durumuna ve ihtiyaçlarına bağlıdır (aile büyüklüğü vb. Gibi başka faktörler olabilir, ancak basitleştirmek için yalnızca geliri ve kredi türünü dikkate alırız). Ayrıca bu veriler belirli zaman aralıklarında toplanmaz, sadece firmanın kredi başvurusunu ne zaman aldığı ile ilgilidir.

  • Örnek 2:
Başka bir örnek ver. Havadaki günlük karbondioksit seviyelerini içeren bir veri kümeniz olduğunu varsayalım (aşağıdaki ekran görüntüsü). Sonraki günün CO2 seviyesi, son birkaç günün değeri ile tahmin edilebilir mi? elbette. Gözlemlediğiniz veriler her gün kaydediliyorsa, zaman aralığı sabittir (24 saat).

Artık sezginize sahip olduğunuza göre, ilk örnek basit bir regresyon problemidir ve ikinci örnek bir zaman serisi problemidir. Buradaki zaman serisi problemi doğrusal regresyonla da çözülebilmesine rağmen, bu en iyi yöntem değildir çünkü bu değerler ile tüm göreli geçmiş değerler arasındaki ilişkiyi göz ardı eder. Aşağıda, zaman serisi problemlerini çözmek için bazı yaygın yöntemlere bir göz atalım.

İkincisi, zaman serisi tahmin yöntemi

Zaman serisi tahmini için birçok yöntem vardır ve bunları bu bölümde kısaca tanıtacağız. Aşağıda belirtilen tüm yöntemlerin ayrıntılı açıklaması ve Python kodu aşağıda bulunabilir:

Yedi zaman serisi tahmin yöntemi (Python koduyla): https://www.analyticsvidhya.com/blog/2018/02/time-series-forecasting-methods/

1. Saf tahmin yöntemi: Bu tahmin yönteminde, yeni veri noktasının tahmin edilen değeri, önceki veri noktasının değerine eşittir. Sonuç, paralel bir çizgi olacaktır, çünkü tüm yeni tahmin edilen değerler önceki değerleri kullanır.

2. Basit ortalama yöntemi: Sonraki değeri, önceki tüm değerlerin ortalaması olarak ele alın. Bu tahmin yöntemi "naif tahmin yönteminden" daha iyidir çünkü sonucu paralel bir çizgi olmayacaktır. Ancak basit ortalama yönteminde, tüm geçmiş değerler hesaba katılır ve bu değerlerin hepsi yararlı olmayabilir. Örneğin, bugünün sıcaklığını tahmin etmeniz istendiğinde, bir ay önceki sıcaklığı değil, yalnızca önceki yedi günün sıcaklığını dikkate almanız gerekir.

3. Hareketli ortalama yöntemi: Bu, ilk iki yöntemde bir gelişmedir. Önceki tüm puanların ortalamasını almak yerine, tahmin edilen değer olarak önceki n puanın ortalaması kullanılır.

4. Ağırlıklı hareketli ortalama yöntemi: Ağırlıklı hareketli ortalama, ağırlıklı hareketli ortalamadır ve önceki n değerlerine farklı ağırlıklar verilmiştir.

5. Basit üstel yumuşatma yöntemi: Bu yöntemde, daha yeni gözlemlere daha fazla ağırlık verilir ve uzak geçmişten gelen gözlemlere daha az ağırlık verilir.

6. Holt (Holt) doğrusal trend modeli: Bu yöntem, veri setinin eğilimini dikkate alır. Sözde eğilim, verilerin artan veya azalan doğasını ifade eder. Otel rezervasyonu sayısının her yıl arttığını varsayarsak, rezervasyon sayısının da artış eğilimi gösterdiğini söyleyebiliriz. Bu yöntemin tahmin işlevi, değer ve eğilimin bir işlevidir.

7. Holt Winters yöntemi: Algoritma, verilerin hem eğilimini hem de mevsimselliğini dikkate alır. Örneğin, bir otel için rezervasyon sayısı hafta sonları yüksek, hafta içi düşük ve her yıl artıyor; bu nedenle, haftalık mevsimsel ve artan bir eğilim var.

8. ARIMA: ARIMA, çok popüler bir zaman serisi modelleme yöntemidir. Veri noktaları arasındaki korelasyonu açıklar ve değerler arasındaki farkı dikkate alır. ARIMA'nın geliştirilmiş versiyonu SARIMA'dır (veya mevsimsel ARIMA). Bir sonraki bölümde ARIMA'yı daha detaylı tartışacağız.

3. ARIMA'ya Giriş

Bu bölümde, Auto Arima'yı anlamanıza yardımcı olacak ARIMA'yı kısaca tanıtacağız. "Tam Zaman Serisi Eğitimi" makalesi, ARIMA, (p, q, d) parametreleri, ACF, PACF diyagramları ve özel uygulamaların ayrıntılı bir açıklamasını içerir.

ARIMA çok popüler bir zaman serisi tahmin yöntemidir ve Otomatik Gerilimli Entegre Hareketli Ortalamaların kısaltmasıdır. ARIMA modeli aşağıdaki varsayımlara dayanmaktadır:

  • Veri serisi sabittir Bu, ortalama ve varyansın zaman içinde değişmemesi gerektiği anlamına gelir. Dizi, logaritmik dönüşüm veya farkla sabit hale getirilebilir.
  • Giriş verileri tek değişkenli bir dizi olmalıdır Çünkü ARIMA, gelecekteki değerleri tahmin etmek için geçmiş değerleri kullanır.

ARIMA'nın üç bileşeni vardır: AR (otoregresif terim), I (diferansiyel terim) ve MA (hareketli ortalama terim). Her bileşeni açıklayalım:

  • AR terimi, bir sonraki değeri tahmin etmek için kullanılan geçmiş değeri ifade eder. AR terimi, ARIMA'daki 'p' parametresi ile tanımlanır. "P" nin değeri PACF diyagramı ile belirlenir.
  • MA terimi, gelecekteki değerleri tahmin ederken geçmiş tahmin hatalarının sayısını tanımlar. ARIMA'daki'q 'parametresi MA terimini temsil eder. ACF diyagramı, doğru "q" değerini tanımlamak için kullanılır,
  • Diferansiyel sıra, dizi üzerinde gerçekleştirilen diferansiyel işlemlerin sayısını belirtir.Veriler üzerindeki diferansiyel işlemlerin amacı, onu sabit tutmaktır. ADF ve KPSS gibi testler, sekansın sabit olup olmadığını belirlemek ve d değerini tanımlamaya yardımcı olmak için kullanılabilir.
Dört, ARIMA uygulama adımı

ARIMA modelini uygulamaya yönelik genel adımlar aşağıdaki gibidir:

1. Verileri yükleyin: Bir model oluşturmanın ilk adımı elbette veri setini yüklemektir. 2. Ön işlem: Veri kümesine göre ön işleme adımlarını tanımlayın. Zaman damgaları oluşturma, tarih / saat sütunlarını d türüne dönüştürme ve diziyi tek değişkenli yapma dahil. 3. Sıralı yumuşatma: Varsayımları yerine getirmek için dizinin kararlı olması gerekir. Bu, dizinin durağanlığını kontrol etmeyi ve gerekli dönüşümleri gerçekleştirmeyi içerir. 4. d'nin değerini belirleyin: Sırayı durağan hale getirmek için, fark işleminin gerçekleştirilme sayısı d değeri olarak belirlenecektir. 5. ACF ve PACF diyagramları oluşturun: Bu, ARIMA'nın gerçekleştirilmesindeki en önemli adımdır. ARIMA modelinin girdi parametrelerini belirlemek için ACF PACF diyagramını kullanın. 6. p değerini ve q değerini belirleyin: Önceki adımdaki ACF ve PACF diyagramlarından p ve q değerlerini okuyun. 7. ARIMA modelini takın: Önceki adımlarda hesapladığımız verileri ve parametre değerlerini ARIMA modeline uyacak şekilde kullanın. 8. Doğrulama kümesiyle ilgili tahminlerde bulunun: Gelecekteki değerleri tahmin edin. 9. RMSE'yi hesaplayın: RMSE değerini kontrol ederek modelin performansını kontrol edin ve doğrulama setindeki tahmin edilen ve gerçek değerlerle RMSE değerini kontrol edin. 5. Neden Auto ARIMA'ya ihtiyacımız var?

ARIMA, zaman serisi verilerini tahmin etmek için çok güçlü bir model olmasına rağmen, veri hazırlama ve parametre ayarlama süreci çok zaman alır. ARIMA'yı uygulamadan önce, p ve q değerlerini belirlemek için verileri sabit tutmanız ve daha önce tartışılan ACF ve PACF diyagramlarını kullanmanız gerekir. Auto ARIMA tüm görevi çok basit hale getirir , Çünkü önceki bölümde bahsettiğimiz 3-6 arasındaki adımları kaldırır. AUTO ARIMA'yı uygulamak için izlenmesi gereken adımlar şunlardır:

1. Verileri yükleyin: Bu adım, ARIMA uygulama adımı 1 ile aynıdır. Verileri not defterine yükleyin. 2. Verileri ön işleyin: Giriş tek değişkenli olmalıdır, bu nedenle diğer sütunları silin. 3. Otomatik ARIMA'yı takın: Modeli tek değişkenli bir sıraya oturtun. 4. Doğrulama kümesiyle ilgili tahminlerde bulunun: Doğrulama kümesiyle ilgili tahminlerde bulunun. 5. RMSE'yi hesaplayın: Doğrulama setindeki tahmini değer ve gerçek değerle RMSE değerini kontrol edin.

Gördüğünüz gibi, p ve q seçme adımını tamamen atladık. Ah! Rahat bir nefes alabilir miyim? Bir sonraki bölümde, varsayımsal bir veri seti kullanarak Auto ARIMA'yı uygulayacağız.

Altı, Python ve R uygulaması

Uluslararası Hava Yolcu Veri Kümesini kullanacağız.Bu veri seti, aylık toplam yolcu sayısını (bin olarak) içerir.Ay ve yolcu sayısı olmak üzere iki sütunu vardır. Veri setini aşağıdaki bağlantıdan alabilirsiniz:

https://datamarket.com/data/set/22u3/international-airline-passengers-monthly-totals-in-thousands-jan-49-dec-60#!ds=22u3display=line

İşte aynı problem için R kodu:

7. Auto ARIMA için en iyi parametreler nasıl seçilir

Yukarıdaki kodda, p, q, d kombinasyonunu seçmek yerine, modele uyması için sadece .efit () komutunu kullanmamız gerekir, ancak model bu parametrelerin en iyi kombinasyonunu nasıl belirler? Auto ARIMA, parametrelerin en iyi kombinasyonunu belirlemek için AIC ve BIC değerlerini (kodda görebileceğiniz gibi) üretir. AIC (Akaike Information Criteria) ve BIC (Bayesian Information Criteria) değerleri, modelleri karşılaştırmak için kullanılan değerlendiricilerdir. Bu değerler ne kadar düşükse, model o kadar iyidir.

AIC ve BIC'nin arkasındaki matematikle ilgileniyorsanız, lütfen aşağıdaki bağlantıyı ziyaret edin:

  • AIC:
  • BIC:
8. Son notlar ve daha fazla okuma

Auto ARIMA'nın zaman serisi tahmini yapmanın en kolay yolu olduğunu buldum. Bir kısayolu bilmek iyidir, ancak arkasındaki matematiğe aşina olmak da önemlidir. Bu makalede, ARIMA'nın nasıl çalıştığının ayrıntılarını atladım, ancak lütfen bu makalede verilen bağlantılı makaleyi okuduğunuzdan emin olun. Size kolaylık sağlamak için, işte bağlantı tekrar:

  • Yeni Başlayanlar İçin Zaman Serisi Tahmini (Python) İçin Kapsamlı Bir Kılavuz
  • https://www.analyticsvidhya.com/blog/2016/02/time-series-forecasting-codes-python/
  • Tam zaman serisi eğitimi (R)
  • https://www.analyticsvidhya.com/blog/2015/12/complete-tutorial-time-series-modeling/
  • Yedi zaman serisi tahmin yöntemi (python koduyla)
  • https://www.analyticsvidhya.com/blog/2018/02/time-series-forecasting-methods/

Bu kursta alıştırma sorusunu yapmanızı öneririm: "Zaman Serileri Gerçek Savaş". Ayrıca eğitim kurslarımıza katılabilir ve gerçek savaşa katılabilirsiniz. "Zaman Serisi Tahmini" kursu size öncü bir başlangıç sağlar.

İyi şanslar, lütfen geri bildiriminizi sağlayın ve aşağıdaki yorumlar bölümünde sorular sorun.

Orjinal başlık:

Python ve R'de Auto ARIMA kullanarak Yüksek Performanslı Zaman Serisi Modelleri oluşturun

Orijinal bağlantı:

https://www.analyticsvidhya.com/blog/2018/08/auto-arima-time-series-modeling-python-r/

Çevirmen Profili

Chen Zhiyan, Pekin Jiaotong Üniversitesi'nden iletişim ve kontrol mühendisliği bölümünden mezun oldu ve mühendislik alanında yüksek lisans derecesi aldı. Great Wall Computer Software and System Company'de mühendis ve Datang Microelectronics'te mühendis olarak görev yaptı. Şu anda Beijing Wuyichaoqun Technology Co., Ltd.'nin teknik destekçisidir. Şu anda akıllı çeviri öğretim sistemlerinin işletimi ve bakımı ile uğraşmaktadır ve yapay zeka derin öğrenme ve doğal dil işleme (NLP) konusunda belirli deneyimler edinmiştir. Boş zamanlarımda çeviri oluşturmayı seviyorum. Başlıca çeviri çalışmaları arasında şunlar yer alıyor: IEC-ISO 7816, Irak Petrol Mühendisliği Projesi, Yeni Mali İşler Beyannamesi, vb. Çince-İngilizce çalışması "Yeni Mali Durum Beyannamesi" resmi olarak GLOBAL TIMES'te yayınlandı. Sizinle iletişim kurmayı, paylaşmayı ve birlikte ilerleme kaydetmeyi umarak THU Data Pie platformundaki çeviri gönüllüleri grubuna katılmak için boş zamanımı kullanabilir miyim

- Bitiş -

Tsinghua-Qingdao Veri Bilimi Enstitüsü'nün resmi WeChat kamu platformunu takip edin " THU Veri Pastası "Ve kız kardeş numarası" Veri Pastası THU "Daha fazla ders avantajı ve kaliteli içerik elde edin.

"Tıbbi-endüstriyel bilimsel araştırma veri platformu" ve "Tıbbi-endüstriyel entegre bilimsel araştırma ve yenilik destek planı" yayınlandı
önceki
İtalya'nın Rimini şehrinde düzenlenen Uluslararası Yeşil Enerji ve Çevre Koruma Fuarı, Çin'in su tasarrufu sağlayan ürünleri dikkat çekiyor
Sonraki
Tek kelimeyle kal! Muhabir, Çin'in İspanyollardan özür dilediği haberini verdi ve Jia Tianning öfkeyle geri döndü
2018 Çin Yapay Zeka Yetenek Anketi: Nereden geldiklerini açıklamak için 14 grafik?
120 milyon euro suda ve 3 koçu değiştirmenin faydası yok! Bu Premier Lig takımı erken küme düştü
Lei Jun tarafından bir yıl önce belirlenen bayrak planlanandan önce gerçekleştirildi ve Xiaomi'nin Wuhan genel merkezi gelecekte on binlerce kişiyi işe alacak.
Akademisyen Zhang Bo: Genç bir adamdan beyaz saçlı bir adama, 60 yıllık Mizuki Tsinghua Üniversitesi, zeki yaşamın parlak bir bölümü
Itonun ilk yemek salonunun bugün bir deneme operasyonu var ve ithal gıdaların% 50'si
Messi, 12 yıllık mucize +1 rekorunu kırdı ve Ronaldo'yu geride bıraktı, Miracle Night'tan bir güzel haber daha aldı
Yoshua: Yapay zekayı insan seviyesinde derinlemesine öğrenmenin zorluğu (PPT indirme ile)
Wu Lei maçtan sonra en düşük puana sahip! İki tek vuruş kaybedildi + irfan kaçırıldı, 1 zayıflık adıyla eleştirildi
Dünyanın dört bir yanından iki yüz bilim insanı, 5 yıldır ökaryotik organizmaların yapay sentezinde bir dönüm noktası yarattı.
La Liga Tanrı senaryosu! Barcelona arka arkaya 4 gol kaybetti ve neredeyse alabora oldu, iki süper yıldız başka bir klasik yaratmak için takım oldu
Heavy | Tsinghua Liu Yang ve Deng Li, "Deep Learning in NLP" nin ortak yazarıdır (indirme ektedir)
To Top