Форум сайта python.su
0
У меня два массива данных. Мне нужно найти коэффициент корреляции, такой чтобы данные функции максимально совпадали, то есть измеренный график был максимально подобен модельному. Я использовала 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
Отредактировано Godseffiana (Март 16, 2020 14:58:40)
Офлайн
253
GodseffianaЕсли функции даны, то степень их совпадения никак не может измениться.
Мне нужно найти коэффициент корреляции, такой чтобы данные функции максимально совпадали
Godseffiana
Я использовала curve_fit, но не уверенна, что работает правильно.
Офлайн