误差产生的因素有哪些