MTX_REGRESSIONE_LINEARE

Questa procedura crea il modello di regressione lineare utilizzando i dati memorizzati in una matrice.

Utilizzo

La stored procedure MTX_LINEAR_REGRESSION ha la seguente sintassi:
MTX_LINEAR_REGRESSION modelName,predictorsMatrixName,predictedMatrixName,includeIntercept,calculateDiagnostics,useSVDSolver )
Parametri
modelName
Il nome del modello creato.
Tipo: NVARCHAR(ANY)
predictorsMatrixName
Il nome della matrice contenente i predittori.
Tipo: NVARCHAR(ANY)
predictedMatrixName
Il nome della matrice contenente i valori previsti.
Tipo: NVARCHAR(ANY)
includeIntercept
Specifica se il termine di intercetta deve essere incluso nel modello.
Tipo: boolean
useSVDSolver
Specifica se utilizzare la Singular Value Decomposition e la moltiplicazione matriciale per risolvere l'equazione della matrice.
Tipo: boolean
Risultati
BOOLEAN TRUE solo se le informazioni diagnostiche sono state generate, ad esempio nel caso di calculateDiagnostics=TRUE e numero di parametri del modello maggiore del numero di osservazioni.

Dettagli

Questa procedura costruisce il modello di regressione lineare utilizzando il risolutore QR di una matrice modello non singolare, o la pseudoinversione di Moore-Penrose nel caso di una matrice modello quasi singolare o esattamente singolare. I dati di input devono essere forniti come oggetti matrice di database con le osservazioni nelle righe e i predittori nelle colonne. La matrice dei valori previsti può contenere più colonne, cioè più valori previsti. Le informazioni diagnostiche, se richieste, vengono salvate come un insieme di matrici di nomi che iniziano con il prefisso modelName_linearmodel. L'insieme è costituito dalle seguenti matrici:
  • modelName_linearmodel_R2: vettore di righe contenente R^2 (frazione della varianza spiegata dal modello) dei modelli creati per ogni attributo di output (quando calculateDiagnostics è TRUE)
  • modelName_linearmodel_RSS: vettore di righe contenente la somma residua dei quadrati dei modelli creati per ciascun attributo di output (quando calculateDiagnostics è TRUE)
  • modelName_linearmodel_SDEV: matrice delle deviazioni standard dei coefficienti del modello (quando calculateDiagnostics è TRUE, la diagnostica è possibile e il modello è sovradeterminato)
  • modelName_linearmodel_TVAL: matrice delle statistiche di test per i coefficienti dei modelli (quando calcu-lateDiagnostics è TRUE, la diagnostica è possibile e il modello è sovradeterminato)
  • modelName_linearmodel_PVAL: matrice dei valori di p a due facce per i coefficienti dei modelli (quando calculateDiagnostics è TRUE, la diagnostica è possibile e il modello è sovradeterminato)
  • modelName_linearmodel_Y_VAR_EST: vettore di righe contenente gli stimatori della varianza del termine di errore per ogni variabile prevista (quando calculateDiagnostics è TRUE, la diagnostica è possibile e il modello è sovradeterminato)

I coefficienti del modello vengono salvati come matrice denominata modelName_linearmodel.

Il modello costruito può essere applicato ai dati utilizzando la procedura MTX_LINEAR_REGRESSION_APPLY. Si noti che l'uso della Singular Value Decomposition e della moltiplicazione matriciale è più lento del calcolo standard, ma è più stabile nel caso di un modello di regressione malposto, cioè quasi colineare.

Esempi

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)