11

私は の満足のいくユーザーですscipy.optimize.leastsq

私は今持っています - 本当に常に持っていました - 可変エラーバーを持つx、yデータ、そしていくつかのデータのより大きな不確実性を尊重するために使用する必要があるのはscipy.odrpack.odrのようです。

残念ながら、サンプル コードとサンプル入力および出力を含むオンライン チュートリアルが見つかりません。(私はこれをできるだけ簡単にしようとしています。)

誰かがサンプル I/O を含むサンプル コードを投稿できれば幸いです。これは、ルーチンを頻繁に使用する人にとっては簡単です。

ありがとう!明細書

4

1 に答える 1

16

これは、ドキュメントの例の具体化されたバージョンです:

import numpy as np
import scipy.odr.odrpack as odrpack
np.random.seed(1)

N = 100
x = np.linspace(0,10,N)
y = 3*x - 1 + np.random.random(N)
sx = np.random.random(N)
sy = np.random.random(N)

def f(B, x):
    return B[0]*x + B[1]
linear = odrpack.Model(f)
# mydata = odrpack.Data(x, y, wd=1./np.power(sx,2), we=1./np.power(sy,2))
mydata = odrpack.RealData(x, y, sx=sx, sy=sy)

myodr = odrpack.ODR(mydata, linear, beta0=[1., 2.])
myoutput = myodr.run()
myoutput.pprint()
# Beta: [ 3.02012862 -0.63168734]
# Beta Std Error: [ 0.01188347  0.05616458]
# Beta Covariance: [[ 0.00067276 -0.00267082]
#  [-0.00267082  0.01502792]]
# Residual Variance: 0.209906660703
# Inverse Condition #: 0.105981202542
# Reason(s) for Halting:
#   Sum of squares convergence
于 2013-04-21T02:21:52.620 に答える