Expertentipp:

Wussten Sie schon, wie Sie mit Hilfe der SAS Prozedur REG eine nicht-singuläre Matrix invertieren können?

Und so geht’s:
Beim Thema „Matrixinversion in SAS“ denken die meisten vermutlich zunächst an die interaktive Matrixsprache SAS/IML. Steht dieses Tool allerdings nicht zur Verfügung, so kann man sich für das Invertieren einer nicht-singulären Matrix auch mit der SAS Prozedur REG behelfen.

Zur Erläuterung der Vorgehensweise soll dabei exemplarisch folgende 3x3-Matrix betrachtet werden:

Zur Berechnung der Inversen A-1 überführen wir die Matrix A zunächst in einen SAS Datensatz.

data A;
input col1-col3;
datalines;
1 3 4
2 0 1
3 1 2
;
run;

In einem weiteren DATA-Step erweitern wir den Datensatz A um die 3x3-Einheitsmatrix.

data A;
  set A;
  array i{3} i1-i3;
  do j=1 to 3;
    if j=_n_ then i[j]=1;
    else i[j]=0;
  end;
  drop j;
run;

A hat nach diesem Schritt folgende Gestalt:

col1col2col3i1i2i3
134100
201010
312001

Als nächstes berechnen wir unter Verwendung der PROC REG ein multivariates lineares Regressionsmodell mit den Spalten i1, i2 und i3 als abhängigen sowie den Spalten col1, col2 und col3 als unabhängigen Variablen. Die OUTEST-Option liefert dabei den Datensatz Beta mit den Parameterschätzern.

proc reg data=A outest=Beta(drop=_MODEL_ _TYPE_ _DEPVAR_ _RMSE_ i1-i3);
  model i1-i3 = col1-col3 / noint noprint;
run;
quit;

Beta kann gleichzeitig als transponierte Inverse der Matrix A interpretiert werden. Mit Hilfe der SAS Prozedur TRANSPOSE erhalten wir daraus A-1 in Form des SAS Datensatzes A_inverse.

proc transpose data=Beta out=A_inverse(drop=_NAME_);
  var col1-col3;
run;

A_inverse hat damit folgende Gestalt:

COL1COL2COL3
-0.25-0.50.75
-0.25-2.51.75
0.502.0-1.50

Diesen und weitere Tipps erhalten Sie im Kurs Statistik 1: Varianzanalyse, Regression und logistische Regression.