what are factors that causes a volcano to erupt?