У меня два массива данных. Мне нужно найти коэффициент корреляции, такой чтобы данные функции максимально совпадали, то есть измеренный график был максимально подобен модельному. Я использовала curve_fit, но не уверенна, что работает правильно. Мне выдало крохотный коэффициент и два совершенно разных графика. Если умножить искусственно, то они подобны.
dis = np.loadtxt('mean_ones.txt')
k = 0
x_dis = []
y_dis = []
x_dis_cut = []
y_dis_cut = []
for i in range(len(dis)):
x_dis.append(dis[i][0])
y_dis.append(dis[i][1])
for k in range(len(dis)):
if x_dis[k] >= 3980 and x_dis[k] <= 4080:
x_dis_cut.append(x_dis[k])
y_dis_cut.append(y_dis[k])
model = np.loadtxt('pfsolspec_hr.cnv')
x_model = []
y_model = []
for i in range(len(model)):
x_model.append(model[i][0])
y_model.append(model[i][1])
interpol = interp1d(x_dis_cut, y_dis_cut, kind = "cubic")
plt.plot(x_dis_cut, 3010 * interpol(x_dis_cut), x_model, y_model)
def fittable(interpol, A):
return A * interpol
param, param_1 = curve_fit(fittable, x_model, y_model)
plt.plot(x_dis_cut, param * interpol(x_dis_cut), x_model, y_model)
param