این ویژنت روند شاخص های جمع آوری را در Coinr توصیف می کند.
معرفی
تجمع عملکرد ترکیب چندین شاخص در یک مقدار است. بسیاری از شاخص های کامپوزیت دارای یک ساختار سلسله مراتبی هستند ، بنابراین در عمل این اغلب شامل تجمع های متعدد است ، به عنوان مثال گروه های جمع کننده شاخص ها به مقادیر کل ، سپس جمع آوری آن مقادیر در مصالح سطح بالاتر و غیره تا مقدار شاخص نهایی.
تجمع تقریباً همیشه باید روی داده های عادی انجام شود ، مگر اینکه شاخص ها در مقیاس های بسیار مشابه باشند. در غیر این صورت تأثیر نسبی شاخص ها بسیار ناهموار خواهد بود.
البته لازم نیست که به هیچ وجه شاخص ها را جمع کنید ، و ممکن است با یک صفحه امتیاز راضی باشید ، یا شاید به جای یک شاخص واحد ، در چندین ارزش کل جمع شوید. با این حال ، در نظر بگیرید که تجمع نباید داده های شاخص زیرین را جایگزین کند ، بلکه آن را تکمیل می کند.
به طور کلی ، شاخص های جمع کننده نوعی فشرده سازی اطلاعات است - شما در تلاش هستید تا بسیاری از مقادیر شاخص را در یک ترکیب کنید و به ناچار اطلاعات از بین می روند (این مقاله اخیر ممکن است مورد توجه باشد). تا زمانی که این مورد در ذهن داشته باشد ، و داده های شاخص در امتداد مقادیر کل جانبی ارائه و در دسترس قرار می گیرند ، سپس مقادیر کل (شاخص) می توانند شاخص ها را تکمیل کرده و به عنوان ابزاری مفید برای جمع بندی داده های اساسی و شناسایی روندها و الگوهای کلی استفاده شوند. واد
وزن سازی
بسیاری از روشهای تجمع شامل نوعی وزن ، یعنی ضرایب است که وزن نسبی شاخص ها/مصالح موجود در جمع را تعریف می کند. برای جمع آوری ، وزن ها ابتدا باید مشخص شوند ، اما برای تنظیم موثر وزن لازم است که جمع شود.
این معضل مرغ و تخم مرغ به بهترین وجه با جمع شدن در ابتدا با مجموعه آزمایشی از وزنه ها ، شاید وزن مساوی ، سپس دیدن اثرات وزنه برداری و ایجاد هرگونه تنظیم وزن لازم حل می شود.
رویکرد
به معنای
ساده ترین و استفاده گسترده ترین رویکرد برای جمع آوری میانگین حسابی وزنی است. با بیان شاخص ها به عنوان \ (x_i \ in \\) ، میانگین حسابی وزنی به این صورت محاسبه می شود:
جایی که \ (w_i \) وزنهای مربوط به هر \ (x_i \) هستند. در اینجا ، اگر وزنه ها برای جمع بندی به 1 انتخاب شوند ، به مقدار وزنی شاخص ها ساده می شود. در هر صورت ، میانگین وزنی با مجموع وزن ها مقیاس می شود ، بنابراین وزنه ها نسبت به یکدیگر عمل می کنند.
بدیهی است ، اگر این شاخص بیش از دو سطح داشته باشد ، تجمع های متعدد وجود خواهد داشت. به عنوان مثال ، ممکن است سه گروه از شاخص ها وجود داشته باشد که سه امتیاز جداگانه را نشان می دهد. این نمرات کل سپس برای محاسبه شاخص کلی به میانگین حسابی وزنی در بالا بازگردانده می شوند.
میانگین حسابی دارای "جبران کامل" است ، به این معنی که نمره بالا در یک شاخص کاملاً نمره پایین را در دیگری جبران می کند. در یک مثال ساده با دو شاخص بین 0 تا 10 و وزن برابر ، به یک واحد با نمرات (0 ، 10) نمره مشابه یک واحد با نمرات (5 ، 5) داده می شود - هر دو نمره 5 دارند.
یک جایگزین میانگین هندسی وزنی است که از محصول شاخص ها به جای جمع استفاده می کند.
این به سادگی محصول هر شاخص به قدرت وزن آن است ، همه قدرت معکوس مجموع وزنها را بالا می برد.
میانگین هندسی نسبت به میانگین حسابی کمتر جبران کننده است - مقادیر کم در یک شاخص فقط مقادیر بالایی را در دیگران جایگزین می کند. به همین دلیل ، ممکن است میانگین هندسی گاهی اوقات ترجیح داده شود که شاخص ها "ملزومات" را نشان دهند. یک مثال ممکن است کیفیت زندگی باشد: ممکن است امید به زندگی طولانی تر محدودیت های شدید در آزادی های شخصی را جبران کند.
نوع سوم میانگین ، در واقع سومین وسیله به اصطلاح فیثاغورین میانگین هارمونیک وزنی است. این از میانگین متقابل شاخص ها استفاده می کند:
میانگین هارمونیک کمترین جبران کننده سه وسیله است ، حتی کمتر از میانگین هندسی. این ماده اغلب برای گرفتن میانگین نرخ و نسبت استفاده می شود.
روشهای دیگر
میانه وزنی نیز یک کاندیدای جایگزین ساده است. با سفارش مقادیر نشانگر تعریف شده و سپس مقداری را انتخاب می کند که نیمی از وزن اختصاص داده شده در بالای آن و نیمی از آن قرار دارد. برای شاخص های سفارش داده شده \ (x_1 ، x_2 ،. x_d \) و وزن های مربوطه \ (w_1 ، w_2 ،. w_d \) میانگین وزنی مقدار شاخص \ (x_m \) است که رضایت دارد:
میانه شناخته شده است که برای Outliers قوی است ، و در صورت توزیع نمرات در بین شاخص ها ، ممکن است مورد توجه باشد.
یکی دیگر از رویکردهای متفاوت برای جمع آوری استفاده از روش کوپلند است. این رویکرد مقایسه های زوجی بین واحدها و درآمد حاصل از آن به شرح زیر است. اول ، یک ماتریس برون مرزی ساخته شده است ، که یک ماتریس مربع با ستون های \ (n \) و ردیف های \ (n \) است ، جایی که \ (n \) تعداد واحدها است.
عنصر در ردیف \(p\) امین و ستون \(q\) ماتریس با جمع کردن تمام وزن های شاخص محاسبه می شود که در آن واحد \(p\) در آن شاخص ها مقدار بیشتری نسبت به واحد \(q\ دارد.) . به طور مشابه، سلول در ردیف \(q\) امین و ستون \(p\) (که سلول مقابل در طرف دیگر مورب است) به عنوان مجموع واحد وزنی محاسبه می شود که در آن \(q\) مقدار بالاتری نسبت به واحد \(p\) دارد. اگر مجموع وزن اندیکاتور روی همه شاخص ها یک باشد، این دو امتیاز نیز طبق تعریف به 1 جمع می شوند. ماتریس برتری به طور موثر خلاصه می کند که هر واحد تا چه حد امتیاز بهتر یا بدتر از همه واحدهای دیگر را برای همه جفت واحدها می گیرد.
امتیاز Copeland برای هر واحد با در نظر گرفتن مجموع مقادیر ردیف در ماتریس برتری محاسبه می شود. این را می توان به عنوان یک معیار متوسط در نظر گرفت که تا چه حد آن واحد بالاتر از سایر واحدها عمل می کند.
واضح است که این می تواند در هر سطحی از تجمیع اعمال شود و مانند سایر روش های تجمیع ارائه شده در اینجا به صورت سلسله مراتبی استفاده شود.
در برخی موارد ممکن است یک واحد در همه شاخص ها امتیاز بالاتری نسبت به دیگری داشته باشد. این جفت تسلط نامیده می شود و با هر جفت امتیازی برابر با یک (معادل هر جفت امتیازی برابر با صفر) مطابقت دارد.
درصد جفت تسلط نشانه ای از استحکام است. تحت سلطه، هیچ راهی وجود ندارد که انتخابهای روششناختی (وزنسازی، نرمالسازی و غیره) بر جایگاه نسبی جفت در رتبهبندی تأثیر بگذارد. یکی همیشه بالاتر از دیگری قرار می گیرد. هر چه تعداد جفتهای تسلط (یا قوی) در یک طبقهبندی بیشتر باشد، رتبهبندی کشورها نسبت به مفروضات روششناختی کمتر حساس خواهد بود. COINr امکان محاسبه درصد جفت های برتری را با یک تابع داخلی فراهم می کند.
سکه
اکنون به این میپردازیم که چگونه مجموعههای داده در یک سکه را میتوان با استفاده از روشهایی که قبلا توضیح داده شد جمعآوری کرد. تابع مورد علاقه Aggregate() است که یک روش کلی با متدهای کوین، کیف پول و فریم داده است. برای نشان دادن تابع ()Aggregate COINr روی یک سکه، با بارگیری بسته و ساختن نمونه کوین تا مجموعه داده های نرمال شده شروع می کنیم.
در نظر بگیرید که برای تجمیع داده های نرمال شده در سطوح بالاتر چه چیزی لازم است. نیاز داریم:
- مجموعه داده ها برای تجمیع
- ساختار شاخص: کدام شاخص ها به کدام گروه ها تعلق دارند و غیره.
- اوزان برای تعیین شاخص ها
- مشخصات تجمیع: یک تابع تجمع (مثلاً میانگین وزنی) و هر پارامتر دیگری که باید به آن تابع منتقل شود.
همه این عناصر در حال حاضر در سکه وجود دارند ، به جز آخرین. برای اولین بار ، ما فقط باید به جمع () بگوییم که داده ها از کدام مجموعه استفاده می کنند (با استفاده از آرگومان DSET). ساختار شاخص هنگام ساخت سکه در new_coin () (استدلال IMETA) تعریف شده است. وزن نیز به IMETA وصل شده بود. سرانجام ، مشخصات را می توان در استدلال های کل () مشخص کرد. بیایید با یک مورد ساده شروع کنیم: با استفاده از پیش فرض عملکرد.
به طور پیش فرض ، عملکرد جمع آوری مراحل زیر را انجام می دهد:
- از وزنهایی که به IMETA وصل شده اند استفاده می کند
- مصالح سلسله مراتبی (با روش پیش فرض میانگین حسابی وزنی) ، به دنبال ساختار شاخص مشخص شده در IMETA و استفاده از داده های مشخص شده در DSET
- مجموعه داده های جدید را ایجاد می کند. $ data $ جمع شده ، که از داده های موجود در DSET تشکیل شده است ، به علاوه ستون های اضافی با نمرات برای هر گروه جمع آوری ، در هر سطح تجمع.
بیایید مجموعه داده های جدید را بررسی کنیم. ستون های هر سطح به صورت متوالی اضافه می شوند و از سطح 1 به سمت بالا کار می کنند ، بنابراین بالاترین سطح تجمع (شاخص ، در اینجا) آخرین ستون قاب داده خواهد بود.
در اینجا ما نمرات جمع شده سطح 2 را که با جمع کردن هر گروه از شاخص ها (هشت ستون اول) ایجاد شده است ، مشاهده می کنیم ، و به دنبال آن دو شاخص فرعی (سطح 3) ایجاد شده با جمع کردن نمرات سطح 2 و در آخر شاخص (سطح 4)، که با جمع کردن شاخص های فرعی "کان" و "SUM" ایجاد می شود.
قالب این قاب داده برای بازرسی از نتایج بسیار مناسب نیست. برای دیدن یک نسخه کاربر پسند تر ، از عملکرد GET_RESULTS () استفاده کنید.
توابع جمع آوری Coinr
حال بیایید برخی از گزینه های عملکرد کل () را کشف کنیم. مانند سایر توابع ساخت سکه در Coinr ، کل () با تعدادی از گزینه های داخلی همراه است ، اما می تواند هر عملکردی را که به آن منتقل می شود ، بپذیرد ، تا زمانی که برخی از الزامات را برآورده کند. توابع جمع آوری داخلی COINR با A_ شروع می شود و:
- a_amean (): میانگین حسابی وزنی
- a_gmean (): میانگین هندسی وزنی
- a_hmean (): میانگین هارمونیک وزنی
- a_copeland (): روش Copeland (توجه: نیاز به by_df = true)
به طور پیش فرض ، میانگین حسابی نامیده می شود اما به عنوان مثال می توانیم به راحتی این را به میانگین هندسی تغییر دهیم. اما در اینجا ما به یک مشکل می پردازیم: اگر مقادیر جمع آوری کمتر از صفر باشد ، میانگین هندسی شکست خواهد خورد. بنابراین برای استفاده از میانگین هندسی برای جلوگیری از این کار باید دوباره مرحله عادی سازی را انجام دهیم. خوشبختانه این ساده در Coinr است:
اکنون، از آنجایی که شاخص ها بین 1 تا 100 مقیاس بندی شده اند (به جای 0 و 100 مانند قبل)، می توان آنها را با میانگین هندسی تجمیع کرد.
توابع خارجی
همه چهار تابع تجمعی که در بالا ذکر شد دارای قالب یکسانی هستند (به عنوان مثال ? a_gmean را امتحان کنید) و در بسته COINr تعبیه شده اند. اما اگر بخواهیم از نوع دیگری از تابع تجمیع استفاده کنیم چه؟روند کار دقیقاً به همین صورت است.
در این بخش از برخی توابع از بسته های دیگر استفاده می کنیم: بسته matrixStats و بسته Compind. این کدها توسط COINr وارد نمیشوند، بنابراین کد اینجا فقط در صورتی کار میکند که اینها را نصب کرده باشید. اگر این تصویر روی رایانه شما ساخته شده است، باید بررسی کنیم که آیا این بسته ها نصب شده اند یا خیر:
اگر هر یک از اینها FALSE را برگرداند، در تکه های کد زیر تعدادی خالی خواهید دید. برای مشاهده نتایج به نسخه آنلاین این وینیت مراجعه کنید یا بسته های فوق را نصب کرده و وینیت ها را بازسازی کنید.
اکنون برای مثال میتوانیم از تابع weightedMedian() از بسته matrixStats استفاده کنیم. این دارای تعدادی آرگومان است، اما آرگومان هایی که ما استفاده خواهیم کرد عبارتند از x و w (با همان معانی توابع COINr) و na. rm که باید آنها را روی TRUE تنظیم کنیم.
وزنهای w نیازی به تعیین در f_ag_para ندارند، زیرا بهطور خودکار به f_ag منتقل میشوند، مگر اینکه طور دیگری مشخص شده باشد.
الزامات عمومی برای توابع f_ag که به Aggregate() ارسال می شوند عبارتند از:
- ورودی تابع یک بردار عددی x است که احتمالاً مقادیری از دست رفته دارد
- تابع یک مقدار تجمیع شده منفرد (اسکالری) را برمی گرداند
- اگر تابع یک بردار از وزن ها را بپذیرد، این بردار (با همان طول x) به عنوان آرگومان تابع w ارسال می شود. اگر تابع بردار وزنها را قبول نکند، میتوانیم w = "none" را در آرگومانها روی Aggregate() قرار دهیم و سعی نمیکند w را ارسال کند.
- هر آرگومان دیگری برای f_ag , به جز x و w , باید در لیست نامگذاری شده f_ag_para گنجانده شود.
گاهی اوقات این ممکن است به این معنی باشد که ما باید یک تابع wrapper ایجاد کنیم تا این الزامات را برآورده کنیم. به عنوان مثال، بسته "Compind" دارای تعدادی از رویکردهای تجمع پیچیده است."منافع شک" از تجزیه و تحلیل پوششی داده ها برای جمع آوری شاخص ها استفاده می کند، اما تابع Compind::ci_bod() یک لیست را خروجی می دهد. ما می توانیم یک تابع wrapper برای استفاده از آن در داخل COINr ایجاد کنیم:
مزایای رویکرد شک به طور خودکار وزنهای فردی را به هر واحد اختصاص میدهد، بنابراین باید w = "none" را مشخص کنیم تا از تلاش Aggregate() برای ارسال وزن به تابع جلوگیری کنیم. نکته مهم این است که ما همچنین باید by_df = TRUE را مشخص کنیم که به Aggregate() می گوید به جای یک بردار، یک فریم داده را به f_ag ارسال کند.
محدودیت در دسترس بودن داده ها
تا زمانی که حداقل یکی از مقادیر ارسال شده به آن غیر NA باشد، بسیاری از توابع تجمیع یک مقدار تجمیع شده را برمی گردانند. به عنوان مثال، تابع mean() R:
بسته به اینکه na. rm را چگونه تنظیم کنیم، یا یک پاسخ دریافت می کنیم یا NA، و این برای بسیاری از توابع تجمیع دیگر (مانند توابع ساخته شده در COINr) یکسان است. گاهی اوقات ممکن است بخواهیم کمی کنترل بیشتری داشته باشیم. به عنوان مثال، اگر در یک گروه پنج شاخص داشته باشیم، ممکن است تنها در صورتی معقول باشد که مثلاً از هر پنج شاخص، حداقل سه شاخص دارای مقادیر غیر NA باشند.
تابع ()Aggregate این گزینه را دارد که در هنگام تجمیع، محدودیت در دسترس بودن داده را مشخص کند. ما به سادگی dat_thresh را روی مقداری بین 0 و 1 قرار می دهیم و برای هر گروه تجمیع، هر واحدی که در دسترس بودن داده کمتر از dat_thresh باشد، به جای امتیاز جمع، یک مقدار NA دریافت می کند. این به راحتی در یک قاب داده نشان داده می شود (برای جزئیات بیشتر در مورد تجمیع در فریم های داده به بخش بعدی مراجعه کنید):
ما نیاز داریم که حداقل 2/3 از شاخص ها غیر NA باشد تا یک مقدار تجمیع شود.
در اینجا می بینیم که ردیف دوم برای دادن NA جمع می شود زیرا فقط 1/3 داده در دسترس است.
بر اساس سطح
همچنین میتوانیم با تعیین f_ag بهعنوان بردار نام توابع به جای یک تابع، از یک تابع تجمیع متفاوت برای هر سطح تجمع استفاده کنیم.
در این مثال، چهار سطح در شاخص وجود دارد، به این معنی که سه عملیات تجمع باید انجام شود: از سطح 1 به سطح 2، از سطح 2 به سطح 3، و از سطح 3 به سطح 4. این به این معنی است که بردار f_agباید n-1 ورودی داشته باشد، جایی که n تعداد سطوح تجمع است. توابع به ترتیب تجمیع اجرا می شوند.
به همین ترتیب، اگر پارامترها باید به توابع مشخص شده توسط f_ag ارسال شوند، f_ag_para را می توان به عنوان لیستی با طول n-1 تعیین کرد، که در آن هر عنصر لیستی از پارامترها است.
فریم های داده
تابع Aggregate() نیز به همین شکل روی فریم های داده کار می کند. این احتمالاً زمانی مفیدتر است که توابع تجمیع، بردارها را بهجای فریمهای داده، ورودی میگیرند، زیرا در غیر این صورت رفتن مستقیم به تابع زیربنایی آسانتر خواهد بود. در هر صورت، در اینجا چند نمونه وجود دارد. اول، استفاده از یک تابع COINr داخلی برای محاسبه میانگین هارمونیک وزنی یک قاب داده.
کیف پول
روش purse برای Aggregate() ساده است و به سادگی همان مشخصات تجمیع را برای هر یک از سکه های درون اعمال می کند. دقیقاً همان پارامترهای روش سکه را دارد.
بعدش چی؟
پس از جمع آوری شاخص ها، این احتمال وجود دارد که بخواهید شروع به مشاهده و کاوش نتایج کنید. برای جزئیات بیشتر به کاوش نتایج مراجعه کنید.