전 전력 법 의존도를 계산하기 위해 실행중인 시뮬레이션 코드의 일부 데이터를 맞추려고합니다. 선형 적합을 플롯 할 때 데이터가 잘 맞지 않습니다.scipy powerlaw fit에서 합리적인 값을 얻으려고합니다.
#!/usr/bin/env python
from scipy import optimize
import numpy
xdata=[ 0.00010851, 0.00021701, 0.00043403, 0.00086806, 0.00173611, 0.00347222]
ydata=[ 29.56241016, 29.82245508, 25.33930469, 19.97075977, 12.61276074, 7.12695312]
fitfunc = lambda p, x: p[0] + p[1] * x ** (p[2])
errfunc = lambda p, x, y: (y - fitfunc(p, x))
out,success = optimize.leastsq(errfunc, [1,-1,-0.5],args=(xdata, ydata),maxfev=3000)
print "%g + %g*x^%g"%(out[0],out[1],out[2])
내가 얻을 출력은 다음과 같습니다 : -71205.3 + 71174.5 * X^-9.79038e-05
반면에 여기
내가 데이터에 맞게 사용하고 파이썬 스크립트입니다 줄거리가 최소한으로 잘 맞는 것으로 기대되는만큼 잘 맞는 것처럼 보이고, 출력의 형태가 저를 귀찮게합니다. 나는 상수가 당신이 0이 될 것으로 기대하는 곳에 가깝기를 바랐다 (약 30). 그리고 나는 10^-5보다 더 큰 부분의 힘 의존성을 발견 할 것을 기대하고 있었다.나는 데이터를 재조정하고 매개 변수를 가지고 놀아서 행운이없는 optimize.leastsq를 시도했다. 가능한 목표를 달성하려고합니까 아니면 내 데이터가 허용하지 않습니까? 계산이 비싸기 때문에 더 많은 데이터 포인트를 얻는 것이 중요하지 않습니다.
감사합니다.
docs에서,이 함수는'params' 인수가 second이고'xdata' 인수가 제일 먼저 나오는 것처럼 보입니다. 나는 이것이 사물을 변화 시킬지는 의심 스럽지만 당신은 그것을 시도하고 어떤 일이 일어나는가를 볼 수 있습니까? – ely
N/M 방금 변경 한 결과와 동일한 결과를 얻었습니다. 도움이되지는 않지만이 문서가 훨씬 더 잘 될 필요가 있음을 보여줍니다. – ely
내가 생각할 수있는 유일한 다른 점은 다음과 같은 표준 오류를 다시 얻을 수 있습니까? O.L.S. 회귀 분석에서 계수의 표준 오차에 대한 좋은 공식이 있습니다. 이러한 작은 데이터 세트를 사용하면 매우 큰 데이터라고 생각할 수 있습니다. 작은 샘플 크기의 효과 만 보일 수도 있습니다. ~ 100 관측 같은 더 큰 데이터 세트로 이것을 시도 했습니까? – ely