R'de box-cox dönüşümü nasıl gerçekleştirilir (örneklerle)


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

MASS() kütüphanesindeki boxcox() fonksiyonunu kullanarak R’de box-cox dönüşümü gerçekleştirebiliriz. Aşağıdaki örnekte bu fonksiyonun pratikte nasıl kullanılacağı gösterilmektedir.

Box-Cox dönüşümünün gelişiminin güzel bir özeti için Connecticut Üniversitesi’nin bu makalesine bakın.

Örnek: R’de Box-Cox Dönüşümü

Aşağıdaki kod, doğrusal bir regresyon modelinin bir veri kümesine nasıl sığdırılacağını, ardından yanıt değişkenini dönüştürmek ve yeni bir modele uyacak en uygun lambdayı bulmak için boxcox() işlevinin nasıl kullanılacağını gösterir.

 library (MASS)

#create data
y=c(1, 1, 1, 2, 2, 2, 2, 2, 2, 3, 3, 3, 6, 7, 8)
x=c(7, 7, 8, 3, 2, 4, 4, 6, 6, 7, 5, 3, 3, 5, 8)

#fit linear regression model
model <- lm(y~x)

#find optimal lambda for Box-Cox transformation 
bc <- boxcox(y ~ x)
(lambda <- bc$x[which.max(bc$y)])

[1] -0.4242424

#fit new linear regression model using the Box-Cox transformation
new_model <- lm(((y^lambda-1)/lambda) ~ x)

Optimum lambdanın -0,4242424 olduğu ortaya çıktı. Böylece yeni regresyon modeli orijinal yanıt değişkeni y’yi y = (y -0,4242424 – 1) / -0,4242424 değişkeniyle değiştirdi.

Aşağıdaki kod, iki regresyon modeli arasındaki artıklardaki farkları görselleştirmek için R’de iki QQ grafiğinin nasıl oluşturulacağını gösterir:

 #define plotting area
op <- par(pty = "s", mfrow = c(1, 2))

#QQ plot for original model
qqnorm(model$residuals)
qqline(model$residuals)

#QQ plot for Box-Cox transformed model
qqnorm(new_model$residuals)
qqline(new_model$residuals)

#display both QQ plots
by(op)

R'de Box-Cox tarafından dönüştürülen QQ arazisi

Genel olarak, eğer veri noktaları bir QQ grafiğinde düz bir çapraz çizgi boyunca uzanıyorsa, veri seti muhtemelen normal bir dağılım izlemektedir.

Box-cox dönüştürülmüş modelinin, orijinal regresyon modelinden çok daha düz bir çizgiye sahip bir QQ grafiğini nasıl ürettiğine dikkat edin.

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 varsayımlarından birini karşılar.

Ek kaynaklar

R’de Veri Nasıl Dönüştürülür (Log, Kare Kök, Küp Kök)
R’de QQ grafiği nasıl oluşturulur ve yorumlanır
R’de normallik için Shapiro-Wilk testi nasıl yapılır

Yorum ekle

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