Think of it this way. Say you have a series of toys on a conveyor belt. It is your job to pull a level to divert any bad toys that come down the pathway. Suppose also that you can clearly see the toys coming down in advance to know when to pull the lever.
Now, consider another case where the belt is covered up except for a small section just before it gets to the part where you have to divert the toys. You are having to purely react at this point in time.
So, you could try attempting to SDI purely on reaction, or you could try recognizing situations that lead into moments where you would want to SDI. This way you know well in advance when to start SDIing. At the very least, try considering how you want to be SDIing and leading into possibly an escape or punish immediately.
The most common situation for anticipating SDI is probably when know you are in lag from a messed up attack. There are many times in a match where you use a very laggy move and in this lag you know you will get punished by something. During this time it is pretty common to do absolutely nothing for many people, but its a pretty valuable time to start preparing for SDI/ survival DI on moves.
However, do not anticipate too much or else you might be surprised. For example, I would SDI the Uair against a Kirby to avoid a regrab after a fthrow, and instead they inhale. SDI useless. The other thing would be prepare in advance what might be coming, rely upon reaction for a last minute decision, and have other options contemplated should they do one a few things.
Actually, this is pretty useful in many other applications. A common situation might be what to do after a rapid jab? If you see someone trying to SDI away, you can try going for shine afterwards to catch people trying to SDI. If you see them attempting to SDI up and attack, you simply hold shield after waiting for teh move to end.