Sas でログ変換を実行する方法
多くの統計テストでは、特定の変数の値が正規分布していると仮定しています。
ただし、値は正規分布にならないことがよくあります。この問題を解決する 1 つの方法は、各値の対数を取得して変数を変換することです。
この変換を実行することにより、変数は一般に正規分布に近づきます。
次の例は、SAS の変数に対してログ変換を実行する方法を示しています。
例: SAS でのログ変換
SAS に次のデータセットがあると仮定します。
/*create dataset*/ data my_data; input x; datalines ; 1 1 1 2 2 2 2 2 2 3 3 3 6 7 8 ; run ; /*view dataset*/ proc print data =my_data;
PROC UNIVARIATEを使用して、変数 x に対して正規性テストを実行して、変数 x が正規分布しているかどうかを判断し、ヒストグラムを作成して値の分布を視覚化することもできます。
/*create histogram and perform normality tests*/
proc univariate data =my_data normal ;
histogram x;
run ;
「正規性検定」というタイトルの最後の表では、Shapiro-Wilk 検定のp 値が0.05 未満であることがわかります。これは、変数xが正規分布ではないという強力な証拠を提供します。
ヒストグラムは、値の分布が正規分布ではないことも示しています。
元のデータセットに対してログ変換を試みて、より正規分布したデータセットを生成できるかどうかを確認できます。
次のコードを使用して、元の各 x 値のログを取得する新しいデータセットを SAS に作成できます。
/*use log transformation to create new dataset*/
data log_data;
set my_data;
x = log (x);
run ;
/*view log transformed data*/
proc print data =log_data;
次に、 PROC UNIVARIATE を再度使用して、変換された変数に対して正規性テストを実行し、ヒストグラムも生成できます。
/*create histogram and perform normality tests*/
proc univariate data =log_data normal ;
histogram x;
run ;
「正規性検定」というタイトルの最後の表では、 Shapiro-Wilk 検定のp 値が 0.05 より大きくなっていることがわかります。
ヒストグラムは、値の分布が変換前よりわずかに正規化していることも示しています。
Shapiro-Wilk テストの結果と上記のヒストグラムに基づいて、対数変換により元の変数よりもはるかに正規分布の変数が作成されたと結論付けます。
追加リソース
次のチュートリアルでは、SAS で他の一般的なタスクを実行する方法について説明します。