I am not sure whether you can do it by roles but there is an alternative for it.
Give three below roles to user:
- Sitecore client authoringusers
- Sitecore client designingDesigner
- Analytics personalization
Now select the user and go to security editor, select the item and click on assign in ribbon and give "Write" permission to that item or at folder level(if many) and select checkboxes "item" & "descendants".
Now user should be able to edit personalization related things.