Number of GPUs is certainly the biggest factor! Nothing can touch the two-chips-on-one-card cards!
Number of shaders is how many simultaneous operations you can perform
Speed of core is how fast each one goes.
Clearly the last two work together to determine a cards potential hash rate.