scipy.odr.

Modell#

class scipy.odr.Model(fcn, fjacb=None, fjacd=None, extra_args=None, estimate=None, implicit=0, meta=None)[Quelle]#

Die Klasse Model speichert Informationen über die zu fittende Funktion.

Speichert die Funktion selbst, zumindest, und optional speichert Funktionen, die die während der Anpassung verwendeten Jacobi-Matrizen berechnen. Außerdem kann eine Funktion bereitgestellt werden, die vernünftige Startwerte für die Anpassungsparameter liefert, möglicherweise gegeben die Datenmenge.

Parameter:
fcnFunktion

fcn(beta, x) –> y

fjacbFunktion

Jacobi-Matrix von fcn bezüglich der Anpassungsparameter beta.

fjacb(beta, x) –> @f_i(x,B)/@B_j

fjacdFunktion

Jacobi-Matrix von fcn bezüglich der (möglicherweise mehrdimensionalen) Eingabevariablen.

fjacd(beta, x) –> @f_i(x,B)/@x_j

extra_argsTupel, optional

Wenn angegeben, sollte extra_args ein Tupel zusätzlicher Argumente sein, die an fcn, fjacb und fjacd übergeben werden. Jede wird aufgerufen von apply(fcn, (beta, x) + extra_args)

estimatearray_like von Rang 1

Liefert Schätzungen der Anpassungsparameter aus den Daten

estimate(data) –> estbeta

implicitboolesch

Wenn TRUE, gibt an, dass das Modell implizit ist; d.h. fcn(beta, x) ~= 0 und es gibt keine y-Daten, gegen die angepasst werden soll

metadict, optional

Freiform-Dictionary von Metadaten für das Modell

Methoden

set_meta(**kwds)

Aktualisiert das Metadaten-Dictionary mit den hier angegebenen Schlüsselwörtern und Daten.

Hinweise

Beachten Sie, dass die fcn, fjacb und fjacd auf NumPy-Arrays operieren und ein NumPy-Array zurückgeben. Das estimate Objekt nimmt eine Instanz der Data-Klasse entgegen.

Hier sind die Regeln für die Formen der Argument- und Rückgabearrays der Callback-Funktionen

x

Wenn die Eingabedaten eindimensional sind, dann ist x ein Array vom Rang 1; d.h. x = array([1, 2, 3, ...]); x.shape = (n,) Wenn die Eingabedaten mehrdimensional sind, dann ist x ein Array vom Rang 2; d.h. x = array([[1, 2, ...], [2, 4, ...]]); x.shape = (m, n). In allen Fällen hat es die gleiche Form wie das Eingabedaten-Array, das an odr übergeben wird. m ist die Dimensionalität der Eingabedaten, n ist die Anzahl der Beobachtungen.

y

Wenn die Antwortvariable eindimensional ist, dann ist y ein Array vom Rang 1, d.h. y = array([2, 4, ...]); y.shape = (n,). Wenn die Antwortvariable mehrdimensional ist, dann ist y ein Array vom Rang 2, d.h. y = array([[2, 4, ...], [3, 6, ...]]); y.shape = (q, n) wobei q die Dimensionalität der Antwortvariable ist.

beta

Array vom Rang 1 mit der Länge p, wobei p die Anzahl der Parameter ist; d.h. beta = array([B_1, B_2, ..., B_p])

fjacb

Wenn die Antwortvariable mehrdimensional ist, dann hat die Form des Rückgabe-Arrays (q, p, n), so dass fjacb(x,beta)[l,k,i] = d f_l(X,B)/d B_k am i-ten Datenpunkt ausgewertet wird. Wenn q == 1, dann ist das Rückgabe-Array nur Rang 2 und hat die Form (p, n).

fjacd

Wie bei fjacb, nur hat die Form des Rückgabe-Arrays (q, m, n), so dass fjacd(x,beta)[l,j,i] = d f_l(X,B)/d X_j am i-ten Datenpunkt ausgewertet wird. Wenn q == 1, dann ist die Form des Rückgabe-Arrays (m, n). Wenn m == 1, ist die Form (q, n). Wenn m == q == 1, ist die Form (n,).