MTX_LINEARE_REGRESSION

Dieses Verfahren erstellt das lineare Regressionsmodell anhand der in einer Matrix gespeicherten Daten.

Verwendung

Die gespeicherte Prozedur MTX_LINEAR_REGRESSION hat die folgende Syntax:
MTX_LINEAR_REGRESSION modelName,predictorsMatrixName,predictedMatrixName,includeIntercept,calculateDiagnostics,useSVDSolver )
Parameter
modelName
Der Name des erstellten Modells.
Typ: NVARCHAR(ANY)
predictorsMatrixName
Der Name der Matrix, die die Prädiktoren enthält.
Typ: NVARCHAR(ANY)
predictedMatrixName
Der Name der Matrix, die die vorhergesagten Werte enthält.
Typ: NVARCHAR(ANY)
includeIntercept
Gibt an, ob der Intercept-Term in das Modell aufgenommen werden soll.
Typ: BOOLEAN
useSVDSolver
Gibt an, ob Singulärwertzerlegung und Matrixmultiplikation zur Lösung der Matrixgleichung verwendet werden sollen.
Typ: BOOLEAN
Rückgabe
BOOLEAN TRUE nur, wenn die Diagnoseinformationen generiert wurden, z. B. im Falle von calculateDiagnostics=TRUE und einer Anzahl von Modellparametern, die größer ist als die Anzahl der Beobachtungen.

Details zu

Mit diesem Verfahren wird das lineare Regressionsmodell unter Verwendung des QR-Solvers einer nicht-singulären Modellmatrix oder der Moore-Penrose-Pseudoinversion im Falle einer nahezu singulären oder exakt singulären Modellmatrix erstellt. Die Eingabedaten sollten als Datenbank-Matrix-Objekte bereitgestellt werden, wobei die Beobachtungen in Zeilen und die Prädiktoren in Spalten angegeben werden. Die Matrix der vorhergesagten Werte kann mehrere Spalten enthalten, d. h. mehrere vorhergesagte Werte. Die Diagnoseinformationen werden, falls gewünscht, als Matrizen gespeichert, deren Namen mit dem Präfix modelName_linearmodel beginnen. Die Menge besteht aus den folgenden Matrizen:
  • modelName_linearmodel_R2: Zeilenvektor mit R^2 (als Anteil der durch das Modell erklärten Varianz) der für jedes Ausgangsattribut erstellten Modelle (wenn calculateDiagnostics TRUE ist)
  • modelName_linearmodel_RSS: Zeilenvektor, der die Residualquadratsummen der für jedes Ausgangsattribut erstellten Modelle enthält (wenn calculateDiagnostics TRUE ist)
  • modelName_linearmodel_SDEV: die Matrix der Standardabweichungen der Modellkoeffizienten (wenn calculateDiagnostics TRUE ist, ist eine Diagnose möglich und das Modell ist überdeterminiert)
  • modelName_linearmodel_TVAL: die Matrix der Teststatistiken für die Koeffizienten der Modelle (wenn calcu-lateDiagnostics TRUE ist, ist eine Diagnose möglich und das Modell ist überbestimmt)
  • modelName_linearmodel_PVAL: die Matrix der zweiseitigen p-Werte für die Koeffizienten der Modelle (wenn calculateDiagnostics TRUE ist, ist eine Diagnose möglich und das Modell ist überdeterminiert)
  • modelName_linearmodel_Y_VAR_EST: der Zeilenvektor, der die Schätzer der Varianz des Fehlerterms für jede vorhergesagte Variable enthält (wenn calculateDiagnostics TRUE ist, ist eine Diagnose möglich und das Modell ist überdeterminiert)

Die Modellkoeffizienten werden als Matrix mit dem Namen modelName_linearmodel gespeichert.

Das konstruierte Modell kann mit der Prozedur MTX_LINEAR_REGRESSION_APPLY auf die Daten angewendet werden. Beachten Sie, dass die Verwendung der Singulärwertzerlegung und der Matrixmultiplikation langsamer ist als die Standardberechnung, aber im Falle eines schlecht gestellten, d. h. nahezu kolinearen Regressionsmodells stabiler ist.

Beispiele

call nzm..shape('1,2,3,4,5,6,7,8,9',100,10,'LR_EXAMPLE');
call nzm..shape('9,8,7,6,5,4,3,2,1',10,1,'LR_EXAMPLE_TRUE_COEFFS');
call nzm..gemm('LR_EXAMPLE','LR_EXAMPLE_TRUE_COEFFS',
 'LR_EXAMPLE_PREDICTED');
call nzm..mtx_linear_regression('LR_EXAMPLE_MODEL','LR_EXAMPLE ',
 'LR_EXAMPLE_PREDICTED', FALSE, FALSE, FALSE);
--- result verification
call nzm..copy_submatrix('LR_EXAMPLE_MODEL_linearmodel', 
 'LR_EXAMPLE_MODEL_linearmodel_eff',1,10,1,1);
call nzm..subtract('LR_EXAMPLE_TRUE_COEFFS',
 'LR_EXAMPLE_MODEL_linearmodel_eff', 'LR_EXAMPLE_MODEL_verif1');
call nzm..red_max_abs('LR_EXAMPLE_MODEL_verif1'); 
call nzm..delete_all_matrices();

 SHAPE
-------
 t
(1 row)

 SHAPE
-------
 t
(1 row)

 GEMM
------
 t
(1 row)

 MTX_LINEAR_REGRESSION
-----------------------
 f
(1 row)

 COPY_SUBMATRIX
----------------
 t
(1 row)

 SUBTRACT
----------
 t
(1 row)

   RED_MAX_ABS
-----------------
 8.3857463735873
(1 row)

 DELETE_ALL_MATRICES
---------------------
 t
(1 row)