advantages and disadvantages of social cognitive theory