میانگین حرکت سه

ساخت وبلاگ

[6. 4. 0] در 6. 4. 0 مستهلک شد. میانگین تجمع در حال حرکت به نفع تجمع عملکرد کلی تر در حال حرکت است. تجمع عملکرد جدید در حال حرکت ، تمام عملکردهای مشابهی را با تجمع متوسط متحرک فراهم می کند ، اما همچنین انعطاف پذیری بیشتری را فراهم می کند.

با توجه به یک سری داده های سفارش داده شده ، میانگین تجمع در حال حرکت یک پنجره را در سراسر داده ها می کشد و مقدار متوسط آن پنجره را منتشر می کند. به عنوان مثال ، با توجه به داده ها [1 ، 2 ، 3 ، 4 ، 5 ، 6 ، 7 ، 8 ، 9 ، 10] ، می توانیم یک میانگین متحرک ساده را با اندازه ویندوز 5 به شرح زیر محاسبه کنیم:

  • (1 + 2 + 3 + 4 + 5) / 5 = 3
  • (2 + 3 + 4 + 5 + 6) / 5 = 4
  • (3 + 4 + 5 + 6 + 7) / 5 = 5
  • و غیره

میانگین حرکت یک روش ساده برای صاف کردن داده های متوالی است. میانگین حرکت به طور معمول برای داده های مبتنی بر زمان مانند قیمت سهام یا معیارهای سرور اعمال می شود. از هموار سازی می توان برای از بین بردن نوسانات فرکانس بالا یا سر و صدای تصادفی استفاده کرد ، که باعث می شود روند فرکانس پایین تر به راحتی تجسم شود ، مانند فصلی.

نحو

تجمع Moving_avg به نظر می رسد در انزوا:

جدول 59. پارامترهای Moving_avg

مسیر به متریک مورد علاقه (برای اطلاعات بیشتر به Syntax Buckets_Path مراجعه کنید

مدل وزن متوسط در حال حرکت که مایل به استفاده از آن هستیم

خط مشی اعمال در هنگام یافتن شکاف در داده ها. به مقابله با شکاف در داده ها مراجعه کنید.

اندازه پنجره برای "اسلاید" در سراسر هیستوگرام.

اگر مدل باید از نظر الگوریتمی به حداقل برسد. برای جزئیات بیشتر به حداقل رساندن مراجعه کنید

برای اکثر مدل ها نادرست است

تنظیمات خاص مدل ، محتواهایی که بسته به مدل مشخص شده متفاوت است.

تجمع MoveM_AVG باید در داخل یک هیستوگرام یا تجمع Date_HiStogram تعبیه شود. آنها می توانند مانند هر تجمع متریک دیگری تعبیه شوند:

ارسال /_search "date_histogram":<"field": "date", "calendar_interval": "1M">، "Aggs":<"the_sum": <"sum": <"field": "price">>، "the_movavg":<"moving_avg": <"buckets_path": "the_sum">>>>>>

Date_histogram به نام "My_date_histo" در قسمت "Timestamp" با فواصل یک ماهه ساخته شده است

یک متریک جمع برای محاسبه مجموع یک میدان استفاده می شود. این می تواند هر متریک باشد (جمع ، حداقل ، حداکثر و غیره)

سرانجام ، ما یک تجمع Moving_avg را مشخص می کنیم که از متریک "The_Sum" به عنوان ورودی آن استفاده می کند.

میانگین های متحرک با مشخص کردن یک هیستوگرام یا date_histogram در یک زمینه ساخته می شوند. سپس می توانید به صورت اختیاری معیارهای عادی مانند مبلغ ، در داخل آن هیستوگرام اضافه کنید. سرانجام ، Moving_avg در داخل هیستوگرام تعبیه شده است. سپس از پارامتر Buckets_Path برای "اشاره" در یکی از معیارهای خواهر و برادر در داخل هیستوگرام استفاده می شود (برای توصیف نحو برای Buckets_Path ، به Syntax Buckets_Path مراجعه کنید.

یک پاسخ مثال از تجمع فوق ممکن است به نظر برسد:

 <"took": 11, "timed_out": false, "_shards": . "hits": . "aggregations": <"my_date_histo": <"buckets": [ <"key_as_string": "2015/01/01 00:00:00", "key": 1420070400000, "doc_count": 3, "the_sum": <"value": 550.0>>, <"key_as_string": "2015/02/01 00:00:00", "key": 1422748800000, "doc_count": 2, "the_sum": <"value": 60.0>، "the_movavg":<"value": 550.0>>, <"key_as_string": "2015/03/01 00:00:00", "key": 1425168000000, "doc_count": 2, "the_sum": <"value": 375.0>، "the_movavg":<"value": 305.0>> ]>>>

مدلها

تجمع Moving_AVG شامل چهار مدل متوسط در حال حرکت است. تفاوت اصلی این است که چگونه مقادیر موجود در پنجره وزن می شوند. با توجه به اینکه داده ها در پنجره "قدیمی تر" می شوند ، ممکن است وزن متفاوتی داشته باشند. این میانگین نهایی آن پنجره را تحت تأثیر قرار می دهد.

مدل ها با استفاده از پارامتر مدل مشخص می شوند. برخی از مدل ها ممکن است پیکربندی های اختیاری داشته باشند که در داخل پارامتر تنظیمات مشخص شده اند.

ساده

مدل ساده مجموع تمام مقادیر موجود در پنجره را محاسبه می کند ، سپس بر اساس اندازه پنجره تقسیم می شود. این یک میانگین حسابی ساده از پنجره است. مدل ساده هیچ وزن وابسته به زمان را انجام نمی دهد ، به این معنی که مقادیر یک میانگین متحرک ساده تمایل به "تاخیر" در پشت داده های واقعی دارند.

ارسال /_search<"size": 0, "aggs": <"my_date_histo": <"date_histogram": <"field": "date", "calendar_interval": "1M">، "Aggs":<"the_sum": <"sum": <"field": "price">>، "the_movavg":<"moving_avg": <"buckets_path": "the_sum", "window": 30, "model": "simple">>>>>>

یک مدل ساده تنظیمات خاصی برای پیکربندی ندارد

اندازه پنجره می تواند رفتار میانگین متحرک را تغییر دهد. به عنوان مثال ، یک پنجره کوچک ("پنجره": 10) داده ها را از نزدیک ردیابی می کند و فقط نوسانات مقیاس کوچک را صاف می کند:

movavg 10window

شکل 3. میانگین حرکت با پنجره اندازه 10

در مقابل ، یک میانگین متحرک ساده با پنجره بزرگتر ("پنجره": 100) همه نوسانات فرکانس بالاتر را صاف می کند و فقط روند کم با فرکانس پایین و طولانی مدت باقی می ماند. همچنین با مقدار قابل توجهی تمایل به "تاخیر" از داده های واقعی دارد:

movavg 100window

شکل 4. میانگین حرکت با پنجره اندازه 100

خطی

مدل خطی وزن خطی را به نقاط موجود در این سری اختصاص می دهد ، به گونه ای که داده های "قدیمی تر" (به عنوان مثال آنهایی که در ابتدای پنجره هستند) مبلغ خطی کمتری را به میانگین کل ارائه می دهند. وزن خطی به کاهش "تاخیر" در پشت داده ها کمک می کند ، زیرا نقاط قدیمی تر تأثیر کمتری دارند.

ارسال /_search<"size": 0, "aggs": <"my_date_histo": <"date_histogram": <"field": "date", "calendar_interval": "1M">، "Aggs":<"the_sum": <"sum": <"field": "price">>، "the_movavg":<"moving_avg": <"buckets_path": "the_sum", "window": 30, "model": "linear">>>>>>

یک مدل خطی تنظیمات خاصی برای پیکربندی ندارد

مانند مدل ساده ، اندازه پنجره می تواند رفتار میانگین متحرک را تغییر دهد. به عنوان مثال ، یک پنجره کوچک ("پنجره": 10) داده ها را از نزدیک ردیابی می کند و فقط نوسانات مقیاس کوچک را صاف می کند:

linear 10window

شکل 5. میانگین حرکت خطی با پنجره اندازه 10

در مقابل ، یک میانگین متحرک خطی با پنجره بزرگتر ("پنجره": 100) تمام نوسانات فرکانس بالاتر را صاف می کند و تنها روند کم با فرکانس پایین و طولانی مدت باقی می ماند. همچنین تمایل به "تاخیر" از داده های واقعی با مقدار قابل توجهی دارد ، اگرچه به طور معمول کمتر از مدل ساده است:

linear 100window

شکل 6. میانگین حرکت خطی با پنجره اندازه 100

ویرایش EWMA (به صورت نمایی وزن دار).

مدل ewma (معروف به "تک نمایی") شبیه مدل خطی است، با این تفاوت که نقاط داده قدیمی به طور نمایی کمتر از اهمیت خطی کمتر می شوند. سرعت کاهش اهمیت را می توان با تنظیم آلفا کنترل کرد. مقادیر کوچک باعث می شود وزن به آرامی کاهش یابد، که هموارسازی بیشتری را فراهم می کند و بخش بزرگتری از پنجره را در نظر می گیرد. مقادیر بزرگتر باعث کاهش سریع وزن می شود که تاثیر مقادیر قدیمی تر را بر میانگین متحرک کاهش می دهد. این باعث می شود میانگین متحرک داده ها را با دقت بیشتری دنبال کند، اما هموارسازی کمتری دارد.

مقدار پیش فرض آلفا 0. 3 است و تنظیم هر شناوری از 0-1 را می پذیرد.

مدل EWMA را می توان به حداقل رساند

ارسال /_search<"size": 0, "aggs": <"my_date_histo": <"date_histogram": <"field": "date", "calendar_interval": "1M">، "Aggs":<"the_sum": <"sum": <"field": "price">>، "the_movavg":<"moving_avg": <"buckets_path": "the_sum", "window": 30, "model": "ewma", "settings": <"alpha": 0.5>>>>>>>

single 0.2alpha

شکل 7. EWMA با پنجره اندازه 10، آلفا = 0. 2

single 0.7alpha

شکل 8. EWMA با پنجره اندازه 10، آلفا = 0. 7

Holt-Linearedit

مدل هولت (معروف به "نمایی مضاعف") یک عبارت نمایی دوم را شامل می شود که روند داده ها را دنبال می کند. زمانی که داده ها دارای روند خطی زیربنایی هستند، تک نمایی عملکرد خوبی ندارد. مدل نمایی دوگانه دو مقدار را در داخل محاسبه می کند: یک "سطح" و یک "روند".

محاسبه سطح مشابه ewma است و نمای وزنی نمایی از داده ها است. تفاوت در این است که به جای مقدار خام از مقدار هموار شده قبلی استفاده می شود که به آن اجازه می دهد نزدیک به سری اصلی بماند. محاسبه روند به تفاوت بین مقدار فعلی و آخرین مقدار (به عنوان مثال شیب یا روند داده های هموار) نگاه می کند. ارزش روند نیز به صورت نمایی وزن داده می شود.

ارزش ها با ضرب مؤلفه های سطح و روند تولید می شوند.

مقدار پیش فرض آلفا 0. 3 و بتا 0. 1 است. تنظیمات هر شناوری از 0-1 را می پذیرند.

مدل Holt-Linear را می توان به حداقل رساند

ارسال /_search<"size": 0, "aggs": <"my_date_histo": <"date_histogram": <"field": "date", "calendar_interval": "1M">، "Aggs":<"the_sum": <"sum": <"field": "price">>، "the_movavg":<"moving_avg": <"buckets_path": "the_sum", "window": 30, "model": "holt", "settings": <"alpha": 0.5, "beta": 0.5>>>>>>>

در عمل، مقدار آلفا در حالت هولت بسیار شبیه به ewma رفتار می کند: مقادیر کوچک هموارسازی بیشتر و تاخیر بیشتری ایجاد می کنند، در حالی که مقادیر بزرگ تر ردیابی نزدیک تر و تاخیر کمتری ایجاد می کنند. ارزش بتا اغلب به سختی قابل مشاهده است. مقادیر کوچک بر روندهای بلندمدت (مانند یک روند خطی ثابت در کل سری) تأکید دارند، در حالی که مقادیر بزرگتر بر روندهای کوتاه مدت تأکید دارند. هنگامی که مقادیر را پیش بینی می کنید، این امر آشکارتر می شود.

double 0.2beta

شکل 9. میانگین متحرک خطی با پنجره با اندازه 100، آلفا = 0. 5، بتا = 0. 2

double 0.7beta

شکل 10. میانگین متحرک خطی با پنجره با اندازه 100، آلفا = 0. 5، بتا = 0. 7

Holt-Wintersedit

مدل Holt_winters (با نام مستعار "سه گانه نمایی") یک اصطلاح نمایی سوم را شامل می شود که جنبه فصلی داده های شما را ردیابی می کند. بنابراین این تجمع بر اساس سه مؤلفه: "سطح" ، "روند" و "فصلی" صاف می شود.

محاسبه سطح و روند با هولت یکسان است. محاسبه فصلی به تفاوت بین نقطه فعلی و نکته یک دوره زودتر نگاه می کند.

Holt-Winters نیاز به دستکاری کمی بیشتر از سایر میانگین های متحرک دارد. شما باید "تناوب" داده های خود را مشخص کنید: به عنوان مثالاگر داده های شما هر 7 روز یکبار روندهای چرخه ای داشته باشد ، دوره را تعیین می کنید: 7. به همین ترتیب اگر یک روند ماهانه وجود داشته باشد ، آن را به 30 تنظیم می کنید. در حال حاضر هیچ تشخیص تناوبی وجود ندارد ، اگرچه این برنامه برای پیشرفت های آینده برنامه ریزی شده است.

دو نوع هولت وینتر وجود دارد: افزودنی و ضرب.

ویرایش "شروع سرد"

متأسفانه ، به دلیل ماهیت هولت وینتر ، به دو دوره داده برای "راه اندازی" الگوریتم نیاز دارد. این بدان معنی است که پنجره شما همیشه باید حداقل دو برابر اندازه دوره شما باشد. اگر اینطور نباشد ، یک استثنا پرتاب خواهد شد. همچنین این بدان معناست که هولت برنده ها برای سطل های دوره 2 * اول ارزشی منتشر نمی کنند. الگوریتم فعلی برگشتی ندارد.

triple untruncated

شکل 11. هولت-برنده ها که شروع "سرماخوردگی" را نشان می دهند که هیچ مقداری از آن ساطع نمی شود

از آنجا که "شروع سرد" آنچه را که میانگین متحرک به نظر می رسد ، مبهم می کند ، بقیه تصاویر Holt-Winters کوتاه می شوند تا "شروع سرد" را نشان ندهند. فقط توجه داشته باشید که این همیشه در ابتدای میانگین های متحرک شما حضور خواهد داشت!

افزودنی Holt-Wintersedit

فصلی افزودنی پیش فرض است. همچنین می توان با تنظیم "نوع": "اضافه" مشخص شد. این تنوع زمانی ترجیح داده می شود که تأثیر فصلی به داده های شما افزودنی باشد. به عنوان مثال. شما به سادگی می توانید اثر فصلی را برای "تجزیه و تحلیل کردن" داده های خود در یک روند مسطح کم کنید.

مقادیر پیش فرض آلفا و گاما 0. 3 است در حالی که بتا 0. 1 است. تنظیمات هر شناور را از 0-1 فراگیر می پذیرند. مقدار پیش فرض دوره 1 است.

مدل Winters افزودنی افزودنی را می توان به حداقل رساند

ارسال /_search<"size": 0, "aggs": <"my_date_histo": <"date_histogram": <"field": "date", "calendar_interval": "1M">، "Aggs":<"the_sum": <"sum": <"field": "price">>، "the_movavg":<"moving_avg": <"buckets_path": "the_sum", "window": 30, "model": "holt_winters", "settings": <"type": "add", "alpha": 0.5, "beta": 0.5, "gamma": 0.5, "period": 7>>>>>>>

triple

شکل 12. Holt-Winters میانگین حرکت با پنجره اندازه 120 ، آلفا = 0. 5 ، بتا = 0. 7 ، گاما = 0. 3 ، دوره = 30

ضرب و شتم چند برابر

ضرب با تنظیم "نوع": "mult" مشخص می شود. این تنوع زمانی ترجیح داده می شود که تأثیر فصلی در برابر داده های شما ضرب شود. به عنوان مثال. اگر تأثیر فصلی X5 داده باشد ، به جای اینکه به آن اضافه شود.

مقادیر پیش فرض آلفا و گاما 0. 3 است در حالی که بتا 0. 1 است. تنظیمات هر شناور را از 0-1 فراگیر می پذیرند. مقدار پیش فرض دوره 1 است.

مدل ضربی Holt-Winters را می توان به حداقل رساند

Multiplicative Holt-Winters با تقسیم هر نقطه داده بر مقدار فصلی کار می کند. اگر هر یک از داده های شما صفر باشد یا شکاف هایی در داده ها وجود داشته باشد، مشکل ساز است (زیرا این امر باعث تقسیم بر صفر می شود). برای مبارزه با این، Mult Holt-Winters همه مقادیر را با مقدار بسیار کمی (1*1 0-10) اضافه می کند تا همه مقادیر غیر صفر باشند. این روی نتیجه تأثیر می گذارد، اما فقط به میزان کم. اگر داده های شما غیرصفر است، یا ترجیح می دهید وقتی با صفر مواجه می شوید NaN را ببینید، می توانید این رفتار را با pad: false غیرفعال کنید.

ارسال /_search<"size": 0, "aggs": <"my_date_histo": <"date_histogram": <"field": "date", "calendar_interval": "1M">، "Aggs":<"the_sum": <"sum": <"field": "price">>، "the_movavg":<"moving_avg": <"buckets_path": "the_sum", "window": 30, "model": "holt_winters", "settings": <"type": "mult", "alpha": 0.5, "beta": 0.5, "gamma": 0.5, "period": 7, "pad": true>>>>>>>

پیش بینی ویرایش

این عملکرد در پیش نمایش فنی است و ممکن است در نسخه های بعدی تغییر یا حذف شود. Elastic بهترین تلاش را برای رفع هرگونه مشکل به کار می گیرد، اما ویژگی های پیش نمایش فنی مشمول پشتیبانی SLA ویژگی های رسمی GA نیستند.

همه مدل های میانگین متحرک از یک حالت «پیش بینی» پشتیبانی می کنند، که با توجه به میانگین متحرک هموار فعلی، تلاش می کند به آینده تعمیم یابد. بسته به مدل و پارامتر، این پیش بینی ها ممکن است دقیق باشند یا نباشند.

پیش بینی ها با افزودن یک پارامتر پیش بینی به هر تجمع میانگین متحرک فعال می شوند و تعداد پیش بینی هایی را که می خواهید به انتهای مجموعه اضافه کنید، مشخص می کند. این پیش بینی ها در همان فاصله زمانی سطل های شما قرار می گیرند:

ارسال /_search<"size": 0, "aggs": <"my_date_histo": <"date_histogram": <"field": "date", "calendar_interval": "1M">، "Aggs":<"the_sum": <"sum": <"field": "price">>، "the_movavg":<"moving_avg": <"buckets_path": "the_sum", "window": 30, "model": "simple", "predict": 10>>>>>>

مدل های ساده، خطی و ewma همگی پیش بینی های «مسطح» تولید می کنند: آنها اساساً روی میانگین آخرین مقدار در سری همگرا می شوند و یک تخت را تولید می کنند:

simple prediction

شکل 13. میانگین متحرک ساده با پنجره اندازه 10، پیش بینی = 50

در مقابل، مدل هولت می تواند بر اساس روندهای ثابت محلی یا جهانی برون یابی کند. اگر مقدار بتای بالایی را تعیین کنیم، می توانیم بر اساس روندهای ثابت محلی برون یابی کنیم (در این مورد پیش بینی ها به سمت پایین می روند، زیرا داده های پایان سری در جهت نزولی بودند):

double prediction local

شکل 14. میانگین متحرک خطی با پنجره با اندازه 100، پیش بینی = 20، آلفا = 0. 5، بتا = 0. 8

در مقابل، اگر یک بتا کوچک را انتخاب کنیم، پیش بینی ها بر اساس روند ثابت جهانی است. در این سری، روند جهانی اندکی مثبت است، بنابراین پیش بینی یک چرخش شدید را انجام می دهد و یک شیب مثبت را آغاز می کند:

double prediction global

شکل 15. میانگین متحرک دوگانه نمایی با پنجره اندازه 100، پیش بینی = 20، آلفا = 0. 5، بتا = 0. 1

مدل Holt_Winters پتانسیل ارائه بهترین پیش بینی ها را دارد ، زیرا نوسانات فصلی را در مدل نیز در بر می گیرد:

triple prediction

شکل 16. Holt-Winters میانگین حرکت با پنجره اندازه 120 ، پیش بینی = 25 ، آلفا = 0. 8 ، بتا = 0. 2 ، گاما = 0. 7 ، دوره = 30

به حداقل رساندن

برخی از مدل ها (EWMA ، Holt-Linear ، Holt-Winters) برای پیکربندی یک یا چند پارامتر نیاز دارند. انتخاب پارامتر می تواند مشکل و گاه غیر شهری باشد. علاوه بر این ، انحرافات کوچک در این پارامترها گاهی اوقات می تواند تأثیر چشمگیری بر میانگین حرکت خروجی داشته باشد.

به همین دلیل ، سه مدل "تنظیم" می توانند از نظر الگوریتمی به حداقل برسند. به حداقل رساندن فرآیندی است که پارامترها تا زمانی که پیش بینی های تولید شده توسط مدل از نزدیک با داده های خروجی مطابقت داشته باشند ، پیچیده می شوند. به حداقل رساندن کامل نیست و می تواند مستعد ابتلا به بیش از حد باشد ، اما اغلب نتایج بهتری نسبت به تنظیم دستی می دهد.

به حداقل رساندن به طور پیش فرض برای EWMA و HOLT_LINEAR غیرفعال است ، در حالی که به طور پیش فرض برای Holt_winters فعال می شود. به حداقل رساندن بیشترین مفید برای Winters است ، زیرا به بهبود دقت پیش بینی ها کمک می کند. EWMA و Holt-Linear پیش بینی کننده های خوبی نیستند و بیشتر برای هموار سازی داده ها مورد استفاده قرار می گیرند ، بنابراین به حداقل رساندن در این مدل ها کمتر مفید است.

به حداقل رساندن از طریق پارامتر Minimize فعال و غیرفعال می شود:

ارسال /_search<"size": 0, "aggs": <"my_date_histo": <"date_histogram": <"field": "date", "calendar_interval": "1M">، "Aggs":<"the_sum": <"sum": <"field": "price">>، "The_Movavg": "تنظیمات":<"period": 7>>>>>>>

به حداقل رساندن با پارامتر Minimize فعال می شود

در صورت فعال شدن ، به حداقل رساندن مقادیر بهینه برای آلفا ، بتا و گاما پیدا می شود. کاربر هنوز باید مقادیر مناسبی را برای پنجره ، دوره و نوع ارائه دهد.

به حداقل رساندن با اجرای یک فرآیند تصادفی به نام آنیل سازی شبیه سازی شده کار می کند. این فرایند معمولاً یک راه حل خوب ایجاد می کند ، اما برای یافتن مطلوب جهانی تضمین نمی شود. همچنین به مقداری از قدرت محاسباتی اضافی نیاز دارد ، زیرا مدل باید چندین بار دوباره اجرا شود زیرا مقادیر در حال تغییر هستند. زمان اجرا به حداقل رساندن به اندازه پنجره پردازش شده خطی است: پنجره های بیش از حد بزرگ ممکن است باعث تأخیر شود.

سرانجام ، به حداقل رساندن مدل به آخرین مقادیر N ، جایی که n = پنجره است ، متناسب است. این به طور کلی پیش بینی های بهتری را در آینده ایجاد می کند ، زیرا پارامترها در انتهای سریال تنظیم می شوند. با این حال ، می تواند میانگین های متحرک متناسب با فقیرتر را در ابتدای سریال ایجاد کند.

فارکس پرشین...
ما را در سایت فارکس پرشین دنبال می کنید

برچسب : نویسنده : الیزابت امینی بازدید : <-PostHit-> تاريخ : شنبه 21 مرداد 1402 ساعت: 17:41