Есть ли возможность соответствовать методу добротности подбора, используя scipy.optimize.curve_fit () в python? - PullRequest
0 голосов
/ 28 мая 2019

Я хочу сопоставить данные с весами. Обычно я использую функцию scipy.optimize.curve_fit (), но мне нужен параметр sigma ^ 2, установленный для функции модели, такой же, как в тесте хи-квадрат Пирсона. Есть ли простой способ решить эту проблему? Дополнительная информация: в originlab или qtiplot это будет статистический вес.

Проблема заключается в том, что параметр sigma должен иметь значение «None, последовательность длиной M или массив MxM, необязательно», как написано в документации.

bins = np.linspace(0,25.1,251,endpoint=False)
histogram = np.histogram(data,bins)
xvalues = [] #value inbetween bin edges
for i in range(len(histogram[1])-1):
    xvalues.append(np.mean([histogram[1][i],histogram[1][i+1]]))

xvalues=np.array(xvalues)

def fit1(x,tau,y0,A,x0):
    return y0+A*exp(-(x+x0)/tau)
lim = 180
popt1, pcov1 = curve_fit(fit1, xvalues[10:-lim], histogram[0][10:- 
lim],sigma=fit1) 

Этот код, очевидно, будет иметь сообщение об ошибке, потому что сигма имеет неправильная форма. Также правильное значение для сигмы я бы искал for is sqrt (fit1 ()).

...