I use the rumor method.
Talk to your villagers constantly to see if they say something about anyone moving. If no one's moving, they'll say something regarding rumors (there's a site for it, too lazy to link it). If someone you like wants to leave, walk in front of them to see if they ping you. If the villager fails to ping you, save and quit and try walking in front of them again.
Note: Sometimes the mover will talk about rumors because they can't talk about themselves moving. Always talk to at least 2 animals to make sure no one's leaving!
If someone you dislike is moving, I'd recommend not talking to them at all, due to them changing their minds.
Before talking to them you should save, and if they change their decision about moving reset and try again.