Hey,
I will try to make your choice a bit easy by following examples :
1) If you are a newbie and want to learn how web hosting works then, shared hosting is the best option for you.
Also, if your website is new and doesn't get a good amount of traffic then still you can go for shared hosting. You can always upgrade shared hosting to VPS as per your need.
2) But, if your website gets some hundreds of visitors on daily basis then you should always choose VPS.
VPS has an advantage that you get your separate resources in it, so there won't any need to upgrade your hosting plan as you will get enough resources in VPS.