我有两个数据阵列,如高度和重量:
import numpy as np, matplotlib.pyplot as plt
heights = np.array([50,52,53,54,58,60,62,64,66,67,68,70,72,74,76,55,50,45,65])
weights = np.array([25,50,55,75,80,85,50,65,85,55,45,45,50,75,95,65,50,40,45])
plt.plot(heights,weights,'bo')
plt.show()
Run Code Online (Sandbox Code Playgroud)
我想制作类似于此的情节:
http://www.sas.com/en_us/software/analytics/stat.html#m=screenshot6
任何想法都表示赞赏.
我有一个问题,我现在打了好几天.
如何计算拟合的(95%)置信区间?
将曲线拟合到数据是每个物理学家的日常工作 - 所以我认为这应该在某个地方实现 - 但我找不到这方面的实现,我也不知道如何以数学方式做到这一点.
我发现的唯一一件事就是线性最小二乘seaborn做得很好.
import numpy as np
from matplotlib import pyplot as plt
import seaborn as sns
import pandas as pd
x = np.linspace(0,10)
y = 3*np.random.randn(50) + x
data = {'x':x, 'y':y}
frame = pd.DataFrame(data, columns=['x', 'y'])
sns.lmplot('x', 'y', frame, ci=95)
plt.savefig("confidence_band.pdf")
Run Code Online (Sandbox Code Playgroud)

但这只是线性最小二乘法.当我想要拟合例如饱和度曲线时
,我搞砸了.
当然,我可以从最小二乘法的标准误差计算t分布,scipy.optimize.curve_fit但这不是我正在寻找的.
谢谢你的帮助!!