У меня есть набор данных (смещение против времени), которые я применил к нескольким уравнениям, используя метод optimize.leastsq. Теперь я хочу получить значения ошибок для установленных параметров. Просматривая документацию, выводимая матрица представляет собой матрицу jacobian, и я должен умножить ее на остаточную матрицу, чтобы получить мои значения. К сожалению, я не статистик, поэтому я немного утоплюсь в терминологии.
Из того, что я понимаю, все, что мне нужно, это ковариационная матрица, которая идет с моими параметрами, поэтому я могу квадрат корень диагональных элементов, чтобы получить стандартную ошибку по установленным параметрам. У меня есть смутное воспоминание о том, что матрица ковариации - это то, что выводится из метода optimize.leastsq. Это верно? Если не так, как бы вы хотели получить остаточную матрицу для умножения выведенного якобиана на получение моей ковариационной матрицы?
Любая помощь будет принята с благодарностью. Я очень новичок в python и поэтому извиняюсь, если вопрос оказывается основным.
код подстановки выглядит следующим образом:
fitfunc = lambda p, t: p[0]+p[1]*np.log(t-p[2])+ p[3]*t # Target function'
errfunc = lambda p, t, y: (fitfunc(p, t) - y)# Distance to the target function
p0 = [ 1,1,1,1] # Initial guess for the parameters
out = optimize.leastsq(errfunc, p0[:], args=(t, disp,), full_output=1)
Аргументы t и disp и массив значений времени и смещения (в основном всего 2 столбца данных). Я импортировал все необходимое в топе кода. Установленные значения и матрица, обеспечиваемые выходом, следующие:
[ 7.53847074e-07 1.84931494e-08 3.25102795e+01 -3.28882437e-11]
[[ 3.29326356e-01 -7.43957919e-02 8.02246944e+07 2.64522183e-04]
[ -7.43957919e-02 1.70872763e-02 -1.76477289e+07 -6.35825520e-05]
[ 8.02246944e+07 -1.76477289e+07 2.51023348e+16 5.87705672e+04]
[ 2.64522183e-04 -6.35825520e-05 5.87705672e+04 2.70249488e-07]]
Я подозреваю, что в данный момент подгонка немного подозрительна. Это будет подтверждено, когда я могу получить ошибки.