python获取留存曲线的幂函数系数并计算生命周期LT中介绍了获取幂函数系数的两种方式,下文对第一种方法【lnx、lny对应的线性拟合,最小二乘法求解系数】进行公式推导。
幂函数:y=a*x^(-b)
两边求对数:lny=-blnx+lna
令:Y=lny,A=-b,X=lnx,B=lna
转化为一元线性方程:Y=AX+B
则:b=-A,a=e^B=e^(Y-AX)
故而问题转化成求一元线性方程Y=AX+B的系数A和B。
1)最小二乘法求解系数
Y=AX+B
此时对应python公式如下:
A= (n * sum(x*y) - sum(x)*sum(y)) / (n*sum(x * x)- sum(x)*sum(x))
B= (sum(x*x)*sum(y) - sum(x)*sum(x*y)) / (n*sum(x * x)- sum(x)*sum(x))
2)上述系数与常见形式转化
常见形式(来自:最小二乘法-维基百科):
此时对应python公式如下(常见形式):
x = np.array(list(map(lnhandle, fields_avg)))y = np.array(list(map(lnhandle, result_average)))x_mean = np.mean(x)y_mean = np.mean(y)m1 = 0m2 = 0for xi, yi in zip(x, y):m1 += (xi - x_mean) * (yi - y_mean)m2 += (xi - x_mean) ** 2b = m1 / m2a = math.exp(y_mean - b * x_mean)————————————————版权声明:本文为CSDN博主「Backup and share」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:/ISIS7Protessional/article/details/115094852