How to give to the users the opportunity to change role as desired As the title says, I would give to members a way to choose their own role as required via radio buttons in their profile page. Any suggestion?
You can do this with rules. 

Event: After saving user profile
Conditonal: field has value
Action: Assign role to user


Something long these lines. You will need to create a new rule for each role unless you do some special field-value handling. You will also need to create a few checks in here to prevent the rule from re-assigning a role to a user.