Python-dan istifadə edərək eksponensial hamarlaşdırıcı modellərin yaradılması: sadə eksponent hamarlaşdırma, Holt və Holt-Winters

İlk 12 ayda neçə iPhone XS satılacaq? Elon Musk canlı şouda alaq otu çəkdikdən sonra Tesla-ya tələb nədir? Bu qış isti olacaq? (Kanadada yaşayıram.) Bu problemlərlə maraqlanırsınızsa, üst üstə düzəltmək sizə modellər quraraq gələcəyə baxmaq şansı verir.

Eksponensial hamarlaşdırma metodları əvvəlki müşahidələrə həddən artıq azalan ağırlıq verir. Müşahidələr nə qədər yaxın olsa, çəki o qədər yüksək olardı. Məsələn, son bir aydakı müşahidələri əvvəlki ildəki müşahidələrə nisbətən daha ağır çəkmək mantiqidir.

Əvvəldən bu günə qədər eksponent hamarlama çəkiləri

Bu məqalədə Python və Stats modellərindən istifadə edərək sadə eksponensial hamarlama, Holt və Holt-Winters modellərinin necə yaradılacağı izah olunur. Hər model üçün nümayiş aşağıdakı kimi təşkil olunur:

Statsmodels, bir çox fərqli statistik modelin tətbiqi üçün siniflər və funksiyalar təmin edən bir Python moduludur. Python koduna aşağıdakı kimi gətirməliyik.

statsmodels.tsa.api-dən import ExponentialSmoothing, SimpleExpSmoothing, Holt

Nümunələrimizdəki mənbə məlumatları, 2007-01 - 2017-12 dövrləri arasında ABŞ-da bir şəhərdəki ev satış sayını ehtiva edir.

Daşınmaz əmlak satışı üçün mənbə məlumatları dəsti

Verilərin illərlə dəyişdiyi bir xətt qrafikindən istifadə edin.

df.plot.line (x = 'YEAR_MONTH_SALE_DATE', y = 'COUNT_YEAR_MONTH_SALE_SAMPLE') plt.show ()

10 illik tarixi məlumatlara əsasən (2007-2016) 2017-ci ildə əmlak satışlarını proqnozlaşdıracağıq.

Sadə eksponensial hamarlaşdırma (SES)

SES, açıq bir trend və ya mövsümi bir model olmadan məlumatları proqnozlaşdırmaq üçün yaxşı bir seçimdir. Proqnozlar ağırlıqlı ortalamalardan istifadə etməklə hesablanır, yəni ən böyük çəkilər ən son müşahidələrə, ən kiçik çəkilər isə ən qədim müşahidələrə bağlıdır:

Hamarlaşdırma parametri 0 α 1-dir.

Kilo itkisi nisbəti α düzəldici parametri ilə idarə olunur. Α böyük olduqda (yəni 1-ə yaxın), son müşahidələr daha ağır çəkilir. 2 həddindən artıq vəziyyət var:

  • α = 0: Bütün gələcək dəyərlərin proqnozları, orta metod olaraq bilinən tarixi məlumatların ortalamasıdır (və ya "orta").
  • α = 1: bütün proqnozları statistikanın sadəlövh metod adlandırdığı son müşahidənin dəyərinə qoyun.

Burada sadə eksponensial hamarlanmanın üç variantını edirik:

  1. Fit1-də modeli hamarlaşdırma parametri α = 0.2 ilə açıq şəkildə bildiririk
  2. Fit2-də α = 0.6 seçirik
  3. Fit3-də statistik modellərin avtomatik olaraq bizim üçün optimize edilmiş bir dəyəri tapdığı avtomatik optimallaşdırmadan istifadə edirik. Bu tövsiyə olunan yanaşmadır.
# Sadə eksponensial hamarlaşdırma fit1 = SimpleExpSmoothing (saledata) .fit (smoothing_level = 0.2, optimize = False) fcast1 = fit1.forecast (12) .rename (r '$ \ alpha = 0.2 $') # Action fcast1.plot (marker = 'o', color = 'blue', legend = True) fit1.fittedvalues.plot (marking = 'o', color = 'blue') fit2 = SimpleExpSmoothing (saledata) .fit (smoothing_level = 0.6, optimize = False) fcast2 = fit2.forecast (12) .rename (r '$ \ alpha = 0.6 $') # Action fcast2.plot (marking = 'o', color = 'red', legend = true) fit2.fittedvalues.plot (marking = 'o', color = 'red') fit3 = SimpleExpSmoothing (saledata) .fit () fcast3 = fit3.forecast (12) .rename (r '$ \ alpha =% s $'% fit3.model.params ['smoothing_level) ']) # Action fcast3.plot (marking =' o ', color =' green ', legend = true) fit3.fittedvalues.plot (marking =' o ', color =' green ') plt.show ()

2017-01 - 2017-12 dövrü üçün SES ilə əmlak satış proqnozu.

Sadə eksponensial hamarlama ilə proqnoz

Holt metodu

Holt, 1957-ci ildəki meyllər ilə məlumatların proqnozlaşdırılmasına imkan vermək üçün sadə eksponensial hamarlığı genişləndirdi (aydın tendensiya və mövsümi olmayan məlumatlar üçün həll). Holt metoduna bir proqnoz tənliyi və iki düzəldici tənlik (biri təyyarə üçün, digəri trend üçün) daxildir:

0 ≤ α 1 səviyyə hamarlaşdırma parametri və 0 β * 1 trend hamarlaşdırma parametridir.

Uzun müddətli proqnoz üçün Holt metodu ilə proqnoz sonsuza qədər artacaq və ya azalacaq. Bu vəziyyətdə, proqnozun “vəhşi” olmasının qarşısını almaq üçün 0 <ϕ <1 sönüm parametri olan söndürülmüş trend metodundan istifadə edirik.

Burada da dayanma metodunun üç variantını həyata keçiririk:

  1. Fit1-də modeli hamarlaşdırma parametri α = 0.8, β * = 0.2 ilə açıq şəkildə təqdim edirik.
  2. Fit2-də qatqı Holt modeli əvəzinə eksponent model istifadə edirik (standart parametr).
  3. Fit3-də Holt aşqar modelinin söndürülmüş bir versiyasından istifadə edirik, lakin α = 0.8, β * = 0.2 üçün dəyərlər sabitləndikdə amp sönüm parametrinin optimallaşdırılmasına imkan veririk.
fit1 = Holt (saledata) .fit (smoothing_level = 0.8, smoothing_slope = 0.2, optimize = False) fcast1 = fit1.forecast (12) .rename ("Holt lineer trend") fit2 = Holt (saledata, exponential = True) .fit (smoothing_level = 0.8, smoothing_slope = 0.2, optimized = False) fcast2 = fit2.forecast (12) .rename ("exponential trend") fit3 = Holt (saledata, damped = True) .fit (smoothing_level = 0.8, hamarlaşdırma_slope = 0.2) fcast3 = fit3.forecast (12) .rename ("Əlavə olaraq azalmış trend") fit1.fittedvalues.plot (marker = "o", color = 'blue') fcast1.plot (color = 'blue', marking = "o" , Legend = true) fit2.fittedvalues.plot (marker = "o", color = 'red') fcast2.plot (color = 'red', marker = "o", legend = true) fit3.fittedvalues.plot (marker = "o", color = 'green') fcast3.plot (color = 'green', marking = "o", legend = true) plt.show ()
Dayandıqdan sonra proqnoz verin

Holt-Winters metodu

(Peter Winters Holt-un tələbəsi idi. Holt-Winters metodu əvvəlcə Peter tərəfindən irəli sürülmüş və sonra birlikdə çalışmışdılar. Nə qədər gözəl və möhtəşəm bir əlaqə. Platon Sokratla tanış olduğu kimi.)

Holt-Winters metodu, mövsümi hamarlaşdırma parametri contain olan meyllər və mövsümi məlumatlar üçün uygundur. Bu metodun iki variantı var:

  • Əlavə metodu: Mövsümi dalğalanmalar seriyada təxminən sabitdir.
  • Çarpan üsul: mövsümi dalğalanmalar seriyanın səviyyəsinə nisbətdə dəyişir.

Burada bir trend komponenti və bir mövsüm komponenti olan tam Holt-Winters metodunu işlədirik. Statsmodels aşağıdakı nümunələr daxil olmaqla bütün kombinasiyalara icazə verir:

  1. Fit1-də aşqar trendini, season_length = 4 dövrünün aşqar mövsümünü və Box-Cox çevrilməsini istifadə edirik.
  2. Fit2-də aşqar tendensiyasından, season_length = 4 dövrünün vurma mövsümündən və Box-Cox çevrilməsindən istifadə edirik.
  3. Fit3-də aşqar sönümlü tendensiyanı, season_length = 4 dövrünün aşqar mövsümi meylini və Box-Cox çevrilməsini istifadə edirik.
  4. Fit4-də əlavə olaraq sönmüş bir trend, season_length = 4 ilə bir çarpma mövsümi dövrləri və bir Box-Cox çevrilməsindən istifadə edirik.
fit1 = ExponentialSmoothing (saledata, seasonal_periods = 4, trend = 'add', seasonal = 'add'). fit (use_boxcox = True) fit2 = ExponentialSmoothing (saledata, seasonal_periods = 4, trend = 'add', seasonal = 'mul'). fit (use_boxcox = True) fit3 = ExponentialSmoothing (saledata, seasonal_periods = 4, trend = 'add', seasonal = 'add', damped = True) .fit (use_boxcox = True) fit4 = ExponentialSmoothing (saledata, seasonal_periods = 4, trend = 'əlavə et', mövsümi = 'mul', söndürülmüş = Doğru). uyğun (use_boxcox = Doğru)
fit1.fittedvalues.plot (stil = '-', color = 'red') fit2.fittedvalues.plot (style = '-', color = 'green') fit1.forecast (12) .plot (style = '-' , marker = 'o', color = 'red', legend = True) fit2.forecast (12) .plot (stil = '-', marker = 'o', color = 'green', legend = True) plt. show () print ("Əlavə və vurma mövsümü ilə Holt-Winters metodu ilə satış proqnozu.")
Holt-Winters metodundan istifadə etməklə əmlak satışının proqnozlaşdırılması əlavə və vurma mövsümi ilə

Xülasə olaraq, 3 üst üstə düzəldici model üçün mexanika və python kodu üzərində işlədik. Aşağıdakı cədvəldə göstərildiyi kimi, məlumatlarınız üçün uyğun bir model seçmək üçün bir metod təqdim edirəm.

Eksponent ekspozisiya üsulu

Eksponensial hamarlaşdırma metodlarının müxtəlif komponent formaları üçün hamarlaşdırma parametrlərinin xülasəsi.

Hamarlaşdırma parametrləri

Eksponensial hamarlaşdırma bu gün sənayedə ən çox istifadə olunan və uğurlu proqnozlaşdırma metodlarından biridir. Pərakəndə satışlar, turistlərin gəlişi, elektrik enerjisinə tələb və ya satış artımı necə proqnozlaşdırıla bilər? Eksponensial hamarlaşdırma, gələcəyinizi gözləmək üçün lazım olan super güclərdən biridir.