5.5. Hinweise zur linearen Kurvenanpassung mit dem „allgemeinen Fall” der Least squares-Anpassung (WTLS)¶
Der sogenannte „allgemeine Fall” der Methode der kleinsten Quadrate (WTLS) wird in UncertRadio dann verwendet, wenn die \(X_{i}\left( t_{k} \right)\)-Werte des Modells eigene Unsicherheiten und ggf. auch Kovarianzen aufweisen. Es ist das einzige dem Autor bekannte und zugängliche Verfahren, das die Einbeziehung von Unsicherheiten und Kovarianzen der \(X_{i}\left( t_{k} \right)\)-Werte erlaubt.
Zur Durchführung der Berechnung werden Matrix-Routinen aus der Datan-Library verwendet (in Fortran 90 konvertiert), die Haupt-Subroutine des Verfahrens ist LSQGEN:
Siegmund Brandt: Datenanalyse. Mit statistischen Methoden und Computerprogrammen; 4. Auflage. Spektrum, Akademischer Verlag, Heidelberg-Berlin, 1999.
Obwohl das Modell bezüglich der Anpassungsparameter linear bleibt, erfordert WTLS ein iteratives Verfahren. Daher werden Startwerte der Anpassungsparameter aus einem vorausgehenden Aufruf der einfacheren LSQ-Routinen erhalten.
Leider ist die in der Routine LSQGEN verwendete Mathematik eher kompliziert, weshalb eine Beschreibung hier noch nicht gegeben werden kann. Der Routine LSQGEN ist in UncertRadio eine weitere Routine vorgeschaltet, die die Eingangsdaten in einer von LSQGEN geforderten speziellen Form zusammenstellt. Gemessene Nettozählraten \(Y\left( t_{k} \right)\) und die verschiedenen \(X_{i}\left( t_{k} \right)\ \)-Werte werden in einem gemeinsamen Vektor y zusammengefasst; Gleiches gilt für die Unsicherheiten und Kovarianzen der \(Y\left( t_{k} \right)\)- und \(X_{i}\left( t_{k} \right)\)-Werte, was zu einer gemeinsamen Eingangs-Kovarianzmatrix cy führt. Der Rang des Vektors \(\mathbf{y}\) und der quadratischen Matrix cy kann leicht einen erheblichen Wert annehmen. Betrachtet man beispielsweise eine LSC-Messung mit 3 Zählkanälen und führt 10 Messungen durch, so erhält man:
3x10 = 30 values \(Y\left( t_{k} \right)\) (10 values for each of the channels A, B and C)
3x3x10 = 90 values \(X_{i}\left( t_{k} \right)\) (3 values \(X_{i}\left( t_{k} \right)\) associated with each of the values \(Y\left( t_{k} \right)\))
Somit beträgt der gesuchte Rang 30+90=120. Dies bedeutet, dass die Eingangs-Kovarianzmatrix eine 120x120-Matrix ist, wodurch sofort plausibel wird, dass die iterativ arbeitende Routine LSQGEN durchaus zeitaufwändig werden kann.
Hinweis zur Berechnung von Erkennungs- und Nachweisgrenze:
Wie bei der Beschreibung der LSQ-Mathematik soll der Ergebnisvektor der anzupassenden Parameter mit \(\mathbf{y}\) bezeichnet werden.
Die hier zu betrachtenden speziellen Ergebnisgrößen beziehen sich auf die Komponente L des Ergebnisvektors \(\mathbf{y}\) der angepassten Parameter, \(y_{L}\), und deren Unsicherheit \(u\left( y_{L} \right)\), die iteriert wird, bis \(y_{L}\) und \(u\left( y_{L} \right)\) die Abbruchbedingung der Iteration erfüllen. \(y_{L}\) wird dann durch einen neuen, von der Iteration bestimmten Wert \(y_{L}^{'}\ \)ersetzt. Damit können neue Werte der Bruttozählraten der Abklingkurve berechnet werden, wobei L=1 ohne Verlust an Allgemeinheit gesetzt wurde:
\(R_{b,i}^{'} = \left( R_{0,i} + R_{bl} \right) + y_{1}^{'} \cdot X_{1}\left( t_{i} \right) + y_{2} \cdot X_{2}\left( t_{i} \right) + y_{3} \cdot X_{3}\left( t_{i} \right)\) .
Daraus folgt die Unsicherheits-Funktion (Standardunsicherheit) der Bruttozählrate:
\(u\left( R_{b,i}^{'} \right) = \sqrt{R_{b,i}^{'}/t_{m,i}}\) .
Die Nettozählraten der modifizierten Abklingkurve, d.h. die \(Y'\left( t_{k} \right)\), lauten:
\(R_{n,i}^{'} = R_{b,i}^{'} - R_{0,i} - R_{bl}\) ,
woraus sich die Diagonalelemente der geänderten Kovarianzmatrix ergeben:
\(var\left( R_{n,i}^{'} \right) = \frac{R_{b,i}^{'}}{t_{m,i}} + var\left( R_{0,i} \right) + var\left( R_{bl} \right)\),
während die nicht-diagonalen Elemente unverändert bleiben.
Mit diesen geänderten Werten und Unsicherheiten der Nettozählraten wird die Auswertung für die Ergebnisgröße wiederholt, was den neuen Unsicherheitswert \(u\left( y_{1}^{'} \right)\) liefert. Nun kann das Konvergenzkriterium geprüft werden; ist es noch nicht erfüllt, wird der nächste Iterationsschritt eingeleitet, indem aus dem Wertepaar \(y_{1}^{'}\) und \(u\left( y_{1}^{'} \right)\) der nächste Iterationswert \(y_{1}^{''}\) bestimmt wird.