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 = 0
m2 = 0
for xi, yi in zip(x, y):
m1 += (xi - x_mean) * (yi - y_mean)
m2 += (xi - x_mean) ** 2
b = m1 / m2
a = math.exp(y_mean - b * x_mean)
————————————————
版权声明:本文为CSDN博主「Backup and share」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/ISIS7Protessional/article/details/115094852
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)