나는 python에 익숙하지 않고 lmfit 패키지를 사용하여 자신의 계산을 확인하려고 노력하지만 다음 테스트 (및 2)에 대해 데이터 오류 (sig)를 포함하는 방법에 대해서는 확실하지 않습니다. 내가 conf_interval2d 아래 그림 참조)으로 얻을 오류 :lmfit 최소 제곱 최소화에서 데이터에 오류를 포함하려면 어떻게해야합니까? lmfit의 conf_interval2d 함수에서이 오류는 무엇입니까?
import numpy as np
from lmfit import Parameters, Minimizer, conf_interval, conf_interval2d, minimize, printfuncs
x=np.array([ 0.18, 0.26, 1.14, 0.63, 0.3 , 0.22, 1.16, 0.62, 0.84,0.44, 1.24, 0.89, 1.2 , 0.62, 0.86, 0.45, 1.17, 0.59, 0.85, 0.44])
data=np.array([ 68.59, 71.83, 22.52,44.587,67.474 , 55.765, 20.9,41.33783784,45.79 , 47.88, 6.935, 34.15957447,44.175, 45.89230769, 57.29230769, 60.8,24.24335594, 34.09121287, 42.21504003, 26.61161674])
sig=np.array([ 11.70309409, 11.70309409, 11.70309409, 11.70309409,11.70309409, 11.70309409, 11.70309409, 11.70309409,11.70309409, 11.70309409, 11.70309409, 11.70309409,11.70309409, 11.70309409, 11.70309409, 11.70309409,11.70309409, 11.70309409, 11.70309409, 11.70309409])
def residual(pars, x, data=None):
a=pars['a'].value
b=pars['b'].value
model = a + (b*x)
if data is None:
return model
return model-data
params=Parameters()
params.add('a', value=70.0)
params.add('b', value=40.0)
mi=minimize(residual, params, args=(x, data))
#mi=minimize(residual, params, args=(x,), kws={'data': data})#is this more correct?
ci, trace = conf_interval(mi, trace=True)
내가 계산 할 수 있도록)이 지금까지 잘 작동하지만 위의 질문으로, 어떻게 데이터 (sig_chla에 대한 오류를 포함 않는 가중치 카이 제곱 감소 ?
제 2 부 : 또한, 나는 신뢰 구간, XS, YS, 그리드 = conf_interval2d (MI, 'A', 'B', 20, 20)
을 그릴 수 있도록 다음을 사용하려고 할 때*에 ValueError :
나는 다음과 같은 오류가 의도 (| 숨기기 캐시) | 작성하는 데 실패 옵션 array--는 차원을 정의해야하지만 (0)
또는
있어요 평가 일상 DGESV에 ameter 4 DGESV에서 잘못된 맥 OS BLAS 매개 변수 오류, 매개 변수 # 0 (사용할 수 없음)이었다 당신은 residual()
기능에서 오류가 직접 데이터를 무겁게한다 0
여기서 오류의 의미는 무엇입니까? 그것은 변화입니까? 표준 편차 ?? – Mehdi
죄송합니다.이 경우 "오류"는 표준 편차를 의미합니다. – Thriveth
문서가 명시 적으로 잔류 함수가 잔차 만 반환해야한다고 명시 했으므로 나는 이것이 옳다고 생각하지 않습니다. – rhody