# انتظارات و پیشبینی
در این سند، سه نوع اصلی پیشبینی در سیستم ما، نحوه امتیازدهی به آنها، و چگونگی ترکیب آنها توضیح داده میشود.
## تفاوت انتظارات و پیشبینی
در سیستم ما، پیشبینی میتواند بیانگر خروجی یک مدل آماری یا باور ذهنی یک کاربر درباره یک مقدار آینده باشد. اگرچه این دو منبع با یکدیگر تفاوت دارند—مدلها بر دادهها و الگوریتمها تکیه دارند، در حالی که کاربران از شهود یا دانش تخصصی استفاده میکنند—نحوه نمایش آنها در سیستم ما یکپارچه است. چه پیشبینی از یک مدل بیاید و چه از یک فرد، میتوان آن را بهصورت یک مقدار عددی (پیشبینی نقطهای)، یک توزیع احتمال (برای نمایش عدمقطعیت)، یا یک گزاره جهتدار ساده (مثلاً احتمال صعود یا نزول) بیان کرد. این قالب یکسان به سیستم ما اجازه میدهد که با هر دو نوع ورودی بهطور یکسان برخورد کند.
در Arenil.com، هدف ما ارائه ابزارهایی انعطافپذیر است که به کاربران امکان دهند انتظارات ذهنی خود را بهسادگی بیان کنند. هدف ما این است که کاربران بتوانند دیدگاههای خود را بهصورت شهودی و طبیعی منتقل کنند، در حالی که این بیانها همچنان از نظر آماری تفسیرپذیر باشند.
برای سادگی، در این سند از اصطلاحات پیشبینی و انتظارات بهصورت مترادف برای هرگونه اظهار نظر درباره یک نتیجه در آینده استفاده میکنیم.
## انواع پیشبینی
در سیستم ما، سه نوع اصلی پیشبینی وجود دارد:
- **پیشبینی نقطهای:** یک مقدار عددی واحد که نتیجهٔ پیشبینیشده را نشان میدهد.
- **پیشبینی جهتدار:** احتمال حرکت نتیجه در یک جهت مشخص (صعود یا نزول) را تعیین میکند.
- **پیشبینی توزیعی:** پیشبینی را بهصورت یک توزیع احتمال توصیف میکند، که هم گرایش مرکزی (مثل میانگین یا میانه) و هم عدمقطعیت (تغییرپذیری) را پوشش میدهد.
علاوه بر انواع اصلی پیشبینی، اطلاعات مرتبط نیز بهطور خودکار استخراج میشود:
- **جهت از پیشبینی نقطهای:** جهت را با مقایسه نقطهٔ پیشبینیشده با آخرین مقدار واقعی بهدست میآوریم. اگر نقطهٔ پیشبینیشده بزرگتر از مقدار قبلی باشد، احتمال صعود را برابر ۱ قرار میدهیم. اگر کمتر باشد، احتمال نزول را برابر ۱ قرار میدهیم. اگر برابر باشد، احتمال ثابتماندن را برابر ۱ قرار میدهیم.
- **نقطه از پیشبینی توزیعی:** میانهٔ توزیع بهعنوان نمایندهٔ نقطهٔ پیشبینیشده استفاده میشود. میانه تخمینی است که به نقاط پرت حساس نیست.
- **جهت از پیشبینی توزیعی:** پس از محاسبه میانه، جهت با همان قاعدهٔ پیشبینی نقطهای (مقایسه با مقدار قبلی) استنتاج میشود.
هر پیشبینی بسته به نوع آن، به یک فرمت استاندارد متنی تبدیل میشود. به این فرمت در تکمیل و ارائه فرمها نیاز خواهیدداشت:
- **پیشبینی نقطهای:** فقط یک مقدار عددی ساده. مثلاً: `125.45`
- **پیشبینی جهتدار:** یک جفت احتمال جداشده با ویرگول. مثلاً: `0.65,0.35` (به معنی ۶۵٪ احتمال صعود و ۳۵٪ احتمال نزول)
- **پیشبینی توزیعی:** نام توزیع بههمراه پارامترها داخل پرانتز. مثلاً: `normal(125.45,10.5)` یا `empirical(120,125,130)`
اپلیکیشن ما از توزیعهای زیر برای نمایش عدمقطعیت پشتیبانی میکند:
- **توزیع نرمال:** این توزیع با میانگین و انحراف معیار مشخص میشود. فرمت آن: `normal(mean, standardDeviation)`
- **توزیع تجربی:** این توزیع روشی انعطافپذیر برای بیان انتظارات آینده است. توزیع تجربی با آرایهای صعودی از صدکها تعریف میشود و از آنها برای ایجاد فواصل احتمال یکنواخت بین کران پایین (پیشفرض 0.001) و کران بالا (پیشفرض 0.999) استفاده میکند. فرمت آن: `empirical(q1,q2,q3,...)`
## نحوه محاسبه امتیازها
پس از مشاهده مقدار واقعی، چندین معیار امتیازدهی برای ارزیابی کیفیت پیشبینی محاسبه میشود.
### 1. امتیاز پیشبینی جهتدار
[Brier Score](https://en.wikipedia.org/wiki/Brier_score) با فرمول زیر محاسبه میشود:
\\[\text{Brier Score} = \frac{1}{3} \left[ \left( p\_{\text{up}} - o\_{\text{up}} \right)^2 + \left( p\_{\text{down}} - o\_{\text{down}} \right)^2 + \left( p\_{\text{constant}} - o\_{\text{constant}} \right)^2 \right]\\]
که در آن \\(p\_{\text{up}}, p\_{\text{down}}, p\_{\text{constant}}\\) احتمالهای پیشبینیشده هستند و \\(o\_{\text{up}}, o\_{\text{down}}, o\_{\text{constant}}\\) نتایج واقعی (۱ اگر رخ داده باشد، در غیر این صورت ۰) هستند.
امتیاز Brier کمتر به معنی پیشبینی بهتر و دقیقتر است.
### 2. امتیاز پیشبینی نقطهای
*خطای قدرمطلق* تفاوت بین مقدار پیشبینیشده و مقدار واقعی را نشان میدهد:
\\[\text{Absolute Error} = |\text{Actual Value} - \text{Predicted Point}|\\]
این معیار ساده و مفید است، بهویژه برای مقایسه عملکرد در یک زمینه مشخص. اما یکی از ایرادات آن، وابستگی به واحد داده است—مثلاً خطای ۱۰ ممکن است در یک کاربرد زیاد و در کاربرد دیگر ناچیز باشد.
*خطای درصدی قدرمطلق (MAPE)* خطا را به صورت درصدی از مقدار واقعی نشان میدهد:
\\[\text{MAPE} = \frac{|\text{Actual Value} - \text{Predicted Point}|}{|\text{Actual Value}|} \times 100\%, \quad \text{Actual Value} \ne 0\\]
این معیار برای درک بزرگی نسبی خطا مفید است و اجازه مقایسه میان دادهها با مقیاسهای مختلف را میدهد. اما زمانی که مقدار واقعی بسیار کوچک یا نزدیک به صفر باشد، ممکن است خطاهای گمراهکننده و بسیار بزرگی تولید کند.
### 3. امتیاز پیشبینی توزیعی
*امتیاز رتبهبندی احتمال پیوسته* (CRPS) دقت کل توزیع پیشبینی را ارزیابی میکند. مقدار کمتر CRPS نشاندهنده پیشبینی دقیقتر است. فرمول آن:
\\[\text{CRPS}(F, x) = \int\_{-\infty}^{\infty} \bigl(F(y) - \mathbf{1}\_{\{y \ge x\}}\bigr)^2 \, dy\\]
که در آن \\(\mathbf{1}\_{\{y \ge x\}} = 1\\) اگر \\(y \ge x\\)، و در غیر این صورت برابر با ۰ است.
برای **توزیع نرمال** با میانگین \\(\mu\\)، انحراف معیار \\(\sigma\\)، و مقدار مشاهدهشده \\(x\\)، CRPS به صورت زیر محاسبه میشود:
\\[\text{CRPS}(x, \mu, \sigma) = \sigma \left[z \left(2\Phi(z)-1\right) + 2\phi(z) - \frac{1}{\sqrt{\pi}}\right]\\]
که در آن \\(z = \frac{x - \mu}{\sigma}\\)، \\(\phi(z)\\) تابع چگالی نرمال استاندارد و \\(\Phi(z)\\) تابع توزیع تجمعی نرمال استاندارد است. در پیادهسازی ما، اگر \\(\sigma = 0\\) باشد، CRPS برابر با خطای مطلق یعنی \\(|x - \mu|\\) است.
برای **توزیع تجربی** با صدکهای صعودی \\(q\_1, q\_2, \ldots, q\_m\\)، انتگرال CRPS با مجموع ریمان تقریبی میشود:
\\[\text{CRPS} \approx \sum\_{i=0}^{N} \bigl(F(y\_i) - \mathbf{1}\_{\{y\_i \ge x\}}\bigr)^2 \, \Delta y,\quad y\_i = \ell + i\,\Delta y,\quad \Delta y = \frac{u - \ell}{N}\\]
که در آن \\(\ell = q\_1 - h\\)، \\(u = q\_m + h\\)، و \\(h = (q\_m - q\_1)/10\\). بازه \\([\ell, u]\\) به \\(N\\) زیربازه مساوی تقسیم شده و از نقطه چپ هر بازه \\(y\_i\\) بهعنوان نقطه نماینده استفاده میشود.
در بیشتر موارد، نتیجه نسبت به انتخاب دقیق \\(\ell\\) و \\(u\\) حساس نیست، چرا که بیرون از بازه صدکها، مقدار تابع انتگرال تقریباً صفر است.
## ترکیب پیشبینیها
سیستم ما پیشبینیهای مختلف را در یک پیشبینی اجماعی ترکیب میکند. روش ترکیب بسته به نوع پیشبینی متفاوت است:
- **ترکیب پیشبینیهای جهتدار:** احتمالهای حرکت صعودی و نزولی از همه پیشبینیها میانگینگیری شده و یک پیشبینی جهتدار جدید ساخته میشود.
- **ترکیب پیشبینیهای نقطهای:** نقاط پیشبینیشده جمعآوری شده و برای ساخت یک پیشبینی توزیعی استفاده میشود.
- **ترکیب پیشبینیهای توزیعی:** ما توزیعهای تجربی فردی را با استفاده از ترکیب خطی وزندار توابع توزیع تجمعی آنها به یک توزیع اجماعی واحد تجمیع میکنیم.