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