Portfolios Example

Packages to load

[1]:
from ratingslib.datasets.filenames import FILENAME_PORTFOLIOS, dataset_path
from ratingslib.ratings.aggregation import RatingAggregation
from ratingslib.utils.enums import ratings
from ratingslib.utils.methods import print_info

Get filename path and set columns dict (item, ratings)

[2]:
filename = dataset_path(FILENAME_PORTFOLIOS)
columns_dict = {'item': 'portfolio',
                'ratings': ['R2', 'AvgReturn', 'maxDD']}

Define votes or weight for each attribute

[3]:
votes_or_weights = {
    'ENGINEER [RISK-SEEKING]': {
        'R2': 4.0,
        'AvgReturn': 10.0,
        'maxDD': 4.0},
    'STARTUP [NEUTRAL]': {
        'R2': 10.0,
        'AvgReturn': 10.0,
        'maxDD': 10.0},
    'FUND [RISK-AVERSE]': {
        'R2': 10.0,
        'AvgReturn': 4.0,
        'maxDD': 10.0}
}

Aggregation methods

[4]:
versions = [ratings.AGGREGATIONMARKOV,
            ratings.AGGREGATIONOD,
            ratings.AGGREGATIONPERRON]

Aggregation results

[5]:
for key, vw in votes_or_weights.items():
    print_info(key)
    for version in versions:
        print_info(version)
        ra = RatingAggregation(version, votes_or_weights=vw)
        ratings_df = ra.rate_from_file(
            filename, pairwise=False, columns_dict=columns_dict)
        print(ratings_df)


=====ENGINEER [RISK-SEEKING]=====


=====AggrMarkov=====
         Item    rating  ranking
0  portfolio1  0.195942        2
1  portfolio2  0.182491        3
2  portfolio3  0.350205        1
3  portfolio4  0.181080        4
4  portfolio5  0.090283        5


=====AggrOD=====
         Item    rating  ranking
0  portfolio1  2.227214        1
1  portfolio2  1.495427        3
2  portfolio3  1.542485        2
3  portfolio4  0.632074        4
4  portfolio5  0.220648        5


=====AggrPerron=====
         Item    rating  ranking
0  portfolio1  0.218601        2
1  portfolio2  0.198084        3
2  portfolio3  0.316097        1
3  portfolio4  0.183130        4
4  portfolio5  0.084088        5


=====STARTUP [NEUTRAL]=====


=====AggrMarkov=====
         Item    rating  ranking
0  portfolio1  0.205238        3
1  portfolio2  0.203258        4
2  portfolio3  0.293477        1
3  portfolio4  0.205287        2
4  portfolio5  0.092741        5


=====AggrOD=====
         Item    rating  ranking
0  portfolio1  3.464231        1
1  portfolio2  1.557978        2
2  portfolio3  0.616994        4
3  portfolio4  1.508745        3
4  portfolio5  0.285026        5


=====AggrPerron=====
         Item    rating  ranking
0  portfolio1  0.241543        1
1  portfolio2  0.212355        4
2  portfolio3  0.223183        3
3  portfolio4  0.230409        2
4  portfolio5  0.092510        5


=====FUND [RISK-AVERSE]=====


=====AggrMarkov=====
         Item    rating  ranking
0  portfolio1  0.210850        4
1  portfolio2  0.237623        1
2  portfolio3  0.225970        3
3  portfolio4  0.231535        2
4  portfolio5  0.094023        5


=====AggrOD=====
         Item    rating  ranking
0  portfolio1  5.098536        1
1  portfolio2  1.601722        3
2  portfolio3  0.246798        5
3  portfolio4  3.388840        2
4  portfolio5  0.336303        4


=====AggrPerron=====
         Item    rating  ranking
0  portfolio1  0.259312        2
1  portfolio2  0.225082        3
2  portfolio3  0.145131        4
3  portfolio4  0.273927        1
4  portfolio5  0.096548        5