میانگین های وزنی زمان چیست و چرا باید به آن اهمیت دهید

ساخت وبلاگ

What Time-Weighted Averages Are and Why You Should Care

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

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

نمونه‌برداری نامنظم از داده‌های سری زمانی فقط سطح دیگری از پیچیدگی را اضافه می‌کند – و رایج‌تر از آن چیزی است که فکر می‌کنید. برای مثال، داده‌های نمونه‌گیری نامنظم و در نتیجه نیاز به میانگین‌های وزن‌دار زمانی، اغلب در موارد زیر رخ می‌دهد:

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

در Timescale، ما همیشه به دنبال راه‌هایی برای آسان‌تر کردن زندگی توسعه‌دهندگان هستیم، به‌خصوص زمانی که آنها با داده‌های سری زمانی کار می‌کنند. برای این منظور، ما hyperfunction ها، توابع جدید SQL را معرفی کردیم که کار با داده های سری زمانی را در PostgreSQL ساده می کند. یکی از این بیش توابع به شما امکان می دهد میانگین های وزنی با زمان را به سرعت و کارآمد محاسبه کنید، بنابراین ساعت ها بهره وری به دست می آورید.

نمونه‌هایی از میانگین‌های وزن‌دار زمانی، نحوه محاسبه آن‌ها، نحوه استفاده از ابرتوابع میانگین‌های وزن‌دار زمانی در TimescaleDB، و چند ایده برای استفاده از آنها برای افزایش بهره‌وری پروژه‌های خود، بدون توجه به دامنه، بخوانید..

اگر می خواهید با استفاده از Hyperfunction Time_weight - و بسیاری دیگر - بلافاصله ، یک سرویس TimescaledB کاملاً مدیریت شده را شروع کنید: یک حساب کاربری ایجاد کنید تا 30 روز آن را به صورت رایگان امتحان کنید. Hyperfunctions در هر سرویس جدید پایگاه داده در TimeScale Forge از قبل بارگذاری شده است ، بنابراین پس از ایجاد یک سرویس جدید ، همه شما قرار است از آنها استفاده کنید.

اگر ترجیح می دهید نمونه های پایگاه داده خود را مدیریت کنید ، می توانید برنامه افزودنی TimeScaledB_ToolKit را در GitHub بارگیری و نصب کنید ، پس از آن می توانید از Time_weight و سایر عملکردهای مختلف استفاده کنید.

سرانجام ، ما عاشق ساختن در عمومی هستیم و به طور مداوم در حال بهبود است:

  • اگر در مورد این پست وبلاگ سؤال یا نظر دارید ، ما در صفحه GitHub ما بحثی را شروع کرده ایم و دوست داریم از شما بشنویم.(و اگر آنچه را که می بینید دوست دارید ، GitHub ⭐ همیشه مورد استقبال و استقبال قرار می گیرید!)
  • شما می توانید نقشه راه آینده ما را در مورد GitHub برای لیستی از ویژگی های پیشنهادی ، و همچنین ویژگی هایی که در حال حاضر اجرا می کنیم و مواردی که امروزه برای استفاده در دسترس هستند مشاهده کنید.

میانگین های وزنی زمان چیست؟

من بیش از 3 سال است که یک توسعه دهنده در Timescale بوده ام و حدود 5 سال در پایگاه داده ها کار کردم ، اما من قبل از آن یک الکتروشیمیست بودم. من به عنوان یک الکتروشیمیست ، من برای تولید کننده باتری کار کردم و نمودارهای زیادی مانند این را دیدم:

Battery discharge curve showing cell voltage on the y-axis and capacity in amp-hours on the x-axis. The curve starts high, decreases relatively rapidly through the exponential zone, then stays relatively constant for a long period through the nominal zone, after which the voltage drops quite rapidly as it reaches its fully discharged state.

به عنوان مثال منحنی تخلیه باتری ، که توصیف می کند باتری چه مدت می تواند چیزی را تأمین کند.(همچنین یک نمونه اصلی از میانگین های دارای وزن زمان لازم است) از https://www. nrel. gov/docs/fy17osti/67809. pdf مشتق شده است

این یک منحنی تخلیه باتری است ، که توصیف می کند که یک باتری چه مدت می تواند چیزی را تأمین کند. محور X ظرفیت را در ساعتهای AMP نشان می دهد ، و از آنجا که این یک تخلیه جریان ثابت است ، محور x واقعاً فقط یک پروکسی برای زمان است. محور y ولتاژ را نشان می دهد ، که میزان توان باتری را تعیین می کند. با ادامه تخلیه باتری ، ولتاژ کاهش می یابد تا زمانی که به جایی برسد که نیاز به شارژ مجدد داشته باشد.

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

اگر بیشتر به منحنی تخلیه نگاه کنید ، متوجه خواهید شد که فقط دو بخش "جالب" وجود دارد:

The same battery discharge curve as in the previous image but with the “interesting bits” circled, namely where the voltage decreases rapidly at the beginning and the end of the discharge curve.

به عنوان مثال منحنی تخلیه باتری ، "بیت های جالب" را صدا می کند (نقاطی در زمان که داده ها به سرعت تغییر می کنند)

این قسمت ها در ابتدا و انتهای تخلیه است که ولتاژ به سرعت تغییر می کند. بین این دو بخش ، آن دوره طولانی در وسط وجود دارد ، جایی که ولتاژ به سختی تغییر می کند:

The same battery discharge curve again, except now the “boring” part of the curve is highlighted, which is the middle section where the voltage hardly changes.

مثال منحنی تخلیه باتری، فراخوانی "بیت های خسته کننده" (نقاط زمانی که داده ها نسبتاً ثابت می مانند)

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

اما، من اغلب در کار با داده ها بهتر از آنها بودم، بنابراین کارهایی مانند برنامه نویسی پتانسیواستات، قطعه ای از تجهیزاتی که باتری را به آن وصل می کنید تا این آزمایش ها را انجام دهید، انجام می دادم.

برای بخش‌های جالب چرخه تخلیه (آن قسمت‌ها در ابتدا و انتهای)، می‌توانیم نمونه پتانسیواستات را با حداکثر نرخ آن، معمولاً یک نقطه در هر 10 میلی‌ثانیه یا بیشتر داشته باشیم. ما نمی‌خواستیم تعداد زیادی از نقاط داده را در طول قطعات طولانی و خسته‌کننده که ولتاژ تغییر نمی‌کند نمونه‌برداری کنیم، زیرا این به معنای صرفه‌جویی در مقدار زیادی داده با مقادیر غیرقابل تغییر و هدر رفتن فضای ذخیره‌سازی است.

برای کاهش داده‌های خسته‌کننده‌ای که باید بدون از دست دادن بیت‌های جالب با آن سروکار داشته باشیم، برنامه را طوری تنظیم می‌کنیم که هر 3 دقیقه یکبار، یا زمانی که ولتاژ به مقدار معقولی تغییر می‌کند، مثلاً بیش از 5 میلی‌ولت، نمونه‌برداری کند.

در عمل، چیزی شبیه به این است:

The same battery discharge curve again, this time with data points superimposed on the image. The data points are spaced close together in the “interesting bits,” where the voltage changes quickly at the beginning and end of the discharge curve. The data points are spaced further apart during the “boring” part in the middle, where the voltage hardly changes at all.

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

با نمونه‌برداری از داده‌ها به این روش، داده‌های بیشتری در قسمت‌های جالب و داده‌های کمتری در بخش میانی خسته‌کننده دریافت می‌کنیم. عالیه!

این به ما اجازه می‌دهد به سؤالات جالب‌تری درباره تغییرات سریع بخش‌های منحنی پاسخ دهیم و تمام اطلاعاتی را که در مورد بخش‌هایی که به آهستگی تغییر می‌کنند - بدون ذخیره کردن داده‌های اضافی، در اختیار ما قرار داد. اما، در اینجا یک سوال وجود دارد: با توجه به این مجموعه داده، چگونه ولتاژ متوسط را در حین تخلیه پیدا کنیم؟

این سوال مهم است زیرا یکی از مواردی بود که می‌توانستیم بین این منحنی تخلیه و منحنی‌های آینده مقایسه کنیم، مثلاً 10 یا 100 سیکل بعد. با بالا رفتن سن باتری، متوسط ولتاژ آن کاهش می یابد و میزان کاهش آن در طول زمان می تواند به ما بگوید که ظرفیت ذخیره سازی باتری در طول چرخه عمر آن چقدر خوب است - و آیا می تواند به محصول مفیدی تبدیل شود.

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

The same battery curve again, with the same data points superimposed and the “interesting bits” circled again, however this time noting that the “interesting bits” shouldn’t count extra even though there are more data points included in the circled area.

به عنوان مثال منحنی تخلیه باتری ، با نقاط داده های مصور نشان می دهد که در حالی که ما داده های بیشتری را در طول بیت های جالب جمع می کنیم ، آنها نباید "اضافی" را حساب کنند.

اگر ما فقط یک میانگین ساده لوحانه را در کل منحنی گرفتیم ، مقدار را در هر نقطه اضافه می کنیم و بر اساس تعداد امتیاز تقسیم می کنیم ، این بدان معنی است که تغییر در نرخ نمونه برداری ما می تواند میانگین محاسبه شده ما را تغییر دهد. حتی اگر اثر اساسی واقعاً یکسان بود!

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

حال ، برخی از افراد می گویند: خوب ، چرا فقط با حداکثر سرعت پتانسیلوستات ، حتی در قسمت های خسته کننده ، نمونه نمی گیریم؟خوب ، این آزمایشات تخلیه واقعاً طولانی شد. آنها 10 تا 12 ساعت طول می کشند ، اما بیت های جالب می توانند از ثانیه یا دقیقه بسیار کوتاه باشند. اگر ما با بالاترین نرخ نمونه برداری کنیم ، هر 10 میلی متر یا بیشتر ، این به معنای سفارش داده های بیشتر برای ذخیره سازی است حتی اگر به سختی از هیچ یک از آن استفاده کنیم! و سفارشات بزرگی داده های بیشتر به معنای هزینه بیشتر ، زمان بیشتر برای تجزیه و تحلیل ، انواع مشکلات است.

بنابراین سوال بزرگ این است: وقتی با نقاط داده های نامنظم فاصله کار می کنیم ، چگونه می توانیم نماینده را بدست آوریم؟

بیایید برای لحظه ای نظری در اینجا بگیریم:

. شما می خواهید از پیش بروید تا ببینید که چگونه از میانگین وزن زمان استفاده می شود ، بیت های ماتی در اینجا به پایان می رسند.)

MATHY BITS: چگونه می توان میانگین وزنی را به دست آورد

بیایید بگوییم ما نکاتی مانند این را داریم:

A graph showing value on the y-axis and time on the x-axis. There are four points: open parens t 1 comma v 1 close parens to open parens t 4 comma v 4 close parens spaced unevenly in time on the graph.

یک مجموعه داده نظری ، به طور نامنظم نمونه برداری سری زمانی

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

اما ، از آنجا که آنها به طور نامنظم فاصله دارند ، ما به راهی برای پاسخگویی به آن نیاز داریم.

یکی از راه های فکر کردن در مورد آن این است که در هر مقطع زمانی ارزش کسب کنید و سپس آن را با کل زمان تقسیم کنید. این امر مانند بدست آوردن مساحت کل در زیر منحنی و تقسیم بر کل زمان Δt خواهد بود.

The same graph as above but with the area under the curve shaded in gray. The area under the curve is drawn by drawing a line through each pair of points and then shading down to the x-axis. The total time spanned by the points from t 1 to t 4 is denoted as Delta T.

منطقه تحت مجموعه داده های سری زمانی نامنظم نمونه برداری

(در این حالت ، ما در حال انجام درون یابی خطی بین نقاط هستیم). بنابراین ، بیایید روی یافتن آن منطقه تمرکز کنیم. منطقه بین دو نقطه اول یک ذوزنقه است:

The same graph as above, except there is a trapezoid shaded in blue bounded on top by the line connecting the first two points and vertical lines connecting the points to the x-axis. The distance between the two points on the x-axis is denoted delta t 1.

یک ذوزنقه که نماینده منطقه در دو نقطه اول است

که واقعاً مستطیل به علاوه مثلث است:

The same graph as the previous, except now the trapezoid, has been divided into a rectangle and a triangle. The rectangle is the height of the first point v 1. The triangle is a right triangle with the line connecting the first two points as the hypotenuse. The distance on the y-axis between the first two points is denoted as delta v 1.

همان ذوزنقه به یک مستطیل و مثلث شکسته شد.

خوب ، بیایید آن منطقه را محاسبه کنیم:

بنابراین فقط برای روشن شدن ، این:

باشه. بنابراین اگر متوجه آن شویم:

شروع delta v_1 = v_2 - v_1 end

ما می توانیم این معادله را به خوبی ساده کنیم:

نکته جالب توجه این است که این روش جدیدی برای فکر کردن در مورد این راه حل به ما می دهد: این میانگین هر جفت از مقادیر مجاور است که تا زمان بین آنها وزن دارد:

همچنین برابر با منطقه مستطیل کشیده شده به نقطه میانی بین V1 و V2 است:

The same graph as the previous, except that now there is a rectangle imposed on the trapezoid. The rectangle is the same width as the others and goes to a height of v 1 plus v 2 over 2.

مساحت ذوزنقه و مستطیل ، که به نقطه میانی بین دو نقطه کشیده شده است ، یکسان است.

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

با کل مساحت زیر منحنی محاسبه شده ، تنها کاری که باید انجام دهیم این است که مبلغ زمان وزن را بر اساس ΔT کلی تقسیم کنیم و میانگین وزن خود را داریم. استراتژی برای تحلیل فاندمنتال...

ما را در سایت استراتژی برای تحلیل فاندمنتال دنبال می کنید

برچسب : نویسنده : سعید شیخ‌زاده بازدید : 50 تاريخ : دوشنبه 8 خرداد 1402 ساعت: 23:20