Sas'ta box-cox dönüşümü nasıl gerçekleştirilir?


Box-cox dönüşümü, normal olarak dağıtılmayan bir veri kümesini daha normal olarak dağıtılan bir kümeye dönüştürmek için yaygın olarak kullanılan bir yöntemdir.

Bu yöntemin arkasındaki temel fikir, aşağıdaki formülü kullanarak dönüştürülen verinin normal dağılıma mümkün olduğu kadar yakın olmasını sağlayacak bir λ değeri bulmaktır:

  • y(λ) = (y λ – 1) / λ eğer y ≠ 0 ise
  • y(λ) = log(y) eğer y = 0 ise

PROC TRANSREG prosedürünü kullanarak SAS’ta λ için kullanılacak en uygun değeri belirleyebiliriz.

Aşağıdaki örnekte bu prosedürün pratikte nasıl kullanılacağı gösterilmektedir.

Örnek: SAS’ta Box-Cox Dönüşümü

SAS’ta aşağıdaki veri setine sahip olduğumuzu varsayalım:

 /*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;

Bu veri setine basit bir doğrusal regresyon modeli uydurmak için PROC REG kullandığımızı varsayalım; x’i yordayıcı değişken olarak ve y’yi yanıt değişkeni olarak kullanıyoruz.

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

Çıktı teşhis grafiklerinde, artıkların modelde yaklaşık olarak normal şekilde dağılıp dağılmadığını görmek için Artık ve Nicelik grafiğini (orta satırda en soldaki grafik) görüntüleyebiliriz:

Artıklar yaklaşık olarak grafiğin sağ çapraz çizgisi boyunca uzanıyorsa, genellikle artıkların normal şekilde dağıldığını varsayarız.

Grafikten artıkların düz çapraz çizgiyi pek takip etmediğini görebiliriz.

Bu, regresyon modelindeki yanıt değişkeninin muhtemelen normal dağılmadığını gösterir.

Yanıt değişkeni normal şekilde dağılmadığından, yanıt değişkenini daha normal dağılacak şekilde dönüştürmek için kullanabileceğimiz λ değerini tanımlamak üzere PROC TRANSREG’i kullanabiliriz:

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

box-cox'un SAS'a dönüşümü

Çıkış bize λ için kullanılacak seçilen değerin – 0,5 olduğunu söyler.

Böylece, orijinal yanıt değişkeni y’yi y = (y -0,5 – 1) / -0,5 değişkeniyle değiştirerek basit bir doğrusal regresyon modeli uydurabiliriz.

Aşağıdaki kod bunun nasıl yapılacağını gösterir:

 /*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 ;

Kalıntı vs. Bu modelin çıktısının kuantil grafiğinde , artıkların düz çapraz çizgiye çok daha yakın olduğunu görebiliriz:

Bu, box-cox dönüştürülmüş modelin artıklarının çok daha normal dağıldığını gösterir ve bu da doğrusal regresyonun ana varsayımlarından birini karşılar.

Ek kaynaklar

Aşağıdaki eğitimlerde SAS’ta diğer ortak görevlerin nasıl gerçekleştirileceği açıklanmaktadır:

SAS’ta Normallik Testi için Proc Univariate Nasıl Kullanılır
SAS’ta Artık Grafik Nasıl Oluşturulur
SAS’ta Levene testi nasıl yapılır?

Yorum ekle

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir