I would also respectfully suggest you start treating your dog like a dog, and not a human baby substitute.
If it has been like this for four years, I don't think you will cure it overnight. Try taking the dog to training classes and maybe try something like obedience or agility, to give it a bit of confidence. Does your dog have its own cage or crate it can go to when it is upset with you shouting? Try some positive reinforcement training and reward the dog when it comes to you without shaking.