curve_fit, python 및 excel 간의 멱 법칙 회귀 문제

장 주 이밍

죄송합니다. 저는 파이썬과 스택 흐름이 처음입니다. 그래서 이미지를 게시 할 수 없습니다.

파이썬에서 curve_fit 함수로 멱 법칙 회귀를하고 싶습니다. 그러나 그 결과는 나에게 아주 이상합니다. 나는 그것을 더 확인하기 위해 엑셀을 사용합니다. 이 둘 사이에는 큰 차이가 있습니다. 검은 색 선은 curve_fit의 결과이고 빨간색 선의 매개 변수는 excel입니다. 누군가 나에게 차이점을 알려줄 수 있습니까? 감사합니다!

x=[164000,400,13000,700,57000,108,12000]
y=[0.011970,0.000098,0.066100,0.004300,0.042600,0.000061,0.002858 ]

def f(x,a,b):
    return a*x**b

popt,pocv=curve_fit(f,x,y)

ax.set_xscale("log")
ax.set_yscale("log")
ax.set_ylim(0.00001,0.1)
ax.set_xlim(10,1000000)

ax.scatter(x,y)

px=np.linspace(10,1000000,1000)

#parameter form curve_fit
py=a*px**b
[enter image description here][1]
#parameter from excel
pyy=3E-6*px**0.8305

ax.loglog(px,pyy,color="red")
ax.loglog(px,py,color="k")
M 뉴빌

로그-로그 공간에 데이터를 플로팅한다는 사실은 로그 공간에 적합한 힌트를 제공해야 합니다 . np.log(a*x**b), np.log(y). 실제로 실행되고 잘 맞는 스크립트 수정은 다음과 같습니다.

import numpy as np
from scipy.optimize import curve_fit
import  matplotlib.pyplot as plt

x=[164000,400,13000,700,57000,108,12000]
y=[0.011970,0.000098,0.066100,0.004300,0.042600,0.000061,0.002858 ]

def f(x, a, b):
    return np.log(a*x**b)

popt,pcov=curve_fit(f, x, np.log(y), [1.e-6, 0.9])

ax = plt.gca()

ax.set_xscale("log")
ax.set_yscale("log")
ax.set_ylim(0.00001,0.1)
ax.set_xlim(10,1000000)

ax.scatter(x,y)

px = np.linspace(10,1000000,1000)
a, b = popt
print("Parameters: a=%g,  b=%g" % (a, b))

#parameter form curve_fit
py=a*px**b

#parameter from excel
pyy=3e-6*px**0.8305

ax.loglog(px,pyy, color="red")
ax.loglog(px,py,  color="k")
plt.show()

항상 매개 변수에 대한 초기 값을 제공하고 결과를 인쇄해야합니다. 예를 들어, 이것을 실행하면 출력되고 Parameters: a=2.78612e-06, b=0.829763두 예측 라인이 서로 거의 위에있는 것을 보여줍니다.

더 나은 곡선 맞춤 경험을 위해 lmfit( https://lmfit.github.io/lmfit-py/ ) 유용 할 수 있습니다 (예, 저는 주 저자이며 편향적입니다). 를 사용하면 다음 lmfit과 같이 적합 할 수 있습니다.

import numpy as np
from scipy.optimize import curve_fit
import  matplotlib.pyplot as plt
from lmfit import Model

x=[164000,400,13000,700,57000,108,12000]
y=[0.011970,0.000098,0.066100,0.004300,0.042600,0.000061,0.002858 ]

def f(x, a, b):
    return np.log(a*x**b)

model = Model(f)
params = model.make_params(a=1.e-6, b=0.9)
result = model.fit(np.log(y), params, x=x)

print(result.fit_report())

px = np.linspace(10,1000000,1000)
plt.scatter(x,y)
plt.loglog(px, np.exp(result.eval(x=px)),  color="k")
plt.show()

lmfit에서 매개 변수는 모델 함수 의 이름을 사용하여 이름 지정f() 됩니다. 이렇게하면 추정 된 불확실성이 포함 된 적합 보고서가 인쇄됩니다.

[[Model]]
    Model(f)
[[Fit Statistics]]
    # fitting method   = leastsq
    # function evals   = 16
    # data points      = 7
    # variables        = 2
    chi-square         = 14.7591170
    reduced chi-square = 2.95182340
    Akaike info crit   = 9.22165592
    Bayesian info crit = 9.11347621
[[Variables]]
    a:  2.7861e-06 +/- 6.3053e-06 (226.31%) (init = 1e-06)
    b:  0.82976271 +/- 0.25700150 (30.97%) (init = 0.9)
[[Correlations]] (unreported correlations are < 0.100)
    C(a, b) = -0.958

플롯을 생성 여기에 이미지 설명 입력

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Python의 경험적 데이터에 멱 법칙 맞추기

분류에서Dev

Python의 경험적 데이터에 멱 법칙 맞추기

분류에서Dev

Python에서 멱 법칙 분포 풀기

분류에서Dev

Python의 scipy에서 curve_fit에 의한 곡선 피팅

분류에서Dev

Rayleigh 분포 Curve_fit on python

분류에서Dev

내 PDF에 카이 제곱 오류 최소화를 기반으로 멱 법칙 및 지수 피팅 추가

분류에서Dev

각도 비멱 등성 방법 문제

분류에서Dev

Python, scipy, curve_fit, bounds : 두 간격으로 매개 변수를 제한하려면 어떻게해야합니까?

분류에서Dev

LINEST를 사용한 Excel의 2 차 및 3 차 회귀

분류에서Dev

Python에서 무한 적분으로 정의 된 함수에 curve_fit 사용

분류에서Dev

Scipy의 curve_fit이 합리적인 결과를 제공하지 않음

분류에서Dev

Python 3에서 powerlaw.py로 멱 법칙 맞추기

분류에서Dev

롤링 회귀 회귀 모델의 계수 추출 문제

분류에서Dev

독립형 curve_fit 방법

분류에서Dev

bbmle 패키지 (R)의 mle2 () 함수를 사용하여 지수 및 멱 법칙 분포에 대한 매개 변수를 가져옵니다.

분류에서Dev

lmfit 및 scipy curve_fit은 초기 추측을 최적의 매개 변수로 반환합니다.

분류에서Dev

R의 다중 회귀 모델 문제

분류에서Dev

attrib의 Python 및 Scrapy 문제

분류에서Dev

Python의 역 표준 최소 제곱 회귀 (ISR)

분류에서Dev

개별 데이터 세트 문제에 적용된 curve_fit

분류에서Dev

sklearn Python 및 로지스틱 회귀

분류에서Dev

Excel 셀의 날짜 및 시간에서 날짜를 제거하는 방법

분류에서Dev

CoordinatorLayout 및 DrawerLayout의 회전 문제

분류에서Dev

pandas : 간단한 OLS 회귀 출력의 제목을 지정하는 방법이 있습니까?

분류에서Dev

직선을주는 멱 법칙 적합

분류에서Dev

Python의 단어 게임 및 if 문 문제

분류에서Dev

Excel의 Datedif 및 If 문

분류에서Dev

회귀 문제에 대한 keras에 대한 input_shape를 정의하는 방법은 무엇입니까?

분류에서Dev

관리자와 직원 ID 간의 Python pandas 재귀 조회

Related 관련 기사

  1. 1

    Python의 경험적 데이터에 멱 법칙 맞추기

  2. 2

    Python의 경험적 데이터에 멱 법칙 맞추기

  3. 3

    Python에서 멱 법칙 분포 풀기

  4. 4

    Python의 scipy에서 curve_fit에 의한 곡선 피팅

  5. 5

    Rayleigh 분포 Curve_fit on python

  6. 6

    내 PDF에 카이 제곱 오류 최소화를 기반으로 멱 법칙 및 지수 피팅 추가

  7. 7

    각도 비멱 등성 방법 문제

  8. 8

    Python, scipy, curve_fit, bounds : 두 간격으로 매개 변수를 제한하려면 어떻게해야합니까?

  9. 9

    LINEST를 사용한 Excel의 2 차 및 3 차 회귀

  10. 10

    Python에서 무한 적분으로 정의 된 함수에 curve_fit 사용

  11. 11

    Scipy의 curve_fit이 합리적인 결과를 제공하지 않음

  12. 12

    Python 3에서 powerlaw.py로 멱 법칙 맞추기

  13. 13

    롤링 회귀 회귀 모델의 계수 추출 문제

  14. 14

    독립형 curve_fit 방법

  15. 15

    bbmle 패키지 (R)의 mle2 () 함수를 사용하여 지수 및 멱 법칙 분포에 대한 매개 변수를 가져옵니다.

  16. 16

    lmfit 및 scipy curve_fit은 초기 추측을 최적의 매개 변수로 반환합니다.

  17. 17

    R의 다중 회귀 모델 문제

  18. 18

    attrib의 Python 및 Scrapy 문제

  19. 19

    Python의 역 표준 최소 제곱 회귀 (ISR)

  20. 20

    개별 데이터 세트 문제에 적용된 curve_fit

  21. 21

    sklearn Python 및 로지스틱 회귀

  22. 22

    Excel 셀의 날짜 및 시간에서 날짜를 제거하는 방법

  23. 23

    CoordinatorLayout 및 DrawerLayout의 회전 문제

  24. 24

    pandas : 간단한 OLS 회귀 출력의 제목을 지정하는 방법이 있습니까?

  25. 25

    직선을주는 멱 법칙 적합

  26. 26

    Python의 단어 게임 및 if 문 문제

  27. 27

    Excel의 Datedif 및 If 문

  28. 28

    회귀 문제에 대한 keras에 대한 input_shape를 정의하는 방법은 무엇입니까?

  29. 29

    관리자와 직원 ID 간의 Python pandas 재귀 조회

뜨겁다태그

보관