Check engine light 90% off the time is O2 sensor. Sometimes it is a bugger in colder climates, I'm from edmonton so I've seen it lots.
What happens is the engine runs under the optimal temperature due to the cold climate, so the fuel is bruning inefficiently. So the computer says hey you don't have enough 02 to combust the fuel. Throw a light on the notify the driver. You may notice it will go off after you continue to drive and the engine heats up. In Edmonton it only happens intermittently on colder days say -15C and below.
But the O2 sensor can be affected by other things, not only operating temperatures. this is just the most common. e-mail me if this isn't the prob. I can give you further advice.
later,
mms1@ualberta.ca
http://www.cardomain.com/id/mazdamachine