It can be any of at least 5 things, and that is what makes trouble shooting difficult on modern cars.
You have an On Board Diagnostics system, use it. Plug in a code reader for codes for a place to start at after checking all the obvious things (loose connections, etc.)
Before condemning a part and spending the money on it to replace it only to find there was nothing wrong with it find out the resistance spec's for the part either online or at the library, then take an ohms reading to see if the part is good or not. You can also use your volt/ohms meter to check circuits. It is your eyes into your electrical system. This is much more effective, and cheaper, than pot-shotting the cause.
Steve