纵轴是对数轴横轴是概率轴,需要拟合出一条线性直线,但是截距等数据不太对。

关注让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言问题:在对数纵轴和概率横轴下,如何拟合一条线性直线,使得拟合结果最优? 解答:
import numpy as np
# 数据预处理
y = -np.log(p)
x = np.linspace(1, len(y), len(y))
# 用polyfit函数进行拟合
k, b = np.polyfit(x, y, 1)
import matplotlib.pyplot as plt
# 数据可视化
fig, ax = plt.subplots()
ax.plot(x, y, 'o', label='Original Data')
ax.plot(x, k*x+b, 'r', label='Fitted Line')
ax.legend()
plt.show()
案例: 设有一组数据,概率如图所示:
根据上述方法进行计算得到k=-0.1437,b=3.3787,拟合曲线如下图所示:
可以看到,拟合结果符合我们的预期,即数据趋势为往下走的线性趋势,同时可能存在一些离群点。