{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Portfolios Example" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Packages to load" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "from ratingslib.datasets.filenames import FILENAME_PORTFOLIOS, dataset_path\n", "from ratingslib.ratings.aggregation import RatingAggregation\n", "from ratingslib.utils.enums import ratings\n", "from ratingslib.utils.methods import print_info" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Get filename path and set columns dict (item, ratings)" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "filename = dataset_path(FILENAME_PORTFOLIOS)\n", "columns_dict = {'item': 'portfolio',\n", " 'ratings': ['R2', 'AvgReturn', 'maxDD']}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Define votes or weight for each attribute" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "votes_or_weights = {\n", " 'ENGINEER [RISK-SEEKING]': {\n", " 'R2': 4.0,\n", " 'AvgReturn': 10.0,\n", " 'maxDD': 4.0},\n", " 'STARTUP [NEUTRAL]': {\n", " 'R2': 10.0,\n", " 'AvgReturn': 10.0,\n", " 'maxDD': 10.0},\n", " 'FUND [RISK-AVERSE]': {\n", " 'R2': 10.0,\n", " 'AvgReturn': 4.0,\n", " 'maxDD': 10.0}\n", "}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Aggregation methods" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "versions = [ratings.AGGREGATIONMARKOV,\n", " ratings.AGGREGATIONOD,\n", " ratings.AGGREGATIONPERRON]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Aggregation results" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "\n", "=====ENGINEER [RISK-SEEKING]=====\n", "\n", "\n", "=====AggrMarkov=====\n", " Item rating ranking\n", "0 portfolio1 0.195942 2\n", "1 portfolio2 0.182491 3\n", "2 portfolio3 0.350205 1\n", "3 portfolio4 0.181080 4\n", "4 portfolio5 0.090283 5\n", "\n", "\n", "=====AggrOD=====\n", " Item rating ranking\n", "0 portfolio1 2.227214 1\n", "1 portfolio2 1.495427 3\n", "2 portfolio3 1.542485 2\n", "3 portfolio4 0.632074 4\n", "4 portfolio5 0.220648 5\n", "\n", "\n", "=====AggrPerron=====\n", " Item rating ranking\n", "0 portfolio1 0.218601 2\n", "1 portfolio2 0.198084 3\n", "2 portfolio3 0.316097 1\n", "3 portfolio4 0.183130 4\n", "4 portfolio5 0.084088 5\n", "\n", "\n", "=====STARTUP [NEUTRAL]=====\n", "\n", "\n", "=====AggrMarkov=====\n", " Item rating ranking\n", "0 portfolio1 0.205238 3\n", "1 portfolio2 0.203258 4\n", "2 portfolio3 0.293477 1\n", "3 portfolio4 0.205287 2\n", "4 portfolio5 0.092741 5\n", "\n", "\n", "=====AggrOD=====\n", " Item rating ranking\n", "0 portfolio1 3.464231 1\n", "1 portfolio2 1.557978 2\n", "2 portfolio3 0.616994 4\n", "3 portfolio4 1.508745 3\n", "4 portfolio5 0.285026 5\n", "\n", "\n", "=====AggrPerron=====\n", " Item rating ranking\n", "0 portfolio1 0.241543 1\n", "1 portfolio2 0.212355 4\n", "2 portfolio3 0.223183 3\n", "3 portfolio4 0.230409 2\n", "4 portfolio5 0.092510 5\n", "\n", "\n", "=====FUND [RISK-AVERSE]=====\n", "\n", "\n", "=====AggrMarkov=====\n", " Item rating ranking\n", "0 portfolio1 0.210850 4\n", "1 portfolio2 0.237623 1\n", "2 portfolio3 0.225970 3\n", "3 portfolio4 0.231535 2\n", "4 portfolio5 0.094023 5\n", "\n", "\n", "=====AggrOD=====\n", " Item rating ranking\n", "0 portfolio1 5.098536 1\n", "1 portfolio2 1.601722 3\n", "2 portfolio3 0.246798 5\n", "3 portfolio4 3.388840 2\n", "4 portfolio5 0.336303 4\n", "\n", "\n", "=====AggrPerron=====\n", " Item rating ranking\n", "0 portfolio1 0.259312 2\n", "1 portfolio2 0.225082 3\n", "2 portfolio3 0.145131 4\n", "3 portfolio4 0.273927 1\n", "4 portfolio5 0.096548 5\n" ] } ], "source": [ "for key, vw in votes_or_weights.items():\n", " print_info(key)\n", " for version in versions:\n", " print_info(version)\n", " ra = RatingAggregation(version, votes_or_weights=vw)\n", " ratings_df = ra.rate_from_file(\n", " filename, pairwise=False, columns_dict=columns_dict)\n", " print(ratings_df)" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3.8.13 ('py38')", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.8.13" }, "orig_nbformat": 4, "vscode": { "interpreter": { "hash": "23ceb7112fbf9d0e38ecbf60d6e6d5e2dcebcc82200eeb1e5a5d5f9ffb9e27ca" } } }, "nbformat": 4, "nbformat_minor": 2 }