So führen sie eine box-cox-transformation in sas durch


Eine Box-Cox-Transformation ist eine häufig verwendete Methode zur Transformation eines nicht normalverteilten Datensatzes in einennormalverteilteren Satz.

Die Grundidee dieser Methode besteht darin, mithilfe der folgenden Formel einen Wert für λ zu finden, sodass die transformierten Daten möglichst nahe an der Normalverteilung liegen:

  • y(λ) = (y λ – 1) / λ wenn y ≠ 0
  • y(λ) = log(y) wenn y = 0

Mit der Prozedur PROC TRANSREG können wir den optimalen Wert für λ in SAS ermitteln.

Das folgende Beispiel zeigt, wie Sie dieses Verfahren in der Praxis anwenden können.

Beispiel: Box-Cox-Transformation in SAS

Nehmen wir an, wir haben den folgenden Datensatz in SAS:

 /*create dataset*/
data my_data;
    input xy;
    datalines ;
7 1
7 1
8 1
3 2
2 2
4 2
4 2
6 2
6 2
7 3
5 3
3 3
3 6
5 7
8 8
;
run;

/*view dataset*/
proc print data =my_data;

Angenommen, wir verwenden PROC REG, um ein einfaches lineares Regressionsmodell an diesen Datensatz anzupassen, wobei wir x als Prädiktorvariable und y als Antwortvariable verwenden.

 /*fit simple linear regression model*/
proc reg data =my_data;
    model y = x;
run ;

In den ausgegebenen Diagnosediagrammen können wir das Diagramm „Residuen versus Quantil“ (Diagramm ganz links in der mittleren Zeile) anzeigen, um zu sehen, ob die Residuen im Modell annähernd normalverteilt sind:

Wenn die Residuen ungefähr entlang der rechten Diagonallinie des Diagramms liegen, gehen wir im Allgemeinen davon aus, dass die Residuen normalverteilt sind.

Aus der Grafik können wir ersehen, dass die Residuen nicht sehr stark der geraden diagonalen Linie folgen.

Dies weist darauf hin, dass die Antwortvariable im Regressionsmodell wahrscheinlich nicht normalverteilt ist.

Da die Antwortvariable nicht normalverteilt ist, können wir PROC TRANSREG verwenden, um einen Wert für λ zu identifizieren, den wir verwenden können, um die Antwortvariable so umzuwandeln, dass sie normaler verteilt ist:

 /*perform box-cox transformation*/
proc transreg data =my_data;
    model boxcox (y) = identity (x);
run ;

Box-Cox-Transformation in SAS

Die Ausgabe sagt uns, dass der ausgewählte Wert für λ – 0,5 ist.

Somit können wir ein einfaches lineares Regressionsmodell anpassen, indem wir die ursprüngliche Antwortvariable y durch die Variable y = (y -0,5 – 1) / -0,5 ersetzen.

Der folgende Code zeigt, wie das geht:

 /*create new dataset that uses box-cox transformation to create new y*/
data new_data;
   set my_data;
   new_y = (y**(-0.5) - 1) / -0.5;
run ;

/*fit simple linear regression model using new response variable*/
proc reg data =new_data;
    model new_y = x;
run ;

Im Rest vs. Im Quantildiagramm der Ausgabe dieses Modells können wir sehen, dass die Residuen viel näher an der geraden diagonalen Linie liegen:

Dies weist darauf hin, dass die Residuen des Box-Cox-transformierten Modells viel normaler verteilt sind, was eine der Hauptannahmen der linearen Regression erfüllt.

Zusätzliche Ressourcen

In den folgenden Tutorials wird erläutert, wie Sie andere häufige Aufgaben in SAS ausführen:

So verwenden Sie Proc Univariate für Normalitätstests in SAS
So erstellen Sie ein Restdiagramm in SAS
So führen Sie den Levene-Test in SAS durch

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert